Chapter 11. Developing New Modules

Inventions reached their limit long ago, and I see no hope for further development.

—Sextus Julius Frontinus

In this chapter, we will create a new module and extend a desktop reader (AmphetaDesk) to understand it. We will also discuss the differences between the RSS 1.0 and RSS 2.0 data models and the effect of these differences on module design.

We have already dealt with the RDF data model in detail in Chapter 5, so we must now look at RSS 2.0.

Namespaces and Modules with RSS 2.0

RSS 2.0 introduces namespaced modules to the simple strand of RSS. The specification document states:

A RSS feed may contain elements not described on this page, only if those elements are defined in a namespace. The elements defined in this document are not themselves members of a namespace, so that RSS 2.0 can remain compatible with previous versions in the following sense — a version 0.91 or 0.92 file is also a valid 2.0 file. If the elements of RSS 2.0 were in a namespace, this constraint would break, a version 0.9x file would not be a valid 2.0 file.

Other than not defining a namespace for the core elements of RSS 2.0, the modules work in the same way as the modules for RSS 1.0: declare the module’s namespace in the root element (which in the case of RSS 2.0 is, of course, rss) and then use the module elements as directed by their specification. Parsers that do not recognize the namespace just ignore the new elements.

Differences from RSS 1.0

Whether or not RSS 1.0 modules ...

Get Content Syndication with RSS now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.