Extremely Simple Syndication (XSS).

| No Comments | No TrackBacks

[UPDATE October 4 2002: A second draft has been published here.]

I continue my exploration of syndication formats. Inspired by some of yesterday's conversations on the RSS-DEV list and past proposals for a simple core I drafted up a more detailed description of such a format. (I'm releasing it in the spirit of "release early, release often.") It maintains backward compatablity with RSS 0.91 and its descendants.

From what I can tell this is the same format that Sam Ruby and Mark Pilgrim proposed except I've documented it in more detail and have classified it as a profile (a restricted subset) instead of a specification. Feedback and suggestions to improve this description are greatly appreciated.

I've set up my weblog to produce feeds in this format (here and here). The MovableType templates I'm using can be found here and here.

[UPDATE: Mark Pilgrim and Justin Rudd have written in to point out that I forgot to add an RDF namespace declaration to the XSS-extensible format. Thanks gents. Fixed. (The RSS 1.0 modules use RDF to structure the extensions in a principled way and avoid trouble.)]

Extremely Simple Syndication (XSS) Profile

DRAFT 1

ABSTRACT

The XSS profile defines a restricted subset of previous RSS formats that balances ease of use and authoring with ease of consumption by applications while maintaining the richness necessary to extended and adapt to various problem domains. It is designed for applications operating in resource constrained enviroments such as mobile phones, PDAs and other devices or sites needing to conserve bandwidth for economic or physical reasons. It is also designed for authors wishing to provide a well-formed "feed" of information to consumers.

The XSS profile is designed around a simple common core of elements that may be extended. It is also designed to maximize backwards compatability with the RSS 0.91 format and its decendents. This allows XSS to leverage the existing install base of 0.91 feeds and prior bodies of work such as Dublin Core meta data and RSS 1.0 modules. The XSS profile contains three document types -- Transitional, Strict, and Extensible.

The goal of the XSS profile is to serve as guidelines to best practices in a balanced and simplified approach to authoring and consuming of syndicated resources with RSS.

COMMON CORE TAGS

<rss>
Description: The root tag for the syndicated resources collection.
Sub-Elements: channel (required)
Attributes: version - a string identifying the version including profile and document type.
Notes: Only one channel is permitted.

<channel>
Description: Container tag for a specific channel
Sub-Elements: title (required), description (required), link (required)
Attributes: none.
Notes: Only one title, description or link is permitted. Language is deprecaited.

<item>
Description:
Sub-Elements: title (required), link (required), description (optional but highly recommended)
Attributes: none.
Notes: Recommended to not exceed 15 per channel.

<link>
Description: A unique URI that specifies the location of the channel or item (resource). A required sub-element of channel and item.
Sub-Elements: none.
Attributes: none.

<description>
Description: A plain text excerpt of the channel or item (resource). A required subelement of channel. Optional, though highly recommended, sub-element of item.
Sub-Elements: none.
Attributes: none.
Notes: The XSS profile supports plain text and does not permit encoded markup such as HTML to be included in the description. Recommended not to exceed 500 characters. Those wishing to embedd markup language or larger pieces of content in the description tag should use the mod_content module.

<title>
Description: A plain text descriptive title of the channel or item (resource).
Sub-Elements: none.
Attributes: none.
Notes: Is the equivelant of the HTML title and only supports plain text. Encoded markup such as HTML is not permitted to be included in the title. Recommended to be no more then 100 characters.

DEPRECIATED TAGS

Tags not defined other tags from RSS 0.91 and its decendents are considered depreciated from the core in the XSS profile. This data can be furnished though various modules such as Dublin Core, mod_content and mod_admin. All depreciated tags in the XSS profile where previously considered optional except language which was required by the 0.91 specification, but made optional in later specifications.

DOCUMENT TYPES

Transitional. RSS 2.0/XSS-transitional. Depreciated tags such as language, copyright, and image found in the 0.91 format and its decendents allowed, but should ignored be ignored in favor of their extension module counterparts. All depreciated tags in the XSS profile where previously considered optional except language which was required by the 0.91 specification, but made optional in later specifications.

Strict. RSS 2.0/XSS-strict. This document type only permits the use of core elements. Depreciated tags are not permitted. This document type does not expect the use of extension modules in order to maintain a simple light-weight footprint. Authors requiring more rich metadata and/or extensibility should use the Extensible document type.

Extensible. RSS 2.0/XSS-extensible. All the stated expectations of the Strict document type apply except modules are permitted and expected. With this added capability to to the document type, the X can be considered as representing 'extensible' rather then 'extremely.' Extensible Document Type can become quite complex and tedious to author without automated tools for generation.

Without detailed information to extending RSS 2.0 with modules and XML namespaces, the XSS profile Extensible document type will follow the guidelines of set forth in the RSS 1.0 format module's guidelines.

EXAMPLES

OUTSTANDING ISSUES

  • How to Identify the profile/document type. place in version or use XML document type?
  • Should build DTD and/or schema?
  • Some deprecaited tags are lacking corresponding modules.
  • Need to list out deprecaited tags and map to specific modules and fields.
  • Add Background and Requirements section?

No TrackBacks

TrackBack URL: http://appnel.com/mt/pings/72

History Revisioning from Disobey Nonsense Network on May 3, 2004 5:27 PM

I'm saddened that I'm actually wasting the time to write up this complaint formally, but if there's any time to be happy about being too busy to work on AmphetaDesk, I'd say it's now. The syndication scene has become insanely disgusting to me of late -... Read More

Leave a comment