[8] RSS 1.0 は、2000年代の初頭によく使われていたフィードの形式の1つです。 XML および RDF を元に Webサイトの情報を記述するものでした。 RSS-DEV により開発されていました。 特に日本では RSS 2.0 よりもよく採用されていました。 現在でもほとんどのフィード・リーダーが対応しています。
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) は、軽量で多目的の拡張可能なメタデータ記述・連合配信用の書式です。 RSS は XML応用であり、 W3C の RDF 仕様に適合します。 RSS は XML名前空間によって、あるいは RDF に基づくモジュール化によって、 はたまたその両方によって拡張可能です。 >>9
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.0、Atom、RSS 1.0 のうち、唯一 RSS 1.0 は仕様書のメンテナンスがまったく行われていません。 現在の各仕様の利用状況と今後も仕様書のメンテナンスが行われる見込みがないことを考えると、 新たに RSS 1.0 を採用することは好ましくないと思われます。
[68] 主要な要素を次に示します。これ以外の要素はモジュールの項を参照してください。
[5] RSS 1.0 は核となる部分の他はモジュールとして定義されています。 多数のモジュールが提案されましたが、そのほとんどは提案段階で放置されており、 一応の完成を見たのは3つのみです。
[7] 実際のフィードでの利用状況は仕様としての完成度とは別です。 一旦完成した Content モジュールは実際にはその規定通りには用いられておらず、 変更案として示されているものが利用されているのが実態です。 また、素案段階のモジュールのいくつかは実際に用いられています。
[57] RSS 1.0 には本体仕様とは別にモジュールについて定めた文書 (>>56) があり、 次の指針が掲げられています。
rdf:parseType=Literal
を使うべきです。
3.3dc:description
をもって description
の代替とはできません。) 3.4[2] RSS 1.0 文書で見かける名前空間URIと、典型的な名前空間接頭辞。
admin
http://webns.net/mvcb/
atom
http://www.w3.org/2005/Atom
cc
http://web.resource.org/cc/
content
http://purl.org/rss/1.0/modules/content/
☆dc
http://purl.org/dc/elements/1.1/
☆feedburner
http://rssnamespace.org/feedburner/ext/1.0
g
http://base.google.com/ns/1.0
mn
http://usefulinc.com/rss/manifest/
rdf
http://www.w3.org/1999/02/22-rdf-syntax-ns#
★http://purl.org/rss/1.0/
★slash
http://purl.org/rss/1.0/modules/slash/
sy
, syn
http://purl.org/rss/1.0/modules/syndication/
☆taxo
http://purl.org/rss/1.0/modules/taxonomy/
trackback
http://madskills.com/public/xml/rss/module/trackback/
xhtml
http://www.w3.org/1999/xhtml
xml
http://www.w3.org/XML/1998/namespace
xmlns
http://www.w3.org/2000/xmlns/
★[67] ★は RSS 1.0 本体仕様を構成する名前空間です。 ☆は RSS-DEV によって「標準」と認められている3つのモジュールです >>66。
[44] RSS 1.0 文書は UTF-8 である、とされています >>10 5.。 (RSS 0.9 は US-ASCII でした。)
[45] 現実にはいろいろな文字コードが使われます。
しかし古くからほとんどのフィードは UTF-8 を使っていました。
理論上は charset
引数や encoding
擬似属性や BOM で他の文字コードを使うことを指定できますが、
あまり使われていないようですし、対応していない実装もありそうです。
[25] RSS 1.0 は XML応用であると謳っています >>10 1.。
[26] 現実には、RSS 1.0 文書には整形式ではないものもあり、 利用者エージェントは Draconian でない構文解析を行わなければ実用に耐えません。
[50] RSS 1.0 は XML名前空間を使っています。 XML名前空間の仕様上は名前空間接頭辞は飾りに過ぎず、
名前空間URLが同じである限りは自由に記述できるのですが、 RSS 1.0
では制限があります。 RSS 1.0 仕様は RSS 0.9 との互換性のためとしていますが、
実際には RSS 1.0 以降の実装でも XML名前空間を実装せずに正規表現などの一致で済ませていることがよくあるため、
過去・将来どちらの方向の互換性のためにも制限に従う必要があります。詳しくは
rdf:RDF
の項をご覧ください。
[32] RSS 1.0 は RDF (現在でいう RDF/XML) に適合すると謳っています >>10 1.。
[34] ここで適合すると言っているのは RSS 1.0 に適合する XML文書は RDF/XML にも適合するという程度の意味です。 RSS 1.0 語彙を使った RDF グラフを表す RDF/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] つまり、一般的な「知らないものは読み飛ばす」というルールですね。
[51] 子要素の順序の意味は明確ではありません。 RSS 1.0 仕様書には要素の順序は重要ではないと言及している箇所がありますが >>10 5.、 内容モデルの表記法の説明の中であり、文書実現値中でも全く意味がないと解するべきではないでしょう。
[52] 実際、 rdf:Seq
要素の子要素の順序に意味が無いとしたら破綻しています。
[53] RDF/XML 的には RDF として解釈される以上、 rdf:Seq
要素以外では順序は意味を持たないはずです。 RSS 1.0 は RDF/XML
なので、特に規定がない以上、それを踏襲していると解釈するのが自然です。
[54] 現実には、 item
要素は最後の方にあること、
item
要素の順序がレンダリングしてほしい順序になっていることが期待されているように思います。
[55] もしかすると title
要素や link
要素などの順序も特定のものを想定している実装があるかもしれませんが、
そのような実装は実世界のデータをまともに処理できないはずです。
[36] RSS 1.0 仕様によれば、推奨される MIME型は
application/xml
です >>10 5.。
[77] その他に text/xml
を使っている例もよくみられます。
[78] text/xml
や application/xml
は XML文書の一般の
MIME型なので、フィード以外の XML に使われることもあります。
従って利用者エージェントは、真に RSS 1.0 であるかどうかを判別する必要がありますが、
RSS 1.0 の仕様書にはその方法の規定はありません。
RSS 1.0 rdf:RDF
要素 とそれ以外の rdf:RDF
要素を区別する方法は不明です。
[37] RSS 1.0 仕様は RDF や RSS のための
MIME型の登録作業が行われていたことにも言及していました >>10 5.。その後実際に
RDF/XML 用として application/rdf+xml
が、
RSS 用として application/rss+xml
が登録されています。
[38] ただ、 RSS 1.0 は現実には RDF として処理されないのが普通であること、
そのために本当の RDF と区別できた方が (本当に RDF を処理したい時に)
便利なことを踏まえると、 application/rdf+xml
はあまり適切ではないと思います。
RSS 1.0 に application/rdf+xml
を使った例はあまり見られません。
[39] application/rss+xml
はどちらかというと RSS 2.0
に使われる方が一般的なようです。
[40] text/xml
や application/xml
には charset
引数が添えられることもあれば、省略されることもあります。
[79] MIME Sniffing の
rules 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
が推奨されており、
特に .rdf
がよい、とされています >>10 5.。
[18] RSS 0.9 は RDF/XML ベースでしたが、 RSS 0.91 は簡素化して非 RDF でした。それに不満を持った人達が RSS 1.0 を作ることになりました。
[19] RSS は注目されて適用範囲も拡大方向にあり、 モジュール化がそれに対する解であると信じられていたことから、 XML名前空間や RDF を使うのは非常に正しい方向性であると支持を受けていたのです。
[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 採用率が高いと思われます。
[20] RSS 1.0 の後継として RSS 1.1 が提案されたことがありました。 RSS 1.1 もやはり RDF/XML ベースでした。しかし RSS 1.1 には RSS 1.0 との互換性もなく、 RSS 1.0 自体への関心も低下していたため、 結局支持されずに忘れ去られていきました。
[12] RSS 1.0 は RDF/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ブラウザーがフィード・リーダー機能を実装した折にはそれが動作せずにフィード・リーダー側の処理が動作するようになり、
反発があったりもしました。
<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 © 2001-2008 Drecom Co., Ltd All Rights Reserved.]]></dc:rights>
title
とか link
とかに CDATA区間を使っているのがちょっと珍しい。
channel
の rdf:about
に link
と同じ (= 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は多くのフィードリーダー(オンライン、オフラインともに)で読めなくなってしまい、少々具合が悪い。
RSS1.0も出てきた。
ほとんどが、名前空間絡み。ちゃんと指定されてない場合も結構見かけます。
こちらが、アメーバブログRSSのChannel要素。
<channel xmlns="" about="http://news.ameba.jp/">
なんでか、Channelだけ名前空間指定してねぇし。
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
朝日新聞デジタルでは、RSS/RDF(以下、RSS)を一般に公開しており、速報ニュースジャンルの見出しと記事リンクをRSS1.0形式で提供しています。RSSリーダーと呼ばれるソフトウェアやRSSに対応したブラウザを使うことで、朝日新聞デジタルに掲載された最新ニュースの見出しを素早くチェックできるようになります。
政府インターネットテレビでは、RSS/RDF(以下、RSS)を公開しております。