実装メモ / RSS1.0

/web/xml

仕事でRSSについて任されたので、軽く仕様について、まとめなど...

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <rdf:RDF
  3.  xmlns="http://purl.org/rss/1.0/"
  4.  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  5.  xmlns:dc="http://purl.org/dc/elements/1.1/"
  6.  xml:lang="ja">
  7.  
  8. <channel rdf:about="http://rospear.info/index.rdf">
  9. <title>ROSS / Ragnarok Online Spear Special</title>
  10. <link>http://rospear.info/</link>
  11. <description>槍士による槍士のための槍サイトです</description>
  12. <dc:creator>Sig.</dc:creator>
  13. <dc:date>2005-09-06T21:03+09:00</dc:date>
  14. <items>
  15. <rdf:Seq>
  16. <rdf:li rdf:resource="http://rospear.info/entry_1" />
  17. <rdf:li rdf:resource="http://rospear.info/entry_2" />
  18. <rdf:li rdf:resource="http://rospear.info/entry_3" />
  19.  
  20. ...
  21.  
  22. </rdf:Seq>
  23. </items>
  24. </channel>
  25.  
  26.  
  27. <item rdf:about="http://rospear.info/entry_1">
  28. <title>ブログ更新って大変だね</title>
  29. <link>http://rospear.info/entry_1</link>
  30. <description>待望の個人ブログ設立。暇を見つけてちょくちょくと。</description>
  31. <dc:creator>Sig.</dc:creator>
  32. <dc:date>2005-09-06T21:03+09:00</dc:date>
  33. </item>
  34.  
  35. <item rdf:about="http://rospear.info/entry_2">
  36. <title>ブログ運営中</title>
  37. <link>http://rospear.info/entry_2</link>
  38. <description>待望の個人ブログ設立。頑張ってます。</description>
  39. <dc:creator>Sig.</dc:creator>
  40. <dc:date>2005-09-06T21:03+08:00</dc:date>
  41. </item>
  42.  
  43. <item rdf:about="http://rospear.info/entry_3">
  44. <title>ブログ開設したっす</title>
  45. <link>http://rospear.info/entry_3</link>
  46. <description>待望の個人ブログ設立。ここにくるまで色々ありましたヨ。</description>
  47. <dc:creator>Sig.</dc:creator>
  48. <dc:date>2005-09-06T21:03+07:00</dc:date>
  49. </item>
  50.  
  51.  
  52. ...
  53.  
  54.  
  55. </rdf:RDF>
文字コード
デフォルトはutf-8とされています。正しく文字コード情報を提供すればどんな符号化方法でも良いはずですが、一部のRSS処理ソフト(のXMLパーサ)は、utf-8でないと正しく働かないことがあるようです。
拡張子/MIMEタイプ
ファイルとして保存する場合の拡張子は、.rdfもしくは.xmlが推奨されており、前者がより望ましいとされています。MIMEタイプは、application/xmlが正しいです。
RDFアイコンについて
RDFによって記述されたリソース(RSS 1.0など)を示すために、Dave Beckettによって提供されているシンボルです。画像に埋め込まれたメタデータをそのまま保持することを条件に、自由に利用できます。なお、形式をGIFに変換することは認められていません。(ま~自前で作れば問題ないと思いますけどネ)
xmlns="http://purl.org/rss/1.0/"
RSS1.0のデフォルトの名前空間。
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
W3Cで定義されている、RDFの名前空間。RSS1.0はRDFに準拠している。
xmlns:dc="http://purl.org/dc/elements/1.1/"
Dublin Coreモジュールの名前空間。「dc:○○」という形でDublin Coreモジュールの○○要素が使えるようになる。
<channel rdf:about="http://rospear.info/index.rdf">
「rdf:about」ではリソースのURIを記述する。
item要素の数
RSS 1.0ではitem要素の数は1つ以上で上限はありませんが、RSS 0.9との互換性を考えるならば、15個までにしておくことが推奨されています。
description要素の文字数
だいたい500バイト以内が良いとされています。ただし、description要素に日記やblog記事の全文を記載すると、コンパクトなサマリーを期待する読者には歓迎されないかも知れないので、description要素は短く留めたほうが良いでしょう。
<dc:date> </dc:date>
空タグはNG. また、「dc:date」の形式はW3CDTFに従うものでなければなりません。すなわち「2005-09-06T19:20+09:00」といった感じ。日付と時間の間に「T」が要ることに注意。「+09:00」はタイムゾーン。日本標準時を示します。

参考:RSS Validator for Atom and RSS

RSSについて

/web/xml

  1. RSSの詳細
  2. RSSの利用方法
  3. RSSの導入方法

RSSの詳細

RSSとはXMLを利用して更新状況などを簡単に紹介する、コンテンツ配信のためのファイル形式のこと。管理者はRSSファイルを更新することで、閲覧者はRSSのアドレスを「RSSリーダー」などに登録することで、サイトの更新状況を瞬時に、確実に送受信することができます。

RSSは1999年にネットスケープ社が開発した「RSS 0.9」に端を発し、撤退・委任・派生を繰り返した結果、現在では3つの仕様が有力になっています。RSS1.0 (RDF Site Summary)、RSS2.0 (Really Simple Syndication)、Atom0.3 (Atom Syndication Format) の3つです。

RSS1.0 はサイトの概要を発信するのが主目的であり、RSS2.0はWeb上の分散した情報を連結する手段の一つ。Atom 0.3は記事や画像の投稿・編集・削除などの各種管理を行う手法の一環として存在します。このうちAtom0.3は比較的新しい仕様であり、普及もそれほど進んではいません。

RSS1.0とRSS2.0は名前こそ似ていますが、互換性のある上位/下位バージョンではなく、コンセプトからしてそもそも違うことになります。

基本的には、「RSS1.0はRSS2.0よりも詳細」と覚えておけば良いでしょう。実際、RSS2.0にはRSS1.0に必要な全情報が含まれているため、RSS2.0からRSS1.0への乗り換えは容易です。現状ではRDFを利用するようなアプリケーションやサービスは皆無に近く、RSS2.0を使用する欠点は無いと言って差し支えありません。

これからRSSを導入しようとするサイト管理者にとっては、RSS2.0 のほうが手軽で便利でしょうね。

RSSの利用方法

RSSは、「RSSリーダー」を使って利用します。RSSリーダーには多様な種類が存在しますが、多くは無料で、メーラーのような感覚で使用します。登録したRSSファイルが更新されると、新着メールの報告みたく知らせてくれるわけです。ブラウザ機能とくっついていて、そのまま閲覧できるものもあります。

上記は全て無料です。お試しあれ。上記のようなアプリケーション型の他に、電光掲示板みたいなティッカー型とか、livedoor Blog Readerのようなオンライン型など、いろんなバリエーションがあります。興味があれば探して見るのも良いかもですね。

RSSの導入方法

以下は、RSS 2.0のsソースコードです。

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <rss version="2.0">
  3. <channel>
  4. <title>ROSS</title>
  5. <link>http://ross.archiva.jp/</link>
  6. <description>Ragnarok Onlineのファンサイト。</description>
  7. <item>
  8. <title>Web拍手を導入</title>
  9. <link>http://ross.archiva.jp/return_clap/</link>
  10. <description>Web拍手を導入しました。</description>
  11. <pubDate>Thu, 18 Dec 2004 10:44:00 +0900</pubDate>
  12. </item>
  13. </channel>
  14. </rss>

上記のコードをコピー&ペーストして、title、link、description、pubDateを編集するだけでRSSファイルの完成です。ファイル名は「rss.xml」とでもしておけば良いでしょう。サーバーにアップロードし、リンクを貼って閲覧者に判りやすい場所に載せるだけで公開完了。

更新日時(pubDate)には書式が定められていますので、上記の例に倣って記入してください。表記中の「+0900」は日本標準時を表していますが、「GMT(グリニッジ標準時)」を使用することもできます。世界的に閲覧される情報ならば「GMT」のほうが適しているでしょう。

RSSは<item>を積み重ねていくことで各回の更新を表し、幾つまで載せるかは個人差があります。過去一週間のニュースを全て載せるところもあれば、最新3つまでのみを載せる場合もあります。目的や更新頻度を鑑みて決めると良いでしょう。

一つだけ注意すべきことがあります。RSSは更新情報を知らせる手段であるため、更新されていない項目を載せることは利用者を困惑させます。RSSを単体のニュースとして使用することは避けましょう。

  1. <link rel="alternate" type="application/rss+xml" title="RSS" href="/rss.xml" />

上記は<head>タグ内に書き込む、RSS検索サイト用の一文。あってもなくても問題ないです。注意事項は、「href=""」には絶対パスを指定する、ということだけ。これで貴方のサイトもRSSに対応! なのです。