RSS 1.0文書

RSS 1.0

[8] RSS 1.0 は、2000年代の初頭によく使われていたフィードの形式の1つです。 XML および RDF を元に Webサイトの情報を記述するものでした。 RSS-DEV により開発されていました。 特に日本では RSS 2.0 よりもよく採用されていました。 現在でもほとんどのフィード・リーダーが対応しています。

[16]

RDF Site Summary (RSS) is a lightweight multipurpose extensible metadata description and syndication format. RSS is an XML application, conforming to the W3C's RDF Specification. RSS is extensible via XML-namespace and/or RDF based modularization.

RDFサイト要約 (RSS) は、軽量で多目的の拡張可能なメタデータ記述・連合配信用の書式です。 RSSXML応用であり、 W3CRDF 仕様に適合します。 RSSXML名前空間によって、あるいは RDF に基づくモジュール化によって、 はたまたその両方によって拡張可能です。 >>9

[17]

An RSS summary, at a minimum, is a document describing a "channel" consisting of URL-retrievable items. Each item consists of a title, link, and brief description. While items have traditionally been news headlines, RSS has seen much repurposing in its short existence.

RSS 要約は、最低限、 URL によって取出し可能な項目群によって構成される 「チャンネル」を記述する文書です。各項目は題名リンク、 それに簡単な説明によって構成されます。各項目は元々はニュース見出しを表していましたが、 RSS の短い歴史の中でいろいろなものに転用されています。 >>9

代替

[69] フィードの形式として現在でも用いられている RSS 2.0AtomRSS 1.0 のうち、唯一 RSS 1.0仕様書のメンテナンスがまったく行われていません。 現在の各仕様の利用状況と今後も仕様書のメンテナンスが行われる見込みがないことを考えると、 新たに RSS 1.0 を採用することは好ましくないと思われます。

[73] 技術的にも、 RSS 1.0 は他の仕様と比べても必要以上に複雑です。

[70] しかしフィードリーダーは、 Web互換性のため、今後も RSS 1.0 に対応し続ける必要がありそうです。

公式サイト

仕様書

[11] >>10 は2000年12月の1.3版公表以来何度か改訂されていますが、いずれも軽微な変更に留まっています。

主要な要素

[68] 主要な要素を次に示します。これ以外の要素はモジュールの項を参照してください。

モジュール化と名前空間

[5] RSS 1.0 は核となる部分の他はモジュールとして定義されています。 多数のモジュールが提案されましたが、そのほとんどは提案段階で放置されており、 一応の完成を見たのは3つのみです。

[7] 実際のフィードでの利用状況は仕様としての完成度とは別です。 一旦完成した Content モジュールは実際にはその規定通りには用いられておらず、 変更案として示されているものが利用されているのが実態です。 また、素案段階のモジュールのいくつかは実際に用いられています。

モジュールの要件

[57] RSS 1.0 には本体仕様とは別にモジュールについて定めた文書 (>>56) があり、 次の指針 (guideline) が掲げられています。

[58] この「指針」の強制力はよくわかりません。「must」と言われていたり 「should」と言われていたりしますが、そもそも「要件」ではなく 「指針」であったりします。
  • [59] 独自のXML名前空間を使うべき (should) です 3.1
  • [60] できるだけ狭い範囲の機能を定義するべき (should) です 3.1
  • [61] 簡単な内容モデルにも表現力豊かな内容モデルにもできますし、後から豊かに拡張することもできます。 実装者には拡張に備えるよう助言 (advised) します。モジュールの著者には単純な内容をどう取り出すのか明確にするよう助言 (advised) します。 3.2
  • [62] 最低限、RDF に適合するよう努力するべき (should) ですし、単純な XML としても RDF としてもどちらでもいい感じになるように最善を尽くすべき (should) です。 RDF でない XML を含めたいときは rdf:parseType=Literal を使うべき (should) です。 3.3
  • [63] 中核部分や他のモジュールの内容モデルをその場しのぎに変更して衝突を生じさせてはなりません (must not) 3.4
  • [64] モジュールによる拡張が中核部分のかわりになると考えてはいけません (may not) (例えば dc:description をもって description の代替とはできません。) 3.4
  • [65] 日付は W3C-DTF で表します (be to) 3.5

RSS 1.0 文書でよく用いられる名前空間

[2] RSS 1.0 文書で見かける名前空間URIと、典型的な名前空間接頭辞

[67] ★は RSS 1.0 本体仕様を構成する名前空間です。 ☆は RSS-DEV によって「標準 (standard) 」と認められている3つのモジュールです >>66

構文

文字符号化

[44] RSS 1.0 文書UTF-8 である、とされています >>10 5.(RSS 0.9US-ASCII でした。)

[46] XML処理器UTF-8UTF-16 の両方に対応しなければならないのですが、 XML応用であるところの RSS 1.0UTF-8 だけに限定してよいのでしょうかね。 更に制限する方向なら良いという解釈なのでしょうか。

[45] 現実にはいろいろな文字コードが使われます。 しかし古くからほとんどのフィードUTF-8 を使っていました。 理論上は charset 引数encoding 擬似属性BOM で他の文字コードを使うことを指定できますが、 あまり使われていないようですし、対応していない実装もありそうです。

XML の応用としての RSS 1.0

[25] RSS 1.0XML応用であると謳っています >>10 1.

[26] 現実には、RSS 1.0 文書には整形式ではないものもあり、 利用者エージェントDraconian でない構文解析を行わなければ実用に耐えません。

XML5 も参照。

[48] XML宣言必須ではありませんが、推奨 (recommended) されています。 (RSS 0.9 では必須でした。) >>10 5.1

XML 名前空間の応用としての RSS 1.0

[50] RSS 1.0XML名前空間を使っています。 XML名前空間の仕様上は名前空間接頭辞は飾りに過ぎず、 名前空間URLが同じである限りは自由に記述できるのですが、 RSS 1.0 では制限があります。 RSS 1.0 仕様は RSS 0.9 との互換性のためとしていますが、 実際には RSS 1.0 以降の実装でも XML名前空間を実装せずに正規表現などの一致で済ませていることがよくあるため、 過去・将来どちらの方向の互換性のためにも制限に従う必要があります。詳しくは rdf:RDF の項をご覧ください。

RDF/XML の応用としての RSS 1.0

[32] RSS 1.0RDF (現在でいう RDF/XML) に適合すると謳っています >>10 1.

[34] ここで適合すると言っているのは RSS 1.0 に適合する XML文書RDF/XML にも適合するという程度の意味です。 RSS 1.0 語彙を使った RDF グラフを表す RDF/XML はいろいろあり得ますが、 RSS 1.0 文書足りえるのはその一部だけです。

[35] つまり、 RSS 1.0 に特に対応していない RSS/XML 生成器RSS 1.0 文書を生成できるとは限りません。

[33] 現実には、 RSS 1.0 文書には RDF/XML として正しくないものもあり、 また同じ値の rdf:about 属性の問題のように RDF として解釈することによって著者の意図と違った解釈がなされてしまうこともあり、 利用者エージェントRDF として処理するのであれば実用に耐えません。

[47] RSS 1.0 仕様書には XHTML文字実体参照内部部分集合引数実体参照として読み込むことによって使えるようにする方法を参考として説明しています >>10 5.外部実体処理するXML処理器では確かにそれで RSS 1.0 文書中で XHTML文字実体参照を使えるようになりますけど、 現実の利用者エージェントがそれを理解してくれるのかは甚だ疑問です。 HTML文字実体参照を解釈できるとしても、引数実体処理した結果ではなく、 ハードコードされているだけの可能性が高そうです。

前方互換構文解析

[27] RSS 1.0 仕様は利用者エージェントがどのように RSS 1.0 文書構文解析するべきか規定していませんが、 RSS 0.9 との互換性についての言及 >>10 5. から、 次のように解釈することを期待しているとも受け取れます。

[31] つまり、一般的な「知らないものは読み飛ばす」というルールですね。

根要素

[49] 適合 RSS 1.0 文書根要素rdf:RDF 要素です >>10 5.2

要素の順序

[51] 子要素の順序の意味は明確ではありません。 RSS 1.0 仕様書には要素の順序は重要ではないと言及している箇所がありますが >>10 5.内容モデルの表記法の説明の中であり、文書実現値中でも全く意味がないと解するべきではないでしょう。

[52] 実際、 rdf:Seq 要素子要素の順序に意味が無いとしたら破綻しています。

[53] RDF/XML 的には RDF として解釈される以上、 rdf:Seq 要素以外では順序は意味を持たないはずです。 RSS 1.0RDF/XML なので、特に規定がない以上、それを踏襲していると解釈するのが自然です。

[54] 現実には、 item 要素は最後の方にあること、 item 要素の順序がレンダリングしてほしい順序になっていることが期待されているように思います。

[55] もしかすると title 要素link 要素などの順序も特定のものを想定している実装があるかもしれませんが、 そのような実装は実世界のデータをまともに処理できないはずです。

識別子

MIME 型

[36] RSS 1.0 仕様によれば、推奨 (recommended) される MIME型application/xml です >>10 5.

[77] その他に text/xml を使っている例もよくみられます。

[78] text/xmlapplication/xmlXML文書の一般の MIME型なので、フィード以外の XML に使われることもあります。 従って利用者エージェントは、真に RSS 1.0 であるかどうかを判別する必要がありますが、 RSS 1.0仕様書にはその方法の規定はありません。 RSS 1.0 rdf:RDF要素 とそれ以外の rdf:RDF 要素を区別する方法は不明です。

[41] 昔は text/* は相応しくないという風潮で application/xml が好ましいとされていましたが、 今はそうでもありませんしね。

[37] RSS 1.0 仕様は RDFRSS のための MIME型の登録作業が行われていたことにも言及していました >>10 5.。その後実際に RDF/XML 用として application/rdf+xml が、 RSS 用として application/rss+xml登録されています。

[38] ただ、 RSS 1.0 は現実には RDF として処理されないのが普通であること、 そのために本当の RDF と区別できた方が (本当に RDF を処理したい時に) 便利なことを踏まえると、 application/rdf+xml はあまり適切ではないと思います。 RSS 1.0application/rdf+xml を使った例はあまり見られません。

[39] application/rss+xml はどちらかというと RSS 2.0 に使われる方が一般的なようです。


[40] text/xmlapplication/xml には charset 引数が添えられることもあれば、省略されることもあります。


[79] MIME Sniffingrules for distinguishing if a resource is a feed or HTML は、 Content-Type:text/html でありながら実際には RSS 1.0 である文書の判別に対応しています。 このアルゴリズムでは、RSS 1.0 rdf:RDF要素らしきものがある時に application/rss+xml と判別することになっています。

ファイル拡張子

[42] ファイル名拡張子として決まったものは特にありませんが、 .rdf.xml推奨 (recommended) されており、 特に .rdfよい (preferred) 、とされています >>10 5.

[43] 現実には、むしろ .rss がより用いられているように思えます。

実利用例

[76] フィードいろいろ参照。

歴史

誕生

[18] RSS 0.9RDF/XML ベースでしたが、 RSS 0.91 は簡素化して非 RDF でした。それに不満を持った人達が RSS 1.0 を作ることになりました。

[19] RSS は注目されて適用範囲も拡大方向にあり、 モジュール化がそれに対する解であると信じられていたことから、 XML名前空間RDF を使うのは非常に正しい方向性であると支持を受けていたのです。

[21] なお、 RSS 1.0RSS 0.9 とは互換性がありませんでした。

[24] RSS 1.0RSS 0.9 との互換性を考慮して設計されているようですが、 実際どの程度 RSS 0.9 対応ソフトウェアで RSS 1.0 フィードが利用できたのかは不明です。

退潮

[22] RSS 1.0 は一定の支持を集めたものの、ブログ用の各種ソフトウェアは RDF に基づかない RSS 0.92 の後継である RSS 2.0 を出力することが多くなり、また Web標準系のコミュニティーの人達は Atom にうつったことから、 RSS 1.0 を使う人は少なくなっていきました。

[23] 日本ではなぜか RSS 2.0 よりも RSS 1.0 が使われていることが多く、 海外よりは RSS 1.0 採用率が高いと思われます。

RSS 1.1

[20] RSS 1.0 の後継として RSS 1.1 が提案されたことがありました。 RSS 1.1 もやはり RDF/XML ベースでした。しかし RSS 1.1 には RSS 1.0 との互換性もなく、 RSS 1.0 自体への関心も低下していたため、 結局支持されずに忘れ去られていきました。

処理

[12] RSS 1.0RDF/XML として定義されてはいますが、現実には RDF として処理している実装はほとんどありません。世間一般に流通している RSS 1.0 フィードは、実際には RDF/XML に適合しないことも多く、 XML として整形式でないこともしばしばあります。そのため、 フィード・リーダーXML 仕様に規定されていない誤り訂正を行ったり、 正規表現による一致でお茶を濁していたりして厳密に処理しないのが一般的です。

[13] 根要素である rdf:RDF 要素は、 XML名前空間の仕様に基づき違う名前空間接頭辞で表現することもできるはずですが、 実際には rdf:RDF という修飾名との文字列としての一致を見ている実装があったりします。

rdf:RDF 参照。

[80] 根要素RSS 1.0 rdf:RDF要素でないときにどう処理するべきかは不明です。

レンダリング

[14] RSS 1.0 は専用のフィード・リーダーなどの利用者エージェントで処理するのが一般的で、 Webブラウザーによってレンダリングすることはほとんどありません。ただし、 最近の Webブラウザーフィード・リーダー機能を実装していることがよくあります。

[15] Webブラウザーフィード・リーダー機能を実装する前は著者xml-stylesheet 処理指令によってXSLTスタイル・シートレンダリングを指定することがたまにありました。 Webブラウザーフィード・リーダー機能を実装した折にはそれが動作せずにフィード・リーダー側の処理が動作するようになり、 反発があったりもしました。

[3]

  <channel rdf:about="http://help.rss.drecom.jp/">
    <title><![CDATA[ドリコムRSS(β) オンラインヘルプ]]></title>
    <link><![CDATA[http://help.rss.drecom.jp/]]></link>
    <description><![CDATA[ドリコムRSSのオンラインヘルプページ]]></description>
    <dc:language>ja</dc:language>
    <dc:creator><![CDATA[ドリコムRSS(β) オンラインヘルプ]]></dc:creator>
    <dc:date>2008-09-03T12:07:00+09:00</dc:date>
	<dc:rights><![CDATA[Copyright &copy; 2001-2008 Drecom Co., Ltd All Rights Reserved.]]></dc:rights>

title とか link とかに CDATA区間を使っているのがちょっと珍しい。

channelrdf:aboutlink と同じ (= WebサイトURL を指定している) のも最近では珍しい。

メモ

[1] RSS - ESW Wiki <http://esw.w3.org/topic/RSS>

[4] ちょっとしたメモ - IE7、Firefox2でもRSS1.0にXSLTを適用させる (Masahide Kanzaki 著, 版) <http://www.kanzaki.com/memo/2006/11/06-1>

一般のRSSリーダーの中にもrdf:RDFを使ってRSS1.0を判定方法を用いているらしきものが結構あることが分かった。結果として、接頭辞置き換えによる修正版RSSは多くのフィードリーダー(オンライン、オフラインともに)で読めなくなってしまい、少々具合が悪い。

[71] 【開発】.net C#でRSS/Atom feedとか読んでみる | 鍋風呂 ( 版) <http://blog.ahh.jp/?p=1007>

RSS1.0も出てきた。

ほとんどが、名前空間絡み。ちゃんと指定されてない場合も結構見かけます。

こちらが、アメーバブログRSSのChannel要素。

<channel xmlns="" about="http://news.ameba.jp/">

なんでか、Channelだけ名前空間指定してねぇし。

[72] Raptor RDF Syntax Library () <http://librdf.org/raptor/>

RSS "tag soup" parser

A parser for the multiple XML RSS formats that use the elements such as channel, item, title, description in different ways. Attempts to turn the input into RSS 1.0 RDF triples. True RSS 1.0, as a full RDF vocabulary, is best parsed by the RDF/XML parser. It also generates triples for RSS enclosures.

This parser also provides support for the Atom 1.0 syndication format defined in IETF RFC 4287

[74] RSS/RDFについて:朝日新聞デジタル (The Asahi Shimbun Company著, ) <http://www.asahi.com/information/service/rss.html>

朝日新聞デジタルでは、RSS/RDF(以下、RSS)を一般に公開しており、速報ニュースジャンルの見出しと記事リンクをRSS1.0形式で提供しています。RSSリーダーと呼ばれるソフトウェアやRSSに対応したブラウザを使うことで、朝日新聞デジタルに掲載された最新ニュースの見出しを素早くチェックできるようになります。

[75] ご利用方法&よくあるご質問 - 政府インターネットテレビ () <https://nettv.gov-online.go.jp/comfortably_rss.html>

政府インターネットテレビでは、RSS/RDF(以下、RSS)を公開しております。