SyndicationFeed Class

Definition

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("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();
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("jesper@contoso.com", "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("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.
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>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>

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)

Initializes a new instance of the SyndicationFeed class with the specified title, description, and Uniform Resource Identifier (URI).

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)

Creates a new instance of the SyndicationFeed class.

SyndicationFeed(String, String, Uri, String, DateTimeOffset, IEnumerable<SyndicationItem>)

Creates a new instance of the SyndicationFeed class.

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.

Applies to