SyndicationFeed Class
Represents a top-level feed object, <feed> in Atom 1.0 and <rss> in RSS 2.0.
Assembly: System.ServiceModel.Web (in System.ServiceModel.Web.dll)
When serialized to Atom 1.0, a SyndicationFeed instance is written to a <feed> element. The following table shows how each property defined in the SyndicationFeed class is serialized to Atom 1.0.
SyndicationFeed property | Serialized form |
|---|---|
AttributeExtensions | An attribute in the <feed> element for each attribute in the collection. |
Authors | An <author> element for each SyndicationPerson in the collection. |
Categories | A <category> element for each SyndicationCategory in the collection. |
Contributors | A <contributor> element for each SyndicationPerson in the collection. |
Copyright | A <rights> element. |
Description | A <subtitle> element. |
ElementExtensions | Each element in the collection is written within the <feed> element. |
Generator | A <generator> element. |
Id | An <id>element. |
ImageUri | A <logo> element. |
Items | An <entry> element for each SyndicationItem in the collection. |
Language | Not serialized. |
LastUpdatedTime | An <updated> element. |
Links | A <link> element for each SyndicationLink in the collection. |
Title | A <title> element. |
When serialized to RSS 2.0, a SyndicationFeed instance is written to an <rss> element. The following table shows how each property defined in the SyndicationFeed class is serialized to RSS 2.0.
SyndicationFeed property | Serialized form |
|---|---|
AttributeExtensions | An attribute in the <channel> element for each attribute in the collection. |
Authors | A <managingEditor> element if only one SyndicationPerson is in the collection; otherwise, an <a10:author> element for each SyndicationPerson in the collection. |
Categories | A <category> element for each SyndicationCategory in the collection. |
Contributors | An <a10:contributor> element for each SyndicationPerson in the collection. |
Copyright | A <copyright> element. |
Description | A <description> element. |
ElementExtensions | Each element in the collection is written within the <channel> element. |
Generator | A <generator> element. |
Id | An <a10:id> element. |
ImageUri | An <image> element. |
Items | An <item> element for each SyndicationItem in the collection. |
Language | A <language> element. |
LastUpdatedTime | A <lastBuildDate> element. |
Links | An <a10:link> element for each SyndicationLink in the collection. |
Title | A <title> element. |
The following code shows how to create a SyndicationFeed instance and serialize it to both Atom 1.0 and RSS 2.0.
SyndicationFeed feed = new SyndicationFeed("Feed Title", "Feed Description", new Uri("http://Feed/Alternate/Link"), "FeedID", DateTime.Now); // Add a custom attribute. XmlQualifiedName xqName = new XmlQualifiedName("CustomAttribute"); feed.AttributeExtensions.Add(xqName, "Value"); SyndicationPerson sp = new SyndicationPerson("jesper@contoso.com", "Jesper Aaberg", "http://Jesper/Aaberg"); feed.Authors.Add(sp); SyndicationCategory category = new SyndicationCategory("FeedCategory", "CategoryScheme", "CategoryLabel"); feed.Categories.Add(category); feed.Contributors.Add(new SyndicationPerson("lene@contoso.com", "Lene Aaling", "http://lene/aaling")); feed.Copyright = new TextSyndicationContent("Copyright 2007"); feed.Description = new TextSyndicationContent("This is a sample feed"); // Add a custom element. XmlDocument doc = new XmlDocument(); XmlElement feedElement = doc.CreateElement("CustomElement"); feedElement.InnerText = "Some text"; feed.ElementExtensions.Add(feedElement); feed.Generator = "Sample Code"; feed.Id = "FeedID"; feed.ImageUrl = new Uri("http://server/image.jpg"); TextSyndicationContent textContent = new TextSyndicationContent("Some text content"); SyndicationItem item = new SyndicationItem("Item Title", textContent, new Uri("http://server/items"), "ItemID", DateTime.Now); List<SyndicationItem> items = new List<SyndicationItem>(); items.Add(item); feed.Items = items; feed.Language = "en-us"; feed.LastUpdatedTime = DateTime.Now; SyndicationLink link = new SyndicationLink(new Uri("http://server/link"), "alternate", "Link Title", "text/html", 1000); feed.Links.Add(link); XmlWriter atomWriter = XmlWriter.Create("atom.xml"); Atom10FeedFormatter atomFormatter = new Atom10FeedFormatter(feed); atomFormatter.WriteTo(atomWriter); atomWriter.Close(); XmlWriter rssWriter = XmlWriter.Create("rss.xml"); Rss20FeedFormatter rssFormatter = new Rss20FeedFormatter(feed); rssFormatter.WriteTo(rssWriter); rssWriter.Close();
The following XML shows how a SyndicationFeed is serialized to Atom 1.0.
<feed xml:lang="en-us" CustomAttribute="Value" xmlns="http://www.w3.org/2005/Atom"> <title type="text">Feed Title</title> <subtitle type="text">This is a sample feed</subtitle> <id>FeedID</id> <rights type="text">Copyright 2007</rights> <updated>2007-04-13T17:29:38Z</updated> <category term="FeedCategory" label="CategoryLabel" scheme="CategoryScheme" /> <logo>http://contoso/image.jpg</logo> <author> <name>Jesper Aaberg</name> <uri>http://contoso/Aaberg</uri> <email>Jesper.Asberg@contoso.com</email> </author> <contributor> <name>Lene Aalling</name> <uri>http://contoso/Aalling</uri> <email>Lene.Aaling@contoso.com</email> </contributor> <generator>Sample Code</generator> <link rel="alternate" type="text/html" title="Link Title" length="1000" href="http://contoso/link" /> <link customAttribute="value" rel="alternate" type="text/html" title="Link Title" length="1000" href="http://contoso/link" /> <CustomElement xmlns="">Some text</CustomElement> <entry> <id>ItemID</id> <title type="text">Item Title</title> <updated>2007-04-13T17:29:38Z</updated> <link rel="alternate" href="http://contoso/items" /> <content type="text">Some text content</content> </entry> </feed>
The following XML shows how a SyndicationFeed instance is serialized to RSS 2.0.
<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0"> <channel CustomAttribute="Value"> <title>Feed Title</title> <link>http://feed/Alternate/Link</link> <description>This is a sample feed</description> <language>en-us</language> <copyright>Copyright 2007</copyright> <managingEditor>Jesper.Aaberg@contoso.com</managingEditor> <lastBuildDate>Fri, 13 Apr 2007 17:29:38 Z</lastBuildDate> <category domain="CategoryScheme">FeedCategory</category> <a10:link rel="alternate" type="text/html" title="Link Title" length="1000" href="http://contoso/link" /> <generator>Sample Code</generator> <a10:contributor> <a10:name>Lene Aalling</a10:name> <a10:uri>http://contoso/Aalling</a10:uri> <a10:email>Lene.Aalling@contoso.com</a10:email> </a10:contributor> <a10:author> <a10:name>Lene Aalling</a10:name> <a10:uri>http://contoso/Aalling</a10:uri> <a10:email>Lene.Aalling@contoso.com</a10:email> </a10:author> <image> <url>http://contoso/image.jpg</url> <title>Feed Title</title> <link>http://feed/Alternate/Link</link> </image> <a10:id>FeedID</a10:id> <a10:link customAttribute="value" rel="alternate" type="text/html" title="Link Title" length="1000" href="http://contoso/link" /> <CustomElement>Some text</CustomElement> <item> <guid isPermaLink="false">ItemID</guid> <link>http://contoso/items</link> <title>Item Title</title> <description>Some text content</description> <a10:updated>2007-04-13T17:29:38Z</a10:updated> </item> </channel> </rss>
Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.