詹姆斯 James

A Namespace for RSS

February 5th, 2009

What’s in a name? That which we call a rose
By any other name would smell as sweet.
William Shakespeare, 1564–1616

There has been some discussion recently on the RSS Advisory Board public mailing list, regarding the possibility of assigning a namespace to RSS elements. This namespace would be exclusively for use when embedding RSS inside other XML vocabularies.

My concern was that the introduction of such a namespace – even when explicitly limited to embedding scenarios – would ultimately lead to that namespace being used in regular RSS feeds. This has the potential to cause major problems for feed readers.

Testing My Theories

Before becoming overly concerned, though, I figured I should run some tests to see how much of an issue it really was. I created three feeds: one with no namespace as a baseline test; one using the namespace proposed by the board 1; and one with the Userland namespace 2 that Dave Winer had used in the past, albeit experimentally.

My theory in testing the latter, was that some feed readers might have added support for the Userland namespace at the time it was first introduced, even if it was never officially added to the RSS specification. It was thus more likely to work than a random namespace that had only just been proposed.

As an afterthought, I also added two variations of the namespaced feeds, using prefixed element names. My experience with namespaces in Atom suggested that this would be another source of problems for many feed readers.

Executive Summary

Surprisingly, there were a good number of clients that had no problems reading any of the feeds. There were a few (Google Reader being the most noteworthy) that worked with the Userland namespace, but not the one being proposed by the board. And some (Internet Explorer being one) that wouldn’t recognise either of the namespaces.

As expected, the prefixed feeds caused more problems. Many of the clients that appeared to support both namespaces, would choke on those same namespaces when the element names were prefixed. Clients that only supported the one namespace would tend to fare better though – I suspect they were more likely to be using namespace-aware parsers that would understand prefixes.

Detailed Results

For anyone wishing to replicate my tests, these are the feeds I used:

Clients that worked with all feeds:

  • Abilon 2.5.3
  • Active Web Reader 2.49
  • BottomFeeder 4.4
  • FeedExplorer 1.1.7
  • JetBrains Omea 2.2 (1098.1)
  • MyYahoo!
  • Newsgator
  • Opera 9.51
  • RSS Bandit 1.6.0.2
  • RSSOwl 2.0.0 3
  • RssReader 1.0.96.2
  • Thunderbird 1.5.0.13

Clients that worked with all but the prefixed variations:

  • AmphetaDesk 0.93.1
  • Bloglines
  • Blog Navigator 1.2.2
  • FeedDemon 2.7.0.0
  • FeedGhost Lite 1.0.266.0
  • FeedReader 3.11
  • GreatNews 1.0.0.383
  • NewsPiper 3.7.1.3
  • Newsplorer 1.1
  • Newzie 0.99.9
  • YeahReader 2.22.235

Clients that only worked with the Userland namespace:

  • BlogBridge 6.0
  • Firefox 3.0.5
  • Google Reader
  • Newz Crawler 1.9.0
  • Planet Venus 4
  • SharpReader 0.9.7.0
  • Snarfer 1.0.2

Clients that didn’t work with either namespace:

  • Awasu 2.4
  • CITA RSS aggregator 2.7
  • Internet Explorer 7.0.6000.16681
  • SimplePie feed parser

Note that I didn’t have the latest version of every client tested, but I suspect that more recent versions wouldn’t have made much of a difference.

1 http://www.rssboard.org/rss-namespace/
2 http://backend.userland.com/rss2
3 RSSOwl was unable to extract the feed titles in the prefixed feeds, but otherwise had no problems reading them.
4 Planet Venus accepted both namespaces in the initial tests, but only recognised the Userland namespace in the prefixed variations.