Introduction to RSS
This article gives an over view of what RSS is and how it is possible to distribute up-to-date web contents from a web site to over thousands of other websites. RSS stands for Really Simple Syndication. RSS allows syndicating site content. It is a collection of web formats used to publish frequently updated works.
RSS is written in XML. It allows personalized views for different sites, an easy way to share and view headlines and content. RSS was designed to show updated data. Without RSS users will have to check a site daily for new updates.
The History of RSS
- 1997 - Dave Winer develops scriptingNews. RSS was born.
- 1999 - Netscape develops RSS 0.90 (which supported scriptingNews). This was simply XML with an RDF Header.
- 1999 - Dave Winer at UserLand develops scriptingNews 2.0b1 (This included Netscape's RSS 0.90 features)
- 1999 - Netscape develops RSS 0.91. In this version they removed the RDF header, but included most features from scriptingNews 2.0b1.
- 1999 - UserLand gets rid of scriptingNews and uses only RSS 0.91
- Netscape stops their RSS development
- 2000 - UserLand releases the official RSS 0.91 specification
- 2000 - A group led by Rael Dornfest at O'Reilly develops RSS 1.0. This format uses RDF and namespaces. This version is often confused as being a new version of 0.91, but this is a completely new format with no ties to RSS 0.91
- 2000 - Dave Winer at UserLand develops RSS 0.92
- 2002 - Dave Winer develops RSS 2.0 after leaving Userland
- 2003 - The official RSS 2.0 specification is released
How RSS Works
RSS is used to share content between websites. With RSS, you register your content with companies called aggregators. We have to create an RSS document and save it with an .xml extension. Then, upload the file to website. Next, register with an RSS aggregator. Each day the aggregator searches the registered websites for RSS documents, verifies the link, and displays information about the feed so clients can link to documents that interest them.
RSS works by having the website author maintain a list of notifications on their website in a standard way. This list of notifications is called an "RSS Feed". The RSS feed is a text XML file that resides on an Internet server. People who are interested in finding out the latest headlines or changes can check this list. Special computer programs called "RSS aggregators" have been developed that automatically access the RSS feeds of websites you care about on your behalf and organize the results for you. RSS feeds and aggregators are also called "RSS Channels" and "RSS Readers".
Description of RSS feed file
The special XML-format file that makes up an RSS feed is usually created in one of the following ways.
Most news websites and weblogs are maintained using special content management programs. Authors add their stories and postings to the website by interacting with those programs and then use the program's "publish" facility to create the HTML files that make up the website. Those programs often also can update the RSS feed XML file at the same time, adding an item referring to the new story or post, and removing less recent items. Blog creation tools like Blogger, Live Journal, Movable Type, and Radio automatically create feeds. Websites that are produced in a more custom manner, such as with Macromedia Dreamweaver or a simple text editor, usually do not automatically create RSS feeds. Authors of such websites either maintain the XML files by hand, just as they do the website itself, or use a tool such as Software Garden, Inc.'s ListGarden program to maintain it. There are also services that periodically read requested websites themselves and try to automatically determine changes (this is most reliable for websites with a somewhat regular news-like format), or that let you create RSS feed XML files that are hosted by that service provider.
A diagram showing how the websites, the RSS feed XML files, and your personal computer are connected.
The diagram shows a web browser being used to read first Web Site 1 over the Internet and then Web Site 2. It also shows the RSS feed XML files for both websites being monitored simultaneously by an RSS Feed Aggregator.
RSS aggregator reads all the RSS feeds, be they headlines, alerts, changes, or other notifications.
Example of an RSS program:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<title>Amazon Home Page</title>
<description>New RSS tutorial on Amazon</description>
<description>New XML tutorial on Amazon</description>
The first line in the document - the XML declaration - defines the XML version and the character encoding used in the document. In this case the document conforms to the 1.0 specification of XML and uses the ISO-8859-1 (Latin-1/West European) character set.
The next line is the RSS declaration which identifies that this is an RSS document (in this case, RSS version 2.0). The next line contains the <channel> element. This element is used to describe the RSS feed. The <channel> element has three required child elements:
<title> - Defines the title of the channel (e.g. Amazon Home Page)
<link> - Defines the hyperlink to the channel (e.g. http://www.amazon.com)
<description> - Describes the channel (e.g. online books)
Each <channel> element can have one or more <item> elements. Each <item> element defines an article or "story" in the RSS feed. The <item> element has three required child elements:
<title> - Defines the title of the item (e.g. RSS Tutorial)
<link> - Defines the hyperlink to the item (e.g. http://www.amazon.com/rss)
<description> - Describes the item (e.g. New RSS tutorial on Amazon)
Finally, the two last lines close the <channel> and <rss> elements. The syntax for writing comments in RSS is similar to that of HTML:
<!-- This is an RSS comment -->
There are optional and required subfields present for the <item> tag and are mentioned below
|<author>||Optional. Specifies the e-mail address to the author of the item|
|<category>||Optional. Defines one or more categories the item belongs to|
|<comments>||Optional. Allows an item to link to comments about that item|
|<description>||Required. Describes the item|
|<enclosure>||Optional. Allows a media file to be included with the item|
|<guid>||Optional. Defines a unique identifier for the item|
|<link>||Required. Defines the hyperlink to the item|
|<pubDate>||Optional. Defines the last-publication date for the item|
|<source>||Optional. Specifies a third-party source for the item|
|<title>||Required. Defines the title of the item|
There are optional and required subfields present for the <channel> tag and are mentioned below
|<category>||Optional. Defines one or more categories for the feed|
|<cloud>||Optional. Register processes to be notified immediately of updates of the feed|
|<copyright>||Optional. Notifies about copyrighted material|
|<description>||Required. Describes the channel|
|<docs>||Optional. Specifies an URL to the documentation of the format used in the feed|
|<generator>||Optional. Specifies the program used to generate the feed|
|<image>||Optional. Allows an image to be displayed when aggregators present a feed|
|<language>||Optional. Specifies the language the feed is written in|
|<lastBuildDate>||Optional. Defines the last-modified date of the content of the feed|
|<link>||Required. Defines the hyperlink to the channel|
|<managingEditor>||Optional. Defines the e-mail address to the editor of the content of the feed|
|<pubDate>||Optional. Defines the last publication date for the content of the feed|
|<rating>||Optional. The PICS rating of the feed|
|<skipDays>||Optional. Specifies the days where aggregators should skip updating the feed|
|<skipHours>||Optional. Specifies the hours where aggregators should skip updating the feed|
|<textInput>||Optional. Specifies a text input field that should be displayed with the feed|
|<title>||Required. Defines the title of the channel|
|<ttl>||Optional. Specifies the number of minutes the feed can stay cached before refreshing it from the source|
|<webMaster>||Optional. Defines the e-mail address to the webmaster of the feed|
RSS Feed publish on Web
To publish RSS file up on the web we have to perfom the following steps:
1. Name the RSS file with .xml extension.
2. Validate your RSS file (a good validator can be found at http://www.feedvalidator.org).
3. Upload the RSS file to your web directory on your web server.
4. Copy the little orange or button to your web directory.
5. Put the little orange "RSS" or "XML" button on the page where you will offer RSS to the world (e.g. on your home page). Then add a link to the button that links to the RSS file. The code is:
<a href="www.w3schools.com/rss/myfirstrss.xml"> < img src="www.w3schools.com/rss/rss.gif" width="36" height="14"> </a>
6. Submit your RSS feed to the RSS Feed Directories.
7. Register your feed with the major search engines:
- Yahoo - http://publisher.yahoo.com/rss_guide/submit.php
- Google - http://www.google.com/ig (Google's personalized homepage. Google will index any RSS feed added here)
- MSN - http://w.moreover.com/site/products/ind/pingserver.html (MSN search uses the Moreover news database)
8. Update your feed - Now you have registered your RSS feed with Google, Yahoo, and MSN. Now you must make sure that you update your content frequently and that your RSS feed is constantly available.
Advantages of using RSS
1. It gives the latest updates. Whether it is about the weather, new music, software upgrade, local news, or a new posting from a rarely-updates site learn about the latest as soon as it comes out.
2. It gives the power of subscription to the user. Users are given a free-hand on which websites to subscribe in their RSS aggregators which they can change at any time they decide differently.
3. It saves on surfing time. Since an RSS feed provides a summary of the related article, it saves the user’s time by helping to decide on which items to prioritize when reading or browsing the net.
4. It is spam free. Unlike email subscriptions, RSS does not make use of your email address to send updates thus your privacy is kept safe from spam mails.
5. Unsubscribing is hassle-free. Unlike email subscriptions where the user is asked questions on why are they unsubscribing and then the user would be asked to confirm unsubscribing, all you have to do is to delete the RSS feed from your aggregator.
6. It can be used as an advertising or marketing tool. Users who subscribe or syndicate product websites receive the latest news on products and services without the website sending spam mail. This is advantageous to both the web user and the website owner since advertising becomes targeted; those who are actually interested in their products are kept posted.
Disadvantages of using RSS
The disadvantages of RSS use are brought about by its being a new technology and some user-preference concerns.
1. Some users prefer receiving email updates over an RSS feed.
2. Graphics and photos do not appear in all RSS feeds. For conciseness and ease of publication, RSS feeds do not display the photos from the original site in announcing the update except for some web-based aggregators.
3. The identity of the source website can be confusing. Since RSS feeds do not display the actual URL or name of the website, it can sometimes get confusing on what feed a user is actually reading.
4. Publishers cannot determine how many users are subscribed to their feed and the frequency of their visits. Moreover, they would not know the reasons why users unsubscribe which could be important in improving their advertising.
5. RSS feeds create higher traffic and demands on the server. Most readers still prefer the whole update over a brief summary of the entry, thus they still access the site.
6. Since it is a new technology, many sites still do not support RSS.