public SignedIdentifier(string id, AccessPolicy accessPolicy)
        {
            if (id == null)
            {
                throw new ArgumentNullException(nameof(id));
            }
            if (accessPolicy == null)
            {
                throw new ArgumentNullException(nameof(accessPolicy));
            }

            Id           = id;
            AccessPolicy = accessPolicy;
        }
        internal static SignedIdentifier DeserializeSignedIdentifier(XElement element)
        {
            string       id           = default;
            AccessPolicy accessPolicy = default;

            if (element.Element("Id") is XElement idElement)
            {
                id = (string)idElement;
            }
            if (element.Element("AccessPolicy") is XElement accessPolicyElement)
            {
                accessPolicy = AccessPolicy.DeserializeAccessPolicy(accessPolicyElement);
            }
            return(new SignedIdentifier(id, accessPolicy));
        }