RSS Advisory Board

Convert from RSS 0.91 to RSS 2.0

Editor's Note: This is version 1.0 of this document, published Jan. 21, 2008.

Under the principle that "if it ain't broke, don't fix it," you may be reluctant to convert older software that produces RSS 0.91 feeds to work with RSS 2.0, the most up-to-date version of the syndication format.

It's easy to make the upgrade. With a few simple changes, your old RSS 0.91 feeds can pass the Feed Validator as RSS 2.0.

1. Update the Feed's Version Number

In the feed's rss element, change the version attribute from "0.91" to "2.0":

<rss version="2.0">

2. Drop the DOCTYPE Declaration

Unlike RSS 0.91, RSS 2.0 does not require a document type declaration (DTD). You can delete this line from the feed:

<!DOCTYPE rss SYSTEM "http://my.netscape.com/publish/formats/rss-0.91.dtd">

The RSS 0.91 DTD must not be used in an RSS 2.0 feed. If you have a DTD for RSS 2.0 and you'd like to declare its use in your feed, there's no prohibition against doing so.

3. Rename the TextInput Element

This RSS element's name is textinput in RSS 0.91 and textInput in RSS 2.0.

If your feed contains this element, change the capitalization in both its start tag and end tag:

<textInput>
  <title>Search Now!</title>
  <description>Enter your search terms</description>
  <name>find</name>
  <link>http://site.example.com/search.cgi</link>
</textInput>

You probably don't need this suggestion, since few RSS feeds include textInput elements and few aggregators support them.

4. Update the Docs Element

In RSS 0.91, the purpose of the docs element was to link to a web page containing a description of the feed. In subsequent versions of RSS, the purpose changed, and now it's designed to contain a link to the RSS specification adopted by the feed.

This is an optional element, so you can simply delete it from the feed and be done with the conversion. But if you'd like to link to the RSS 2.0 specification, the following element can be used:

<docs>http://www.rssboard.org/rss-specification</docs>

Consider Additional Improvements

That's it! The preceding changes are all that's required to convert a working RSS 0.91 feed to RSS 2.0, but there are other differences between the versions worthy of consideration as you upgrade.

RSS 0.91 requires a title for each feed item. This is no longer true in RSS 2.0, but each item must contain either a title or a description.

RSS 2.0 recommends that each item should contain a guid element, a URL or string that uniquely identifies the item.

RSS 0.91 does not allow HTML markup in any of its elements, so the software you've been using to produce RSS 0.91 feeds is probably generating plain text in things like a channel's description and an item's title and description.

Because RSS 2.0 allows HTML in some elements, there are some compatibility issues that arise when your text includes the characters "<", ">" and "&". The easiest way to avoid potential problems is to use hexadecimal character references for each of these characters. Use &#x26; to represent "&", &#x3C; to represent "<" and &#x3E; to represent ">", as in this example:

<title>Dungeons &#x26; Dragons</title>

More information on character encoding can be found in the RSS Profile, a set of best-practice recommendations for RSS 2.0 created by the RSS Advisory Board.

If you run into any problems making the conversion, you can ask questions on the RSS-Public mailing list operated by the board.

You can do a lot more with RSS 2.0 that's not covered here, because the format has become more versatile since its humble origins as Netscape's headline-exchange format in 1999. RSS 2.0 supports podcasting, tagging, XML namespaces and other improvements. The RSS Profile contains our best advice for how to take full advantage of the capabilities of RSS.