void ReadCategory(XmlReader reader, SyndicationCategory category)
        {
            if (reader.MoveToFirstAttribute())
            {
                do
                {
                    if (reader.NamespaceURI == "http://www.w3.org/2000/xmlns/")
                    {
                        continue;
                    }
                    if (reader.NamespaceURI == String.Empty)
                    {
                        switch (reader.LocalName)
                        {
                        case "domain":
                            category.Scheme = reader.Value;
                            continue;
                        }
                    }
                    if (PreserveAttributeExtensions)
                    {
                        if (!TryParseAttribute(reader.LocalName, reader.NamespaceURI, reader.Value, category, Version))
                        {
                            category.AttributeExtensions.Add(new XmlQualifiedName(reader.LocalName, reader.NamespaceURI), reader.Value);
                        }
                    }
                }while (reader.MoveToNextAttribute());
                reader.MoveToElement();
            }

            if (!reader.IsEmptyElement)
            {
                reader.Read();
                for (reader.MoveToContent(); reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent())
                {
                    if (reader.IsTextNode())
                    {
                        category.Name += reader.Value;
                    }
                    else if (!TryParseElement(reader, category, Version))
                    {
                        if (PreserveElementExtensions)
                        {
                            // FIXME: what should be used for maxExtenswionSize
                            LoadElementExtensions(reader, category, int.MaxValue);
                        }
                        else
                        {
                            reader.Skip();
                        }
                    }
                    reader.Read();
                }
            }
            reader.Read(); // </category> or <category ... />
        }
        void ReadLink(XmlReader reader, SyndicationLink link)
        {
            if (PreserveAttributeExtensions && reader.MoveToFirstAttribute())
            {
                do
                {
                    if (reader.NamespaceURI == "http://www.w3.org/2000/xmlns/")
                    {
                        continue;
                    }
                    if (!TryParseAttribute(reader.LocalName, reader.NamespaceURI, reader.Value, link, Version))
                    {
                        link.AttributeExtensions.Add(new XmlQualifiedName(reader.LocalName, reader.NamespaceURI), reader.Value);
                    }
                }while (reader.MoveToNextAttribute());
                reader.MoveToElement();
            }

            if (!reader.IsEmptyElement)
            {
                string url = null;
                reader.Read();
                for (reader.MoveToContent(); reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent())
                {
                    if (reader.IsTextNode())
                    {
                        url += reader.Value;
                    }
                    else if (!TryParseElement(reader, link, Version))
                    {
                        if (PreserveElementExtensions)
                        {
                            // FIXME: what should be used for maxExtenswionSize
                            LoadElementExtensions(reader, link, int.MaxValue);
                        }
                        else
                        {
                            reader.Skip();
                        }
                    }
                    reader.Read();
                }
                link.Uri = CreateUri(url);
            }
            reader.Read(); // </link> or <link ... />
        }
        void ReadPerson(XmlReader reader, SyndicationPerson person)
        {
            if (PreserveAttributeExtensions && reader.MoveToFirstAttribute())
            {
                do
                {
                    if (reader.NamespaceURI == "http://www.w3.org/2000/xmlns/")
                    {
                        continue;
                    }
                    if (!TryParseAttribute(reader.LocalName, reader.NamespaceURI, reader.Value, person, Version))
                    {
                        person.AttributeExtensions.Add(new XmlQualifiedName(reader.LocalName, reader.NamespaceURI), reader.Value);
                    }
                }while (reader.MoveToNextAttribute());
                reader.MoveToElement();
            }

            if (!reader.IsEmptyElement)
            {
                reader.Read();
                for (reader.MoveToContent(); reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent())
                {
                    if (reader.IsTextNode())
                    {
                        person.Email += reader.Value;
                    }
                    else if (!TryParseElement(reader, person, Version))
                    {
                        if (PreserveElementExtensions)
                        {
                            // FIXME: what should be used for maxExtenswionSize
                            LoadElementExtensions(reader, person, int.MaxValue);
                        }
                        else
                        {
                            reader.Skip();
                        }
                    }
                    reader.Read();
                }
            }
            reader.Read(); // end element or empty element
        }
Exemplo n.º 4
0
        void ReadSourceFeed(XmlReader reader, SyndicationFeed feed)
        {
            if (reader.MoveToFirstAttribute())
            {
                do
                {
                    if (reader.NamespaceURI == "http://www.w3.org/2000/xmlns/")
                    {
                        continue;
                    }
                    if (reader.NamespaceURI == String.Empty)
                    {
                        switch (reader.LocalName)
                        {
                        case "url":
                            feed.Links.Add(new SyndicationLink(CreateUri(reader.Value)));
                            continue;
                        }
                    }
                } while (reader.MoveToNextAttribute());
                reader.MoveToElement();
            }

            if (!reader.IsEmptyElement)
            {
                reader.Read();
                string title = null;
                while (reader.NodeType != XmlNodeType.EndElement)
                {
                    if (reader.IsTextNode())
                    {
                        title += reader.Value;
                    }
                    reader.Skip();
                    reader.MoveToContent();
                }
                feed.Title = new TextSyndicationContent(title);
            }
            reader.Read();              // </source> or <source ... />
        }
Exemplo n.º 5
0
		void ReadSourceFeed (XmlReader reader, SyndicationFeed feed)
		{
			if (reader.MoveToFirstAttribute ()) {
				do {
					if (reader.NamespaceURI == "http://www.w3.org/2000/xmlns/")
						continue;
					if (reader.NamespaceURI == String.Empty) {
						switch (reader.LocalName) {
						case "url":
							feed.Links.Add (new SyndicationLink (CreateUri (reader.Value)));
							continue;
						}
					}
				} while (reader.MoveToNextAttribute ());
				reader.MoveToElement ();
			}

			if (!reader.IsEmptyElement) {
				reader.Read ();
				string title = null;
				while (reader.NodeType != XmlNodeType.EndElement) {
					if (reader.IsTextNode ())
						title += reader.Value;
					reader.Skip ();
					reader.MoveToContent ();
				}
				feed.Title = new TextSyndicationContent (title);
			}
			reader.Read (); // </source> or <source ... />
		}
Exemplo n.º 6
0
		void ReadPerson (XmlReader reader, SyndicationPerson person)
		{
			if (PreserveAttributeExtensions && reader.MoveToFirstAttribute ()) {
				do {
					if (reader.NamespaceURI == "http://www.w3.org/2000/xmlns/")
						continue;
					if (!TryParseAttribute (reader.LocalName, reader.NamespaceURI, reader.Value, person, Version))
						person.AttributeExtensions.Add (new XmlQualifiedName (reader.LocalName, reader.NamespaceURI), reader.Value);
				} while (reader.MoveToNextAttribute ());
				reader.MoveToElement ();
			}

			if (!reader.IsEmptyElement) {
				reader.Read ();
				for (reader.MoveToContent (); reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent ()) {
					if (reader.IsTextNode ())
						person.Email += reader.Value;
					else if (!TryParseElement (reader, person, Version)) {
						if (PreserveElementExtensions)
							// FIXME: what should be used for maxExtenswionSize
							LoadElementExtensions (reader, person, int.MaxValue);
						else
							reader.Skip ();
					}
					reader.Read ();
				}
			}
			reader.Read (); // end element or empty element
		}
Exemplo n.º 7
0
		void ReadLink (XmlReader reader, SyndicationLink link)
		{
			if (PreserveAttributeExtensions && reader.MoveToFirstAttribute ()) {
				do {
					if (reader.NamespaceURI == "http://www.w3.org/2000/xmlns/")
						continue;
					if (!TryParseAttribute (reader.LocalName, reader.NamespaceURI, reader.Value, link, Version))
						link.AttributeExtensions.Add (new XmlQualifiedName (reader.LocalName, reader.NamespaceURI), reader.Value);
				} while (reader.MoveToNextAttribute ());
				reader.MoveToElement ();
			}

			if (!reader.IsEmptyElement) {
				string url = null;
				reader.Read ();
				for (reader.MoveToContent (); reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent ()) {
					if (reader.IsTextNode ())
						url += reader.Value;
					else if (!TryParseElement (reader, link, Version)) {
						if (PreserveElementExtensions)
							// FIXME: what should be used for maxExtenswionSize
							LoadElementExtensions (reader, link, int.MaxValue);
						else
							reader.Skip ();
					}
					reader.Read ();
				}
				link.Uri = CreateUri (url);
			}
			reader.Read (); // </link> or <link ... />
		}
Exemplo n.º 8
0
		void ReadCategory (XmlReader reader, SyndicationCategory category)
		{
			if (reader.MoveToFirstAttribute ()) {
				do {
					if (reader.NamespaceURI == "http://www.w3.org/2000/xmlns/")
						continue;
					if (reader.NamespaceURI == String.Empty) {
						switch (reader.LocalName) {
						case "domain":
							category.Scheme = reader.Value;
							continue;
						}
					}
					if (PreserveAttributeExtensions)
						if (!TryParseAttribute (reader.LocalName, reader.NamespaceURI, reader.Value, category, Version))
							category.AttributeExtensions.Add (new XmlQualifiedName (reader.LocalName, reader.NamespaceURI), reader.Value);
				} while (reader.MoveToNextAttribute ());
				reader.MoveToElement ();
			}

			if (!reader.IsEmptyElement) {
				reader.Read ();
				for (reader.MoveToContent (); reader.NodeType != XmlNodeType.EndElement; reader.MoveToContent ()) {
					if (reader.IsTextNode ())
						category.Name += reader.Value;
					else if (!TryParseElement (reader, category, Version)) {
						if (PreserveElementExtensions)
							// FIXME: what should be used for maxExtenswionSize
							LoadElementExtensions (reader, category, int.MaxValue);
						else
							reader.Skip ();
					}
					reader.Read ();
				}
			}
			reader.Read (); // </category> or <category ... />
		}