/// <summary>
        /// Parse child tag
        /// </summary>
        protected override ITlvTag ParseChild(ITlvTag childTag)
        {
            switch (childTag.Type)
            {
            case Constants.PublicationData.TagType:
                return(PublicationData = childTag as PublicationData ?? new PublicationData(childTag));

            case Constants.PublicationRecord.PublicationReferencesTagType:
                StringTag refTag = GetStringTag(childTag);
                PublicationReferences.Add(refTag.Value);
                return(refTag);

            case Constants.PublicationRecord.PublicationRepositoryUriTagType:
                StringTag uriTag = GetStringTag(childTag);
                RepositoryUri.Add(uriTag.Value);
                return(uriTag);

            default:
                return(base.ParseChild(childTag));
            }
        }