この文書はRSS 2.0 Specificationを元に、RSS 2.0を解説したものです。正確な仕様についての情報を得たい方は、上記URLを参照してください。
RSS 2.0はウェブ上の様々な成果物を配信するためのフォーマットです。
この名称は"Really Simple Syndication"の頭文字語です。
RSS 2.0はXMLの一種で、すべてのRSS 2.0ファイルはXML 1.0 Specificationに則っていなければなりません。
RSS 2.0のトップ・レベル要素はrss
で、これはRSS 2.0ファイルがどのバージョンのRSS 2.0に基づいているかを示すversion
という必須属性を持ちます。このversion
属性の値は2.0でなければなりません。
rss
要素に従属する要素は、ひとつのchannel
要素です。
典型的なRSS 2.0のファイルは以下のようなものになります。
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Liftoff News</title>
<link>http://liftoff.msfc.nasa.gov/</link>
<description>Liftoff to Space Exploration.</description>
<language>en-us</language>
<pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate>
<lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<generator>Weblog Editor 2.0</generator>
<managingEditor>editor@example.com</managingEditor>
<webMaster>webmaster@example.com</webMaster>
<item>
<title>Star City</title>
<link>http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp</link>
<description>How do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia's <a href="http://howe.iki.rssi.ru/GCTC/gctc_e.htm">Star City</a>.</description>
<pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/06/03.html#item573</guid>
</item>
<item>
<description>Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a <a href="http://science.nasa.gov/headlines/y2003/30may_solareclipse.htm">partial eclipse of the Sun</a> on Saturday, May 31st.</description>
<pubDate>Fri, 30 May 2003 11:06:42 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/05/30.html#item572</guid>
</item>
<item>
<title>The Engine That Does More</title>
<link>http://liftoff.msfc.nasa.gov/news/2003/news-VASIMR.asp</link>
<description>Before man travels to Mars, NASA hopes to design new engines that will let us fly through the Solar System more quickly. The proposed VASIMR engine would do that.</description>
<pubDate>Tue, 27 May 2003 08:37:32 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/05/27.html#item571</guid>
</item>
<item>
<title>Astronauts' Dirty Laundry</title>
<link>http://liftoff.msfc.nasa.gov/news/2003/news-laundry.asp</link>
<description>Compared to earlier spacecraft, the International Space Station has many luxuries, but laundry facilities are not one of them. Instead, astronauts have other options.</description>
<pubDate>Tue, 20 May 2003 08:56:02 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/05/20.html#item570</guid>
</item>
</channel>
</rss>
RSS 1.0がchannelとitemが並列なのと比較して、RSS 2.0はRSS 0.9xと同じくitemがchannelの子になっています。
channel
要素は、RSS 2.0を配信する組織または人、ウェブサイト(以下、配信元と呼称する)などをを示す要素です。
必須です。配信元の名称を示す要素です。
<title>John Doe's Weblog</title>
必須です。配信元のURLを示す要素です。
<link>http://example.com/john.d/</link>
必須です。配信元の簡単な説明を示す要素です。
<description>Weblog edited by John Doe.</description>
配信元の言語を示す要素です。Netscape社によって定められた利用できる値を取ることが出来ます。また、W3Cによって定められたHTMLで利用されている言語コードを値として取っても構いません。
<language>en-us</language>
RSS 2.0ファイルの権利の帰属を示す要素です。
<copyright>Copyright 2004, John Doe</copyright>
RSS 2.0ファイルの配信を担当する人を示す要素です。
<managingEditor>john.d@example.com (John Doe)</managingEditor>
配信元の技術的な問題の報告を引き受ける人を示す要素です。
<webMaster>webmaster@example.com (John Doe)</webMaster>
RSS 1.0でAdministrativeモジュールを利用し、admin:erroRepotrsTo要素で示すものと等価だと思います。
RSS 2.0ファイルの配信元が最後に更新された日付けと時刻を示す要素です。RFC 822の書式に従う必要があります。
<pubDate>Sun, 29 Aug 2004 15:42:09 +0900</pubDate>
配信元がウェブサイトなどの場合は、トップページのHTMLファイルのmtimeになると思います。
RSS 2.0ファイルが最後に更新された日付けと時刻を示す要素です。RFC 822の書式に従う必要があります。
<lastBuildDate>Tue, 31 Aug 2004 19:03:22 +0900</lastBuildDate>
RSS 2.0のmtimeになると思います。
配信元がどんなジャンルのものかを示す要素です。
<category>Weblog</category>
配信元を制作するのに使われたプログラムの名称を示す要素です。
<generator>blosxom v2.0</generator>
RSS 1.0でAdministrativeモジュールを利用し、admin:generatorAgent要素で示すものと等価ですが、generator要素は文字列、admin:generatorAgent要素はURIで示します。
RSS 2.0ファイルがどんなフォーマットに従っているかを示す要素です。そのフォーマットを公式に説明したページのURLを記述します。
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
通常は上記例で固定で構わないと思います。
よくわからないので割愛させていただきます。
RSS 2.0をキャッシュすべき分を示す要素です。
<ttl>60</ttl>
配信元のイメージ画像を示す要素です。
<image>
<url>http://example.com/john.d/img/logo.png</url>
<title>John Doe's Weblog</title>
<link>http://example.com/john.d/</link>
<description>John Doe's Weblog</description>
<width>88</width>
<height>31</heaight>
</image>
image要素は以下の子要素から成ります。
widthとheightに最大値が設定されていますが、根拠があるとは思えないです。
よくわからないので割愛させていただきます。
配信元の情報と共に表示されるテキスト入力ボックスとボタンを示す要素です。配信元がウェブサイトの場合、そのウェブサイト内の検索に利用できるテキスト入力ボックスとボタンを作れるように各子要素を設定します。別の利用方法ではフィードバックのためのフォームを作れるように設定しても構いません。
<textInput>
<title>Search</title>
<description>Input Search Text Here</description>
<name>q</name>
<link>http://example.com/john.d/cgi-bin/search.cgi</link>
</textInput>
textInput要素は以下の子要素から成ります。
RSS 2.0ファイルをクロールするソフトウェアにチェックをして欲しくない時刻を示す要素です。
<skipHours>
<hour>0</hour>
<hour>6</hour>
<hour>12</hour>
<hour>18</hour>
</skipHours>
skipHours要素は1以上24以内のhour要素から成ります。day要素の値は0から23の数字で、0がGMTでの深夜0時を示します。
RSS 2.0ファイルをクロールするソフトウェアにチェックをして欲しくない曜日を示す要素です。
<skipDays>
<day>Monday</day>
<day>Wednesday</day>
<day>Friday</day>
</skipDays>
skipDays要素は1以上7以内のday要素から成ります。day要素の値はMonday、Tuesday、Wednesday、Thursday、Friday、Saturday、Sundayという文字列のいずれかで、GMTでの曜日を示します。
item
要素は、配信したい成果物(以下、配信物と呼称する)のメタ・データの集合です。channel
要素以下item
要素の数に制限はありません。
配信物のタイトルを示す要素です。
<title>Big Surprise, too!</title>
配信物の存在するURLを示す要素です。
<link>http://example.com/john.d/2004/08/29.html#</link>
配信物の簡単な説明を示す要素です。
<description>I am surprised when reading the following article.</description>
配信物を作成した人を示す要素です。
<author>john.d@example.com (John Doe)</author>
配信物がどんなジャンルのものかを示す要素です。
<category>Daily Report</category>
category要素はdomainという属性を利用して、URLでジャンルを示すことが出来るようですが、よくわかりません。
配信物に対するコメントを受け付けているページのURLを示す要素です。
<comments>http://example.com/john.d/cgi-bin/comments.cgi?id=264</comments>
配信物に添付されているメディアを示す要素です。
<enclosure url="http://example.com/john.d/media/my-love-song.mp3" length="12216320" type="audio/mpeg" />
enclosure要素には以下の属性から成ります。
urlはhttp始まりとなっていますが、根拠があるかどうかは不明です。私見では、それなりにメジャーなmmsなどのスキームなら利用しても良いのではないかなと思います。
配信物を識別するためのユニークなIDを示す要素です。
<guid>264@example.com/john.d</guid>
guid要素にpermanent linkを利用する場合は、isPermaLinkという属性を指定し、値をtrueに設定してください。
<guid isPermaLink="true">http://example.com/john.d/2004/08/29.html#</guid>
配信物が公開された日付けと時刻を示す要素です。RFC 822の書式に従う必要があります。
<pubDate>Mon, 30 Aug 2004 15:36:22 +0900</pubDate>
配信物を作成する上で参考にしたRSS 2.0ファイルを示す要素です。
<source url="http://example.com/jane.d/rss.xml">Jane Doe's Journal</source>
source要素はurlという属性が必要です。url属性の値はRSS 2.0ファイルのURLです。
RSS 2.0はRSS 2.0 Specificationで定められていない要素に限り、モジュールによる拡張が可能です。
定められていない要素に限り拡張することが出来るので、以下のようなRSS 2.0ファイルは認められません。
<?xml version="1.0"?>
<rss version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
...
<item>
...
<dc:date>2004-08-30T16:11:45+09:00</dc:date>
</item>
</channel>
</rss>
以上の例では、Dublin Coreモジュールによるdate要素はitem要素のpubDate要素と同じ意味を持つと考えられるので、問題があります。対してitem要素のdescription要素とは別に、配信物の完全な内容を配信したい場合に、以下のようにContentモジュールを利用することは可能です。
<?xml version="1.0"?>
<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
...
<item>
...
<content:encoded>
<![CDATA[<p>What a <em>beautiful</em> day!</p>]]>
</content:encoded>
</item>
</channel>
</rss>
ということになっていますが、根拠があるかどうかは不明です。
この文書はRSS 2.0 Specificationと同じく、Creative Commons - Attribution-ShareAlikeで提供されます。
この文書はRSS 2.0 Specificationの翻訳なので、ほぼすべての著作権はRSS Advisory Boardに帰属します。