RSS 2.0 Specificationを稚拙ながらも和訳してみる。
RSS2.0について
RSS(Really Simple Syndication)はWebコンテンツのシンジケートフォーマットです。
RSSはXMLの派生言語です。
すべてのRSSファイルはW3Cが定めるによるXML1.0規格と一致します。
RSSのルートノード<rss>はversion属性を持ちます。
version属性の値は、それぞれのRSSドキュメントのバージョンにしたがって定められます。
<rss>エレメントは、チャンネル(メタデータ)とコンテンツ情報を含むの1つの<channel>を子要素として持ちます。
サンプルファイル
Note: 上記URLに常にファイルが存在するとは限りません。
channel要素(Required)
| 要素名 | 概要 | 例 |
|---|---|---|
| title | チャンネル(RSSフィード)の名前です。 HTMLからRSSを生成している場合、HTMLのtitleタグの値と同じものにすべきでしょう。 | GoUpstate.com News Headlines |
| link | RSSフィードの発行元URLを記述します。 | http://www.goupstate.com/ |
| description | チャンネルの概要を記述します。 | The latest news from GoUpstate.com, a Spartanburg Herald-Journal Web site. |
channnel要素(Optional)
| 要素名 | 概要 | 例 |
|---|---|---|
| language | チャンネルを記述している言語です。 アグリゲータやリーダが記述言語を判断する際に利用されます。 以下の値を使用することができます。 | en-us |
| copyright | チャンネル内のコンテンツに関する著作権情報を記述します。 | Copyright 2002, Spartanburg Herald-Journal |
| managingEditor | コンテンツの編集責任者へのEメールアドレス。 | geo@herald.com (George Matesky) |
| webMaster | 技術的問題などに関する責任者へのEメールアドレス。 | betty@herald.com (Betty Guernsey) |
| pubDate | チャンネル(RSSフィード)の発行日時です。 チャンネルの内容が変化するたびに更新します。 日時のフォーマットは、RFC822の日時に関する仕様に従います。 | Sat, 07 Sep 2002 00:00:01 GMT |
| lastBuildDate | チャンネルの内容が最終的に変更された日時です。 | Sat, 07 Sep 2002 09:42:31 GMT |
| category | チャンネルが所属するカテゴリを1つ以上指定します。 後述する<item>要素に属する<category>と同規則です。 | <category>Newspapers</category> |
| generator | チャンネル生成に使用したツール名です。 | MightyInHouse Content System v2.3 |
| docs | RSSが何かということを記述したドキュメントを指し示すURLです。 右記URLで問題ないでしょう。 | http://blogs.law.harvard.edu/tech/rss |
| cloud | XML-RPCなどを利用した更新通知サービスを利用する際に記述します。 | <cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="pingMe" protocol="soap"/> |
| ttl | キャッシュの有効期限です。 | <ttl>60</ttl> |
| image | チャンネルで表示することができるGIF、JPEGまたはPNGイメージを指定します。 | |
| rating | チャンネルのPICSレーティングです。 |   |
| textInput | チャンネルで表示することができる入力用テキストボックスを指定します。 | |
| skipHours | アグリゲータにスキップさせるアクセス予定時刻を記述します。 | |
| skipDays | アグリゲータにスキップさせるアクセス予定曜日を記述します。 |
image要素
<image>は3つの必須子要素と任意子要素を持つ<channel>の任意子要素です。
Reauired
<url>はGIF/JPEG/PNGいずれかの形式のチャンネルをあらわす画像へのURLです。
<title>は画像の概要を表し、チャンネルがHTMLで表示された場合に、<img>タグのALT属性に利用されます。
<link>はサイトへのURLです。
Optional
<width>と<height>は画像の幅と高さをピクセルで表します。
<description>はHTML表示された際に画像の周りに表示されるテキストです。
- Maximum value for width is 144, default value is 88
- Maximum value for height is 400, default value is 31
cloud要素
HTTP-POST、XML-RPCまたはSOAP1.1で実行することができるrssCloudインタフェースを支持するウェブサービスを指定します。
例)<cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="myCloud.rssPleaseNotify" protocol="xml-rpc" />
この要素とrssCloudインタフェースの完全な説明がここにあります。
ttl要素
ソースからリフレッシュされるまでキャッシュする時間(分)を指定することができます。
これによって、Gnutellaのようなファイル共有ネットワーク上でRSSを管理することが可能になります。
例) <ttl>60</ttl>
textInput
4つの必須子要素を持ちます。
<title> -- 送信ボタンのラベルです。
<description> -- 入力欄の説明文です。
<name> -- 入力オブジェクトの名称です。
<link> -- 入力フォームのデータを処理するCGIスクリプトのURLです。
item要素
チャンネルは複数の<item>要素を含みます。
itemは新聞や雑誌の記事のようなものです。
だとすれば、descriptionは記事の要約にあたるでしょう。
もしかしたら、descriptionが完全な文章であるかもしれません。
そのとき、HTML文章であることも認められています。
item要素には、最低1つのtitle要素かdescription要素が必要です。
| 要素名 | 概要 | 例 |
|---|---|---|
| title | itemのタイトル | Venice Film Festival Tries to Quit Sinking |
| link | itemのリンク先 | http://nytimes.com/2004/12/07FEST.html |
| description | 要約 | Some of the most heated chatter at the Venice Film Festival this week was about the way that the arrival of the stars at the Palazzo del Cinema was being staged. |
| author | 著者のEメールアドレスなど | |
| category | itemが所属するカテゴリーを1つ以上 | |
| comments | itemに関連するコメントページのURL | |
| enclosure | itemに添付されるメディアコンテンツのURL | |
| guid | itemのユニークなID | |
| pubDate | itemが発行された日時 | |
| source | itemの元になったコンテンツの情報L |
source要素
itemが属するchannelが持つのtitle要素の値と、XMLizationへのリンクをurl属性として持ちます。
例)<source url="http://www.tomalak.org/links2.xml">Tomalak's Realm</source>
この要素の目的はニュースitemの生成元についてピーアールするためにクレジットをリンクに伝播することです。
アグリゲータのポストコマンドにそれを使用することができます。
アグリゲータからウェブログオーサリングツールまでitemを進めるとき、自動的に生成されるべきです。
enclosure要素
enclosure要素を利用すると、RSSフィードにメディアコンテンツを含めることができます。
<enclosure />には3つの必須属性があります。
urlはメディアコンテンツのHTTPでのURL。
lengthはメディアコンテンツのbyte数。
typeはメディアコンテンツの標準MIMEタイプ。.
例:<enclosure url="http://www.scripting.com/mp3s/weatherReportSuite.mp3" length="12216320" type="audio/mpeg" />
利用例がここにあります。
category要素
domainという特定の分類をあらわす任意属性を1つ持ちます。
要素の値は階層ごとにスラッシュで区切られた文字列です。
The value of the element is a forward-slash-separated string that identifies a hierarchic location in the indicated taxonomy.
プロセッサはカテゴリの解釈のためにコンベンションを設立するかもしれません。
例)
<category>Grateful Dead</category>
<category domain="http://www.fool.com/cusips">MSFT</category>
pubDate要素
itemが発行された日付です。
この値が未来であった場合、アグリゲータはこのitemを無視するかもしれません。
例)<pubDate>Sun, 19 May 2002 15:21:36 GMT</pubDate>
guid
guidはグローバルかつユニークな識別子を表します。
それはユニークなitemを特定する文字列です。
存在しているとき、アグリゲータは、itemが新しいかどうか決定するためにこの文字列を使用するかもしれません。
例)<guid>http://some.server.com/weblogItem3207</guid>
guidに対する規則はありません。
そのため、アグリゲータはguidを文字列として認識しなければなりません。
guid要素にはisPermaLinkという属性を持たせることができます。
このisPermaLinkの値がtrueである場合、item要素が持つdescription要素の完全なドキュメントへのpermalinkであると仮定するかもしれません。
例)<guid isPermaLink="true">http://inessential.com/2002/09/01.php#a2</guid>
isPermaLinkのデフォルト値はtrueです。
isPermaLinkの値がfalseであった場合、guid要素の値をurlであると解釈しないかもしれません。
comments
存在しているなら、それはitemのためのコメントページのurlです。
例)<comments>http://ekzemplo.com/entry/4403/comments</comments>
author
itemの著者のEメールアドレスです。
例)<author>lawyer@boyer.net (Lawyer Boyer)</author>
コメント
RSSにおいて、link要素とurl要素の先頭が空白文字であることは許されません。
これらの要素のデータはhttp://, https://, news://、mailto:, ftp://などのIANAによって登録されたURIスキーマで始まらなければなりません。
RSS2.0以前では、仕様としてhttp://とftp://のみ許可されていましたが、実際には他のURIスキーマも使われており、アグリゲータによってはサポートされます。
ただし、アグリゲータがすべてのURIスキーマをサポートすると仮定するべきではありません。
RSS0.91では、様々な要素は500か100のキャラクタに制限されます。
また、0.91ではchannel内のitem数が15未満でなければなりません。
0.92以上では文字数およびXML-levelの制限はありません。
プロセッサによっては制限が生じる可能性があります。
RSS 2.0では、チャンネルレベルカテゴリー特徴を使用して、チャンネルをカタログを作るシステムでのその識別子にリンクするための準備は上に記述されて行なわれます。
例えば、チャンネルをそのSyndic8識別子にリンクし、領域「Syndic8」と共に、channelの子要素としてかcategory要素を含んでおり、Syndic8データベース中のあなたのチャンネルのために確認者を評価することために。
ニュースをスクリプトにするための適切なカテゴリー要素は <category domain="Syndic8">1765</category>。
guid要素に関するFAQ。
link要素と比較します。
同じものではありませんか?
いくつかのコンテンツではそのとおりであり、ある場面ではそうではありません。
いくつかのシステムでは、link要素はitemへのpermalinkです。
しかしながら、他のシステムでは、それぞれ(item要素)が、より長い記事の構文です。
そして、link要素は記事を示します。
そして、guid要素はウェブログエントリーへのpermalinkです。
すべての場合では、あなたがguidを供給して、できればそれをpermalinkにすることをお勧めします。
編集する事があったとしても、これは、アグリゲータがitemを繰り返さない事を可能にします。
RSSの拡張
RSSは1999年に生み出され、簡単で分かり易い形式になるように比較的穏やかな目標で努力されています
ポピュラーな形式になった後に、開発者はW3Cによって指定されるように名前空間で定義されたモジュールを使用することでそれを拡張しようとしました。
簡単な規則に従って、RSS2.0はその能力を加えます。
RSSフィードはそれらの要素が名前空間で定義される場合にだけこのページで説明されなかった要素を含むかもしれません。
本書で定義された要素はRSS2.0が以下の意味における旧バージョンと互換性があったままで残ることができるように自分たちで名前空間のメンバーではありません。
--バージョン0.91か0.92ファイルは有効な2.0ファイルです。
名前空間にRSS2.0の要素があるなら、この規制は無視されるためバージョン0.9xファイルは有効な2.0ファイルでないでしょう。

