About the Author
Ben Hammersley is an English emigre, living in Sweden, with his wife, three greyhounds, a few hundred deer, and a two-way satellite connection. For a day job, he writes for the British national press, appearing in The Times, The Guardian, and The Observer, but in his free time, he blogs excessively at www.benhammersley.com and runs the Lazyweb.org ideas site. As a member of the RSS 1.0 Working Group, he survived the Great Fork Summer, and as a journalist he has been accosted by the secret police of two countries. To this day, he doesn't know which was worse.
Excerpt. © Reprinted by permission. All rights reserved.
CHAPTER 4 - RSS 0.91, 0.92, and 2.0 (Really Simple Syndication)
It s so simple to be happy,but so difficult to be simple.
Gururaj Ananda Yogi
In this chapter we examine the RSS 0.91,0.92,and 2.0 specifications in detail.We also show how to create your own feeds and use those created by others.
The version documented in this section is based on the Userland document of April 2000. Its author,Dave Winer,did not invent any new practices with this specification,but he did codify RSS in a far more precise way than the Netscape original,based on common practice at the time.Primarily, the new codification imposed limits on the number of characters allowed within each element.
The only major difference between the Userland spec and the original Netscape write-up is that the Userland version lacks a document type definition (DTD)declaration.In fact, Netscape RSS 0.91is the only RSS version with an official DTD,so most RSS parsers are used to dealing without one.Including the declaration is therefore a matter of personal preference (though it must be noted that useful character entities such as cannot be used without it).Example 4-1provides a DTD declaration for those who wish to use one.
Example 4-1.The top of an RSS 0.91 document,with a DTD declaration
The Basic Structure
The top level of an RSS 0.91document is the element.This is followed by a single channel element.The channel element contains the entire feed contents and all associated metadata.
Required channel Subelements
There are five required subelements of channel within RSS 0.91:
The name of the feed.In most cases,this is the same name as the associated web site.It can have a maximum of 100 characters.
A URL pointing to the associated web site.It can have a maximum of 500 characters.
Description Some words to describe your channel.This section cannot contain anything other than plain text (no HTML or other markup is allowed).
The code for the language in which the feed is written.A full list of these codes appears in Appendix A.
An element that contains subelements to describe the feed s accompanying icon. It has three required and two optional subelements:
The URL of a GIF,JPG,or PNG image that corresponds to the feed.It can have a maximum of 500 characters,and it is required.
A description of the image,usually used within the ALT attribute of HTML s image tag.It can have 100 characters,and it is required.
The URL to which the image should be linked.This is usually the same as the channel -level link .It can have 500 characters,and it is required.
width and height
The width and height of the icon,in pixels.The icons should be a maximum of 144 pixels wide by 400 pixels high. The emergent standard is 88 pixels wide by 31 pixels high.Both of these elements are optional.
Optional channel Subelements
There are ten optional channel subelements of RSS 0.91.Technically speaking,you can leave these out altogether.However,you are encouraged to add them.Much of this stuff is static the content of the element never changes.Placing it into your RSS template,or adding another line to a script,is little work for the additional value of your feed s metadata. This is especially true for the first three subelements listed here:
A copyright notice for the content in the feed.It can have a maximum of 10 characters.
The email address of the person to contact for editorial enquiries.It is suggested that this is in the format name @example.com (FirstName LastName ).It can have a maximum of 100 characters.
The email address of the webmaster for this feed.It can have a maximum of 100 characters.
The PICS rating for the feed.The maximum length is 500 characters.
The publication date of the content within the feed.For example,a daily morning newspaper publishes at a certain time early every morning.Technically, any information in the feed should not be displayed until after the publication date.
Few RSS readers take any notice of this element in this way.Nevertheless,it should be in the format outlined in RFC 822.This element is also demonstrated in Example 3-2.
The date and time,RFC 822 style,that the feed last changed.
A URL that points to an explanation of the standard,for future reference.
skipDays and skipHours
A set of elements that can control when a feed user reads the feed.skipDays can contain up to seven day subelements:Monday,Tuesday,Wednesday,Thursday, Friday,Saturday,or Sunday.skipHours contains up to 24 hour subelements,the numbers 1 24,representing the time in Greenwich Mean Time (GMT).The client should not retrieve the feed during any day or hour listed within these two elements.For example usage,see Example 3-2.
An element that gives RSS feeds the ability to display a small text box and Submit button and associate them with a CGI application.Many RSS parsers support this feature,and many sites use it to offer archive searching or email newsletter sign-ups, for example .textInput has four required subelements:
The label for the Submit button.It can have a maximum of 100 characters.
Text to explain what the textInput actually does.It can have a maximum of 500 characters.
The name of the text object that is passed to the CGI script.It can have a maximum of 20 characters.
The URL of the CGI script.It can have a maximum of 500 characters.