Content Syndication with RSS Paperback – 3 Apr 2003
Enter your mobile number below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
Getting the download link through email is temporarily not available. Please check back later.
To get the free app, enter your mobile phone number.
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.
Top Customer Reviews
Although this is a thin book by O'Reilly and technical book standards, it's not light on content. Ben Hammersley rattles through the convoluted history of content syndication and RSS in particular, then delves into the standards and how they are used. There's also good coverage of how to create your own feeds, how to integrate other feeds into your site and other aspects of how the standards are used in practice.
This isn't a book for raw beginners - if you've never heard of XML before, you'll probably need to get up to speed with the basics at least - but it covers what you need to know about the subject in a clear but not overly-long way. It's also written in a pretty conversational style which lightens up what could have been a pretty dull text. Ben Hammersley writes for a wide variety of publications on a wide variety of more-and-less geeky subjects, so he's well-able to explain technical stuff to an unfamilar audience.
Two minor criticisms - all the code examples are in Perl, which although useful is somewhat restrictive; and the references to specific applications and services are likely to be quickly out
There are other books out there that cover similar ground along with other subjects, but this is a good introduction to RSS and content syndication specifically. It might not be something you'll refer to on a daily basis, but it's worth the purchase price nevertheless.
There is one major gripe that I do have about this book; the examples are solely in Perl and whilst this is a method that many people will use, it would have been nice to see examples in other languages such as Python and PHP.
Most Helpful Customer Reviews on Amazon.com (beta)
The first issue I had with the book is the coverage of versions. The author has chosen to write not only about the two current versions (1.0 and 2.0 - two companies, two separate tracks of standardized tags), but the preceding versions for each. I don't buy a Word 2003 book to learn about Word 6. The layout could serve as a reference guide for the tags when you're done, but again, the vendor provided syntax guides are easier to reference. Next, the author makes some assumptions that aren't publicized; you should be really (really) familiar with XML to understand many chapters in the book, and you should also develop in Perl (as there are numerous, lengthy Perl scripts used as demos). I've created many RSS Feeds for both company Intranets as well as Internet sites, and given the simplicity of RSS, I can tell you that you don't need either to create a feed on your own.
The back cover claims the book is a "step-by-step guide to implementation", but it really isn't. The author has written a very nice book on the general history and specs of standardized RSS, but then fills the remaining pages with a general syntax overview of other commonly used RSS XML namespaces (not really demo-ing them), ideas for extending RSS with your own XML namespaces (which is great, but really just produces a customized XML document that industry standard RSS reader's won't know what to do with) , and then transforming other site's RSS Feeds into your own conglomerated XHTML page with various Perl conversion scripts, SOAP tie-ins, etc.
For the percentage of people that already know RSS and are looking to really go into advanced manipulations - this is a great title and I recommend it. For everyone else who just want to quickly learn the very simple syntax, this is a misleading title and I would recommend saving your money and reading the vendor's free syntax guides, or talking a quick on-line course. You'll find RSS easy enough without this book.
I grant that the history is important, and this book will probably fit in well to the cadre of books that emerge on RSS over the next year or two. However, this year, this isn't the book I needed.
As a general introductory reading, it's the best book out there. But once you get your feet deep enough in the RSS waters, you need to go online and search for the current APIs, Web Services, News Aggregators and RSS/Blog Directories, which is the area where the book will fall behind the fast growth of this area. Overall, very well structured, even with an appendix on the XML you need to know, in order to be able to deal with RSS.
Another reviewer complained that Chapter 4's title including "RSS 2.0", while not discussing RSS 2.0 in the chapter's text. This was apparently an honest mistake that has no effect whatsoever on the book's presentation, as Chapter 8 is entirely devoted to RSS 2.0. I note that the Chapter 4 title is corrected in the Safari online edition of the book -- O'Reilly is really on top of updates!
The author includes an excellent appendix on XML basics; you can give this book to any web developer and get them up to speed on RSS without first making them XML experts.
Given the complexity of the topic, this is a top-notch book, easily worth five stars.
Overall, It's a solid book with a few warts. I'll certainly get some use out of it, but I hope the second edition is a bit smoother.