예제 #1
0
        /// <summary>
        /// Reads an atom:id element in a source element.
        /// </summary>
        /// <param name="atomFeedMetadata">The feed metadata to augment.</param>
        /// <remarks>
        /// Pre-Condition:  XmlNodeType.Element (atom:icon) - the atom:icon element to read.
        /// Post-Condition: Any                             - the node after the atom:icon element which was read.
        /// </remarks>
        private void ReadIdElementAsSourceId(AtomFeedMetadata atomFeedMetadata)
        {
            this.AssertXmlCondition(XmlNodeType.Element);
            Debug.Assert(
                this.XmlReader.LocalName == AtomConstants.AtomIdElementName && this.XmlReader.NamespaceURI == AtomConstants.AtomNamespace,
                "Only atom:id elements can be read by this method.");

            this.VerifyNotPreviouslyDefined(atomFeedMetadata.SourceId);
            string elementValue = this.XmlReader.ReadElementValue();

            atomFeedMetadata.SourceId = UriUtils.CreateUriAsEntryOrFeedId(elementValue, UriKind.Absolute);
        }