Tuesday, July 10, 2007

What Is RSS

by Mark Pilgrim



RSS is a format for syndicating news and the content of news-like sites, including major news sites like Wired, news-oriented community sites like Slashdot, and personal weblogs. But it's not just for news. Pretty much anything that can be broken down into discrete items can be syndicated via RSS: the "recent changes" page of a wiki, a changelog of CVS checkins, even the revision history of a book. Once information about each item is in RSS format, an RSS-aware program can check the feed for changes and react to the changes in an appropriate way.


RSS-aware programs called news aggregators are popular in the weblogging community. Many weblogs make content available in RSS. A news aggregator can help you keep up with all your favorite weblogs by checking their RSS feeds and displaying new items from each of them.


A brief history


But coders beware. The name "RSS" is an umbrella term for a format that spans several different versions of at least two different (but parallel) formats. The original RSS, version 0.90, was designed by Netscape as a format for building portals of headlines to mainstream news sites. It was deemed overly complex for its goals; a simpler version, 0.91, was proposed and subsequently dropped when Netscape lost interest in the portal-making business. But 0.91 was picked up by another vendor, UserLand Software, which intended to use it as the basis of its weblogging products and other web-based writing software.


In the meantime, a third, non-commercial group split off and designed a new format based on what they perceived as the original guiding principles of RSS 0.90 (before it got simplified into 0.91). This format, which is based on RDF, is called RSS 1.0. But UserLand was not involved in designing this new format, and, as an advocate of simplifying 0.90, it was not happy when RSS 1.0 was announced. Instead of accepting RSS 1.0, UserLand continued to evolve the 0.9x branch, through versions 0.92, 0.93, 0.94, and finally 2.0.


What a mess.



What does RSS look like?


Imagine you want to write a program that reads RSS feeds, so that you can publish headlines on your site, build your own portal or homegrown news aggregator, or whatever. What does an RSS feed look like? That depends on which version of RSS you're talking about. Here's a sample RSS 0.91 feed (adapted from XML.com's RSS feed ):


<rss version="0.91">

   <channel>

     <title>XML.com</title>

     <link>http://www.xml.com/</link>

     <description>XML.com features a rich mix of information and services for the XML community.</description>

     <language>en-us</language>

     <item>

       <title>Normalizing XML, Part 2</title>

       <link>http://www.xml.com/pub/a/2002/12/04/normalizing.html</link>

       <description>In this second and final look at applying relational normalization techniques to W3C XML Schema data modeling, Will Provost discusses when not to normalize, the scope of uniqueness and the fourth and fifth normal forms.</description>

     </item>

     <item>

       <title>The .NET Schema Object Model</title>

       <link>http://www.xml.com/pub/a/2002/12/04/som.html</link>

       <description>Priya Lakshminarayanan describes in detail the use of the .NET Schema Object Model for programmatic manipulation of W3C XML Schemas.</description>

     </item>

     <item>

       <title>SVG's Past and Promising Future</title>

       <link>http://www.xml.com/pub/a/2002/12/04/svg.html</link>

       <description>In this month's SVG column, Antoine Quint looks back at SVG's journey through 2002 and looks forward to 2003.</description>

     </item>

   </channel>

</rss>


Simple, right? A feed comprises a channel, which has a title, link, description, and (optional) language, followed by a series of items, each of which have a title, link, and description.


Now look at the RSS 1.0 version of the same information:


<rdf:RDF

   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

   xmlns="http://purl.org/rss/1.0/"

   xmlns:dc="http://purl.org/dc/elements/1.1/"

>

   <channel rdf:about="http://www.xml.com/cs/xml/query/q/19">

     <title>XML.com</title>

     <link>http://www.xml.com/</link>

     <description>XML.com features a rich mix of information and services for the XML community.</description>

     <language>en-us</language>

     <items>

       <rdf:Seq>

         <rdf:li rdf:resource="http://www.xml.com/pub/a/2002/12/04/normalizing.html"/>

         <rdf:li rdf:resource="http://www.xml.com/pub/a/2002/12/04/som.html"/>

         <rdf:li rdf:resource="http://www.xml.com/pub/a/2002/12/04/svg.html"/>

       </rdf:Seq>

     </items>

   </channel>

   <item rdf:about="http://www.xml.com/pub/a/2002/12/04/normalizing.html">

     <title>Normalizing XML, Part 2</title>

     <link>http://www.xml.com/pub/a/2002/12/04/normalizing.html</link>

     <description>In this second and final look at applying relational normalization techniques to W3C XML Schema data modeling, Will Provost discusses when not to normalize, the scope of uniqueness and the fourth and fifth normal forms.</description>

     <dc:creator>Will Provost</dc:creator>

     <dc:date>2002-12-04</dc:date>    

   </item>

   <item rdf:about="http://www.xml.com/pub/a/2002/12/04/som.html">

     <title>The .NET Schema Object Model</title>

     <link>http://www.xml.com/pub/a/2002/12/04/som.html</link>

     <description>Priya Lakshminarayanan describes in detail the use of the .NET Schema Object Model for programmatic manipulation of W3C XML Schemas.</description>

     <dc:creator>Priya Lakshminarayanan</dc:creator>

     <dc:date>2002-12-04</dc:date>    

   </item>

   <item rdf:about="http://www.xml.com/pub/a/2002/12/04/svg.html">

     <title>SVG's Past and Promising Future</title>

     <link>http://www.xml.com/pub/a/2002/12/04/svg.html</link>

     <description>In this month's SVG column, Antoine Quint looks back at SVG's journey through 2002 and looks forward to 2003.</description>

     <dc:creator>Antoine Quint</dc:creator>

     <dc:date>2002-12-04</dc:date>    

   </item>

</rdf:RDF>


Quite a bit more verbose. People familiar with RDF will recognize this as an XML serialization of an RDF document; the rest of the world will at least recognize that we're syndicating essentially the same information. In fact, we're including a bit more information: item-level authors and publishing dates, which RSS 0.91 does not support.

--------------------------------------------------------------------------
Distributed by Hasan Shrek, independence blogger. Also run online business , mlm coder, internet marketing solution , online store script .

Beside he is writing some others blogs for notebook computer , computer training , computer software and personal computer


--------------------------------------------------------------------------