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); }
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); }