[1] [CODE(XMLe)@en[[[content:encoded]]]] [[要素]]は、[[エントリー]]の [[HTML]]
による表現を含んでいます。 [CODE(XMLe)@en[[[description]]]] [[要素]]が要約や説明だけであるのに対し、
[CODE(XMLe)@en[[[content:encoded]]]] [[要素]]は全文であるのが普通です。
[12] この[[要素]]は [[RSS 1.0]] でも [[RSS 2.0]] でも用いられています。
* 仕様書
- [11] [CITE[RDF Site Summary 1.0 Modules: Content]] ([TIME[2002-10-14 07:00:04 +09:00]] 版)
- [10] [CITE@en[RSS Best Practices Profile]] ([TIME[2008-11-21 15:11:45 +09:00]] 版)
* 意味
** RSS 1.0 における意味
[16] 項目の[[内容]]です [SRC[>>11]]。
** RSS 2.0 における意味
[2]
[CODE(XMLe)@en[content:[[encoded]]]] [[要素]]は、 [CODE(XMLe)@en[[[item]]]]
の完全な内容を表します。 [[RSS 2.0]] の [CODE(XMLe)@en[[[description]]]]
は完全な内容でも、要約でも構わないことになっています。
[SRC@en[[[RSS Best Practices Profile]]]] ですから、
完全な内容であることを明確にしたい時や要約と両方を含めたいときには有用です。
* 構文
[13] [[XML名前空間]]的には、
- [[名前空間接頭辞]] [CODE(XML)@en[[[content]]]]
- [[名前空間URL]] [CODE(URI)@en[[[http://purl.org/rss/1.0/modules/content/]]]]
... です。
[14] [[XML名前空間]]仕様上は[[名前空間接頭辞]]は[[著者]]が自由に決められますが、
実際上は [[XML名前空間]]を仕様通りに処理しない[[利用者エージェント]]が存在しているので、
出力時には常に [CODE(XML)@en[[[content]]]] を使うべきです。
[15] もしかすると、入力時には[[名前空間属性]]が無くても理解できるようにする必要があるかもしれません。
* 内容
[17] この[[要素]]は [[HTML]] を[[内容]]として持つことが期待されているはずですが、
仕様上は明記されていません。単に構文的に [[CDATA区間]]または[[実体参照]]を使う
[SRC[>>11]] と述べて [[HTML]] を含めた例文を載せているに過ぎません。
[3] [CODE(XMLe)@en[[[item]]]] [[要素]]の[[子要素]]の
[CODE(XMLe)@en[[[description]]]] [[要素]]と同様に、
[[HTML]] として適切な[[文字データ]]でなければ[['''なりません''']]
[SRC@en[[[RSS Best Practices Profile]]]]。 ([[escaped markup]])
[18] どの仕様書にも明記されていませんが、慣習的には[[フロー内容]]を含められると理解されています。
* 実装
[4] [[RSS Best Practices Profile]] によれば、すべての[[集積器]]がこの[[要素]]を[[項目]]の内容として扱うようです。
;; ただし、 題名しか表示しない [[Firefox]] を除きます。
[5]
[CODE(XMLe)@en[[[description]]]] を要約とする使い方に対応しているのは
[[Bloglines]] だけでした [SRC@en[[[RSS Best Practices Profile]]]]。
[6] 8つ中6つの[[集積器]]は、 [CODE(XMLe)@en[content:[[encoded]]]] を表示し、
[CODE(XMLe)@en[[[description]]]] を無視しました。
[[FeedDemon]] は [CODE(XMLe)@en[[[item]]]] [[要素]]中の最後の[[要素]]を表示しました。
([[Firefox 2.0]] は [CODE(XMLe)@en[[[description]]]] に対応していませんでした。)
[SRC@en[[[RSS Best Practices Profile]]]]
[7] [[フィード]]中に要約を含めない場合には、完全な内容には [CODE(XMLe)@en[content:[[encoded]]]]
よりもより多く実装されている [CODE(XMLe)@en[[[description]]]] を使う[['''べきです''']]
[SRC@en[[[RSS Best Practices Profile]]]]。
[8] [[フィード]]中に要約を含める場合には、完全な内容には [CODE(XMLe)@en[content:[[encoded]]]]
を使い、要約に [CODE(XMLe)@en[[[description]]]] を使う[['''べきです''']]
[SRC@en[[[RSS Best Practices Profile]]]]。
* 歴史
[21] [[RSS 1.0]] の中の人達は [[RDF]] 志向で (それがそもそも仕様の策定の背景になっているわけですが)、
[[mod_content]] も当初案では [[RDF/XML]] でメタ情報をきっちり埋め込める複雑な仕様でした。
一度はそれが [[RSS-DEV]] で[[標準]]とされましたが、そちらは普及せず、改めて
[CODE(XMLe)@en[[[content:encoded]]]] [[要素]]が仕様化されました。
[CODE(XMLe)@en[[[content:encoded]]]] 版の仕様はとうとう正式に[[標準]]となりませんでしたが、
[[RSS 1.0]] でも [[RSS 2.0]] でも実質的な標準として使われています。
それを踏まえて [[RSS Best Practices Profile]] に [[RSS 2.0]]
における用法がまとめられています。
[19] [[escaped markup]] によって [[HTML]] を含めることには議論がありました。
それを踏まえて設計されている [[Atom]] では [[escaped markup]] による [[HTML]] の埋め込みと
[[XML名前空間]]を使った [[XHTML]] 埋め込みの両方に対応しています。
[20] 世の中のすべてが [[XML]] になると錯覚した人もいたくらいの当時の情勢の中では
[[escaped markup]] に過剰に拒否反応があったことも理解できなくはないですが、
今振り返ってみると、緩い構文の [[HTML]] を [[draconian]] な [[XML]]
に埋め込むためには [[escaped markup]] が一番妥当な解だったのではないでしょうか。
もし [[XHTML]] として埋め込むことが強制されていたら、現実世界以上に大量に非[[整形式]]な [[RSS]]
[[文書]]が生み出されていたかもしれません。
* 例
[9] [[RSS 1.0]] の例です。
[PRE(XML example code)[
-
かたわ
http://www.wdic.org/w/CUL/%E3%81%8B%E3%81%9F%E3%82%8F;from=rss
第01位(115)
第01位(115)
片端。体の一部が欠落するなど、完全でな...
]]>
CUL
2008-11-22T00:00+09:00
]PRE]
;; [CITE[人気検索語TOP50 - 通信用語の基礎知識]] ([TIME[2008-11-23 23:08:29 +09:00]] 版)
[CODE(XMLe)@en[[[description]]]] には要約が入っていますが、
[CODE(XMLe)@en[[[content:encoded]]]] には全文が入っておらず、
要約よりは長いものの途中で切られています。