SyndicationFeed Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Represents a top-level feed object, <feed
> in Atom 1.0 and <rss
> in RSS 2.0.
public ref class SyndicationFeed
public class SyndicationFeed
type SyndicationFeed = class
Public Class SyndicationFeed
- Inheritance
-
SyndicationFeed
Examples
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("[email protected]", "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("[email protected]", "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();
Dim feed As SyndicationFeed = New SyndicationFeed("Feed Title", "Feed Description", New Uri("http:'Feed/Alternate/Link"), "FeedID", DateTime.Now)
' Add a custom attribute.
Dim xqName As XmlQualifiedName = New XmlQualifiedName("CustomAttribute")
feed.AttributeExtensions.Add(xqName, "Value")
Dim sp As SyndicationPerson = New SyndicationPerson("[email protected]", "Jesper Aaberg", "http:'jesper/aaberg")
feed.Authors.Add(sp)
Dim category As SyndicationCategory = New SyndicationCategory("FeedCategory", "CategoryScheme", "CategoryLabel")
feed.Categories.Add(category)
feed.Contributors.Add(New SyndicationPerson("[email protected]", "Lene Aaling", "http:'Lene/Aaling"))
feed.Copyright = New TextSyndicationContent("Copyright 2007")
feed.Description = New TextSyndicationContent("This is a sample feed")
' Add a custom element.
Dim doc As XmlDocument = New XmlDocument()
Dim feedElement As XmlElement = 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")
Dim textContent As TextSyndicationContent = New TextSyndicationContent("Some text content")
Dim item As SyndicationItem = New SyndicationItem("Item Title", textContent, New Uri("http:'server/items"), "ItemID", DateTime.Now)
Dim items As Collection(Of SyndicationItem) = New Collection(Of SyndicationItem)()
items.Add(item)
feed.Items = items
feed.Language = "en-us"
feed.LastUpdatedTime = DateTime.Now
Dim link As SyndicationLink = New SyndicationLink(New Uri("http:'server/link"), "alternate", "Link Title", "text/html", 1000)
feed.Links.Add(link)
Dim atomWriter As XmlWriter = XmlWriter.Create("atom.xml")
Dim atomFormatter As Atom10FeedFormatter = New Atom10FeedFormatter(feed)
atomFormatter.WriteTo(atomWriter)
atomWriter.Close()
Dim rssWriter As XmlWriter = XmlWriter.Create("rss.xml")
Dim rssFormatter As Rss20FeedFormatter = 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>[email protected]</email>
</author>
<contributor>
<name>Lene Aalling</name>
<uri>http://contoso/Aalling</uri>
<email>[email protected]</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>[email protected]</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>[email protected]</a10:email>
</a10:contributor>
<a10:author>
<a10:name>Lene Aalling</a10:name>
<a10:uri>http://contoso/Aalling</a10:uri>
<a10:email>[email protected]</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>
Remarks
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. |
Constructors
SyndicationFeed() |
Initializes a new instance of the SyndicationFeed class. |
SyndicationFeed(IEnumerable<SyndicationItem>) |
Initializes a new instance of the SyndicationFeed class with the specified collection of SyndicationItem objects. |
SyndicationFeed(String, String, Uri, IEnumerable<SyndicationItem>) |
Initializes a new instance of the SyndicationFeed class with the specified title, description, URI, and collection of SyndicationItem objects. |
SyndicationFeed(String, String, Uri, String, DateTimeOffset, IEnumerable<SyndicationItem>) |
Creates a new instance of the SyndicationFeed class. |
SyndicationFeed(String, String, Uri, String, DateTimeOffset) |
Creates a new instance of the SyndicationFeed class. |
SyndicationFeed(String, String, Uri) |
Initializes a new instance of the SyndicationFeed class with the specified title, description, and Uniform Resource Identifier (URI). |
SyndicationFeed(SyndicationFeed, Boolean) |
Creates a new instance of the SyndicationFeed class with the specified feed. |
Properties
AttributeExtensions |
Gets a collection of attribute extensions. |
Authors |
Gets a collection of authors of the feed. |
BaseUri |
Gets or sets the base URI for the SyndicationFeed instance. |
Categories |
Gets a collection of categories for the feed. |
Contributors |
Gets a collection of the contributors to the feed. |
Copyright |
Gets or sets copyright information for the feed. |
Description |
Gets or sets a description of the feed. |
Documentation |
Gets or sets the link to documentation for the feed. |
ElementExtensions |
Gets the element extensions for the feed. |
Generator |
Gets or sets the generator of the feed. |
Id |
Gets or sets the ID of the feed. |
ImageUrl |
Gets or sets the image URL for the feed. |
Items |
Gets a collection of the feed items contained in the feed. |
Language |
Gets or sets the language of the feed. |
LastUpdatedTime |
Gets or sets the time the feed was last updated. |
Links |
Gets the links associated with the feed. |
SkipDays |
Gets a collection of strings indicating the set of values in the 'skipDays' element for the feed. |
SkipHours |
Gets a collection of integers indicating the set of values in the 'skipHours' element for the feed. |
TextInput |
Gets or sets the TextInput property for the feed. |
TimeToLive |
Gets or sets the 'ttl' attribute for the feed. |
Title |
Gets or sets the title of the feed. |
Methods
Clone(Boolean) |
Creates a copy of the SyndicationFeed instance. |
CreateCategory() |
Creates a new SyndicationCategory instance. |
CreateItem() |
Creates a new SyndicationItem instance. |
CreateLink() |
Creates a new SyndicationLink instance. |
CreatePerson() |
Creates a new SyndicationPerson instance. |
Equals(Object) |
Determines whether the specified object is equal to the current object. (Inherited from Object) |
GetAtom10Formatter() |
Gets an Atom10FeedFormatter instance. |
GetHashCode() |
Serves as the default hash function. (Inherited from Object) |
GetRss20Formatter() |
Gets an Rss20FeedFormatter instance. |
GetRss20Formatter(Boolean) |
Gets a new Rss20FeedFormatter instance. |
GetType() |
Gets the Type of the current instance. (Inherited from Object) |
Load(XmlReader) |
Loads a syndication feed from the specified XML reader. |
Load<TSyndicationFeed>(XmlReader) |
Loads a SyndicationFeed-derived instance from the specified XmlReader. |
MemberwiseClone() |
Creates a shallow copy of the current Object. (Inherited from Object) |
SaveAsAtom10(XmlWriter) |
Write the syndication feed to the specified XmlWriter in Atom 1.0 format. |
SaveAsRss20(XmlWriter) |
Write the syndication feed to the specified XmlWriter in RSS 2.0 format. |
ToString() |
Returns a string that represents the current object. (Inherited from Object) |
TryParseAttribute(String, String, String, String) |
Attempts to parse an attribute extension. |
TryParseElement(XmlReader, String) |
Attempts to parse an element extension. |
WriteAttributeExtensions(XmlWriter, String) |
Writes the attribute extensions to the specified XmlWriter using the specified syndication version. |
WriteElementExtensions(XmlWriter, String) |
Writes the element extensions to the specified XmlWriter using the specified syndication version. |