独断と偏見を土台として、わずかながらの経験で脚色した文書です。
RSS2.0は、RSS0.91の後継的な仕様です。RSS1.0ではRDF Site Summaryの略称であるのに対し、RSS2.0はReally Simple Syndicationから来る略称です。ここから分かるように、よりシンプルな仕様でシンジケーションを実現させようと考えられています。RSS1.0ではRDFを利用しているため拡張度が高く様々な表現が可能です。もちろんRSS2.0をXMLの名前空間で拡張する事は出来ます。しかし、よりシンプルな形を保つ事で特定の目的を実現させる事も大切な事でしょう。
シンジケーションを日本語訳する事は難しいですが、コンテンツの再利用と考えればいいでしょう。フィードはXMLベースのため、原則としてメタデータです。それ自体では人に理解されにくい形態ですが、ある目的に沿って複数のフィードを集約したり、単体に対する装飾などが簡単な形態であるとも言えます。散らばるフィードをシンジケーションによって好みに合わせた形で受け取る事が出来ます。
RSS2.0を最小単位で表現すると、以下の様になります。
<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0"> <channel> <title>チャンネルのタイトル</title> <link>チャンネルを表現するコンテンツなどのURI</link> <description>チャンネルの概要</description> </channel> </rss>
より現実的にした場合、以下の様になります。
<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0"> <channel> <title>チャンネルのタイトル</title> <link>チャンネルを表現するコンテンツなどのURI</link> <description>チャンネルの概要</description> <item> <title>サマリとしてリストするアイテムのタイトル</title> <link>サマリとしてリストするアイテムを表現するコンテンツなどのURI</link> <description>サマリとしてリストするアイテムの概要</description> </item> <item> <title>サマリとしてリストするアイテムのタイトル</title> <link>サマリとしてリストするアイテムを表現するコンテンツなどのURI</link> <description>サマリとしてリストするアイテムの概要</description> </item> </channel> </rss>
まだまだ実用に堪えうる形ではありませんが、基本形は上記の通りです。
rss要素はversion属性を持つコンテナ要素です。フィードを構成する大枠としての意味を持ちます。これ自体が特別な意味を持つ事はありません。約束として捉えれば十分でしょう。
channel要素はフィードを表現するコンテナ要素です。1つのフィードに複数のchannelを記述する事が出来ますが、現在のフィード利用状況を考えた場合、フィード=チャンネルとして扱い、1フィード1チャンネルを保つ事が安全でしょう。
channel要素内で記述可能な要素は以下の通りです。必須項目とオプション項目があります。
必須項目
| 要素名 | 概要 |
|---|---|
| title | チャンネルのタイトル |
| link | チャンネルを表現するコンテンツのURI |
| description | チャンネルの概要; 大抵、純粋なテキストのみで記述され、改行も意味を持ちません。 |
オプション項目
| 要素名 | 概要 | 見本 |
|---|---|---|
| language | 言語コード; Netscapeが定めるコードが利用可能です。コード仕様はW3Cで定められています。 | en-us |
| copyright | チャンネルの著作権 | Copyright 2002, Spartanburg Herald-Journal |
| managingEditor | コンテンツ責任者のEmailアドレス | geo@herald.com (George Matesky) |
| webMaster | システム責任者のEmailアドレス | betty@herald.com (Betty Guernsey) |
| pubDate | チャンネルが構築された日時; RFC822に従います | Sat, 07 Sep 2002 00:00:01 GMT |
| lastBuildDate | チャンネルの最終更新日時; pubDateと同規則 | Sat, 07 Sep 2002 09:42:31 GMT |
| category | チャンネルが属すカテゴリ; 要素レベルでの複数定義が可能です | <category>Newspapers</category> |
| generator | チャンネルを生成したプログラムの識別名 | MightyInHouse Content System v2.3 |
| docs | RSS2.0のドキュメントを表すURI; 原則http://blogs.law.harvard.edu/tech/rss | http://blogs.law.harvard.edu/tech/rss |
| cloud | XML-RPCなどを利用した更新通知などのサービス定義; HTTP-POST/XML-RPC/SOAPが利用可能です | <cloud domain=”rpc.sys.com” port=”80” path=”/RPC2” registerProcedure=”pingMe” protocol=”soap”/> |
| ttl | キャッシュを保持する時間(分); 整数値のみ利用できます | 60 |
| image | チャンネルを表現する画像のURI | - |
| rating | PICSのレート | - |
| textInput | 入力可能なテキストボックス; ドラフト | - |
| skipHours | アグリゲータに対して与える無視時間 | - |
| skipDays | アグリゲータに対して与える無視日数 | - |
チャンネルのサマリをリスト表現する際に利用するコンテナ要素です。フィードは通常、複数のitemによって構成されます。
item要素内で記述可能な要素は以下の通りです。item要素は全てオプション項目になります。
| 要素名 | 概要 | 見本 |
|---|---|---|
| title | アイテムのタイトル | - |
| link | アイテムを表現するコンテンツのURI | - |
| description | アイテムの概要 | - |
| author | アイテムの著者 | lawyer@boyer.net (Lawyer Boyer) |
| category | アイテムが属するカテゴリ | <category domain=”http://www.fool.com/cusips“>MSFT</category> |
| comments | アイテムに関連するコメントコンテンツのURI | <comments>http://ekzemplo.com/entry/4403/comments</comments> |
| enclosure | メディアコンテンツのURI | <enclosure url=”http://www.scripting.com/mp3s/weatherReportSuite.mp3” length=”12216320” type=”audio/mpeg” /> |
| guid | アイテム固有の文字列 | <guid isPermaLink=”true”>http://inessential.com/2002/09/01.php#a2</guid> |
| pubDate | アイテムが発行された日時 | Sun, 19 May 2002 15:21:36 GMT |
| source | アイテムのソース | <source url=”http://www.tomalak.org/links2.xml“>Tomalak’s Realm</source> |