In the 2.5 years I've been a member of the RSS Advisory Board, three questions have been asked most often by programmers having difficulty interpreting the RSS 2.0 specification:
- Can an item contain more than one enclosure?
- What elements are allowed to contain HTML?
- How do I deal with relative URLs?
I think it's time that the board answered them.
In February, work began on a new, written-from-scratch draft of the specification, with each revision announced and vetted on the RSS-Public mailing list. The main contributors to the draft are four members of the board and one of the lead developers of the Feed Validator: James Holderness, Randy Charles Morin, Sam Ruby, Greg Smith and myself.
The new draft documents the same elements and attributes described in RSS 2.0 (version 2.0.8), the current spec, making no changes to the requirements upon which RSS creators Dan Libby and Dave Winer sparked the incredibly successful RSS boom. No elements have been added or removed.
It does clarify the RSS specification in the three areas mentioned above, based on our interpretation of the current spec and its predecessors:
- An item cannot contain more than one enclosure. The only RSS element that can be present more than once in an item is category.
- The only RSS element that can contain HTML is an item's description.
- Relative URLs are not allowed. When they're encountered in an item's description -- which is not recommended -- the feed's link element should be used as the base URL.
Though we could answer these three questions by editing the current spec, this draft should be easier to interpret because it follows the rules of RFC 2119, a standard for spec writers that dictates exactly what words like "must", "may" and "should" mean when they appear in a technical document.
It also has been through a thorough and open review process that included 11 revisions to the draft and 13 revisions to a companion document still under development, the RSS Profile.
I proposed today that the RSS Advisory Board adopt the draft as version 2.0.9 of the RSS 2.0 specification.
If this proposal is seconded, the seven-day discussion period will be used to fix mistakes, address concerns and make other minor edits to this draft. When the vote begins, I'll report to the board on the changes that were made and publish the final draft at the above URL for consideration.
Comments from the public are encouraged on the RSS-Public mailing list.
