| home / reviews / rss_atom_action |
|
|
Let's return to the RSS history lesson. Not everybody was happy about the new RSS 1.0 format, especially Dave Winer, who had argued against RDF and lobbied to keep RSS as simple as possible. Winer rejected RSS 1.0 and released a new version of RSS, a minor revision of RSS 0.91, which he called Really Simple Syndication (RSS) 0.92. Thus, RSS was forked. The RDF advocates urged users to go with the RDF-based RSS 1.0 specification, and Winer urged users to stick with simple, safe, and compatible RSS 0.92.
Winer continued to develop the simple fork of RSS. He published new specifications for RSS 0.93 and RSS 0.94. With each release, he tweaked the format and added more metadata. In RSS 0.93, he added new subelements to the <item> element: <pubdate> and <expirationdate>. In RSS 0.94, he dropped <expirationdate> from the specification. Eventually, Winer published what he called the final version of RSS, dubbed RSS 2.0.

Some of the new elements added since RSS 0.91 deserve explanation:
|
The <enclosure> element was added to RSS 0.92 in 2002 and it remains in RSS 2.0, but it was not widely used until 2004, when the podcasting craze began. Podcasting is the practice of distributing audio files via RSS. Specialized podcast client software looks for enclosures, downloads each enclosed file, and copies it to your Apple iPod. The word podcasting is something of a misnomer because any sort of file can be distributed as an <enclosure>, not just audio files destined for an iPod or other digital audio player.
For more information about podcasting, see chapter 18, which presents a podcast server, and chapter 19, where we build a download podcast client you can use to automate the download of RSS enclosures.
<item> optional. You must specify either a title or a description, but nothing else is required. Because of this, some users started to substitute elements from other XML specifications, such as Dublin Core, for the optional standard elements. For example, they started using the Dublin Core <dc:date> instead of the native RSS <pubdate>. And some started to use the Content Module <content:encoded> element to include item content instead of using the native RSS <description> element. Winer discourages th is practice because it makes parsing RSS more complex. He calls newsfeeds that employ it funky, but such newsfeeds are perfectly valid according to the RSS 2.0 specification. Unfortunately, funky RSS is a fact of life, and if you are writing an RSS parser, you'll have to take it into account. We'll show you how to do this in chapter 5.


For more information on each of these versions of RSS, see the specifications found on the Web at the following addresses:
|
From a developer's perspective, the RSS situation looks like a nightmare, but it's really not that bad. The good news is that if you stick to the basic elements — <item>, <title>, <description>, <pubdate>, and <link> — or you use a good parsing library, you'll be able to parse RSS with relative ease. We'll show you how to do it in the next chapter. The even better news is that help is on the way, and its name is Atom.

| home / reviews / rss_atom_action |
URL: