Exemple #1
0
        protected internal virtual bool TryParseElement(XmlReader reader, string version)
        {
            if (reader == null)
            {
                throw new ArgumentNullException("reader");
            }
            reader.MoveToContent();

            if (reader.LocalName != "collection" || reader.NamespaceURI != version)
            {
                return(false);
            }

            for (int i = 0; i < reader.AttributeCount; i++)
            {
                reader.MoveToAttribute(i);
                if (!TryParseAttribute(reader.LocalName, reader.NamespaceURI, reader.Value, version))
                {
                    AttributeExtensions.Add(new XmlQualifiedName(reader.LocalName, reader.NamespaceURI), reader.Value);
                }
            }
            reader.MoveToElement();

            if (!reader.IsEmptyElement)
            {
                reader.Read();
                for (reader.MoveToContent(); reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent())
                {
                    if (reader.LocalName == "title" && reader.NamespaceURI == Namespaces.Atom10)
                    {
                        Title = Atom10FeedFormatter.ReadTextSyndicationContent(reader);
                    }
                    else
                    {
                        ElementExtensions.Add(new SyndicationElementExtension(reader));
                    }
                }
            }
            reader.Read();
            return(true);
        }
Exemple #2
0
        protected internal virtual bool TryParseElement(XmlReader reader, string version)
        {
            if (reader == null)
            {
                throw new ArgumentNullException("reader");
            }

            reader.MoveToContent();
            if (reader.LocalName != "workspace" || reader.NamespaceURI != version)
            {
                return(false);
            }

            bool isEmpty = reader.IsEmptyElement;

            reader.ReadStartElement();
            if (isEmpty)
            {
                return(true);
            }

            for (reader.MoveToContent(); reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent())
            {
                if (reader.LocalName == "title" && reader.NamespaceURI == Namespaces.Atom10)
                {
                    Title = Atom10FeedFormatter.ReadTextSyndicationContent(reader);
                    continue;
                }
                else if (reader.LocalName == "collection" && reader.NamespaceURI == version)
                {
                    var rc = new ResourceCollectionInfo();
                    if (rc.TryParseElement(reader, version))
                    {
                        Collections.Add(rc);
                        continue;
                    }
                }
                ElementExtensions.Add(new SyndicationElementExtension(reader));
            }
            return(true);
        }