Links

Project Documentation

RSS Extension Elements

If you need to write programs to read or write RSS feeds, you will know that the RSS formats are very extensible. You can pretty much add any additional elements to a feed. There are also many other XML formats, such as format that Google Base uses and Microsoft's simple sharing format, that are based on the RSS format and adds new functionalities by adding extension elements. If you need to parse a RSS feed, you should definitely consider adding support for some of these extension elements.

The following table shows the most popular extension elements that are currently being used. The data comes from a blog entry from the Google Reader blog
. An engineer from Google wrote an MapReduce program to go through all the feeds that Google Reader keeps track of and listed the top 50 extension namespaces. Currently Yarfraw supports quite a few of them. I am also using this list to prioritize extension support to be added in the future.

Preferred Namespace Prefixes

When Yarfraw marshall these extension elements, it will automatically add a predefined prefix to them to make the resulting xml document easier to read. The following table lists all the namespace prefixes:

Namespace Uri

Prefix

comments

http://www.w3.org/1999/02/22-rdf-syntax-ns#

rdf

http://www.w3.org/XML/1998/namespace

xml

http://base.google.com/ns/1.0

g

http://www.itunes.com/dtds/podcast-1.0.dtd

itunes

http://tools.search.yahoo.com/mrss/

mrss

http://wellformedweb.org/CommentAPI/

wfw

http://www.georss.org/georss/10

georss

http://purl.org/dc/elements/1.1/

dc

http://purl.org/rss/1.0/modules/syndication/

sy

http://webns.net/mvcb/

admin

http://rssnamespace.org/feedburner/ext/1.0

feedburner

http://purl.org/rss/1.0/modules/slash/

slash

http://www.blogger.com/atom/ns#

blogger

http://purl.org/atom-blog/ns#

draft

http://www.w3.org/2005/Atom

""

This the Atom 1.0 namespace, elements will use the default namespace

http://purl.org/rss/1.0/

""

This the RSS 1.0 namespace, elements will use the default namespace

For more details, I encourage to take a look at the Javadoc
. Also check out the FAQ
section for more insights about this API.