Atom Webfeed (RSS) Tutorial

By Xah Lee. Date: . Last updated: .

What is Atom Webfeed

Atom is a webfeed format. Atom is based on XML, and is a more correct and well designed format than the more popular RSS format. Google uses Atom.

Atom Webfeed File Name Extension

.xml or .atom.

Atom Webfeed File MIME type

The MIME type should be application/rss+xml xml.

Atom Template

Here is a Atom sample template:

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="http://example.com/">

 <title>Cat Blog</title>
 <subtitle>Cat Geeking</subtitle>
 <link rel="self" href="http://example.com/blog.xml"/>
 <link rel="alternate" href="http://example.com/blog.html"/>
 <updated>2006-09-11T02:35:33-07:00</updated>

 <author>
   <name>John Doe</name>
   <uri>http://example.com/</uri>
 </author>

 <id>http://example.com/blog.html</id>
 <icon>http://example.com/siteicon.png</icon>
 <rights>© 2006 John Doe</rights>

 <entry>
   <title>Batman thoughts</title>
   <id>tag:156da4be-a8ac-44fb-9efb-d26345460a37</id>
   <updated>2006-09-08T18:52:18-07:00</updated>
   <summary>Some notes after watching movie Batman.</summary>
   <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
      <p>I watched Batman today. Ate cats.</p>
      </div>
   </content>
  <link rel="alternate" href="blog.html"/>
 </entry>

</feed>

You can use the above as a template.

Few things of note:

The file's header contains standard info such as: blog title, author info, copyright info, blog URL, (unique) id for this blog.

Then, the main body consists of entries, each with a tag entry.

Each entry has a title, id, timestamp, summary, perm link URL, and full content (optional).

The link ref="self" should point to the URL of the file itself. The link ref="alternate" should be the HTML URL for this feed.

Note the date format. It must strictly be of this form:

yyyy-mm-ddThh:mm:ss±hh:mm.

The T in the middle is literal. It is used as a separator of date and time. The last part ±hh:mm is your local time offset to Coordinated Universal Time (UTC).

Now, in the “entry” section, the “content” is optional. The link ref="alternate" should be the HTML path of the full article.

The id tag is very important. It needs to be unique and unchanging across ALL atom entries in the universe, and it must be in a URI format. What i've done here, and you can follow, is this format:

tag:example.com,2006-09-09:015218

Start with tag:, then your domain name, a comma, then a date string yyyy-mm-dd, then a colon, then unix epoch seconds. If two entry might be made in the same second in a large organization, then you might also want to add author name.

Reference

http://tools.ietf.org/html/rfc4287

Webfeed Reader Bug on Relative Link

Atom/RSS Reader Bug, Relative Link

Adding IE Webfeed Button Support

In IE 7, released in 2006, there's a webfeed button in the toolbar. If user visits a page that has a corresponding feed, the button will light up, allowing user to click on it to view the feed, or subscribe. (IE is currently at version 8, released in 2009)

However, developers need to add a link to their page in order for this button to work. If you are using ATOM, the link is like this:

<link rel="alternate" type="application/atom+xml"
 title="Xah's Web Programing Blog"
 href="http://xahlee.info/js/blog.xml">

[Windows RSS Publisher's Guide (work-in-progress) At http://blogs.msdn.com/rssteam/articles/PublishersGuide.aspx ]