指向性メモ::2004-10-12::content:encodedを実装しよう

ページ情報
制作日
2004-10-12T01:13:21+09:00
最終更新日
2004-10-12T01:13:21+09:00
ページ内目次

せっかくなので、content:encodedをうちのRSSに実装しようと思ったのだけれど、CDATAセクションの生成方法が思いつかなかった。仕様書を読む限り、実体参照に置き換えるだけでもかまわないようだけど、CDATAの方が綺麗で良いかなぁ、と思う。XSLTでうまく変換する方法ないかな。

ところで、個人的に気になるのが、どういう経緯でエスケープする事になってしまったのか、だ。XMLなのだから語彙を混ぜてしまえば良いのに、わざわざCDATAセクションで括って文字列として扱う事になっている。たとえば、次のような感じだ。

<content:encoded><![CDATA[<p>What a <em>beautiful</em> day!</p>]]></content:encoded>

よく考えると、この例のp要素は宙に浮いてしまっている。名前空間について何も述べられていないので、もしかしたらXHTML以外の語彙である可能性がある。

仕様書を読み進めていくと、content:formatでフォーマットを指定できるとは書いてある。随分回りくどいことをするなぁ、と思ったのだが、どうやらこれはcontent:encoded内のデータがXML以外の規格でも(例えばHTML4.1)対応できるように考慮されているようだ。

しかし、ここでさらに気になるのは、内容データが複数語彙で構成されていたらどうするのだろう、と言うことだ。XHTML+SVGとか言われたら混乱しそうな気がする。たしかにSGML系のデータも取り込めるのは便利かも知れないが、今更感が強い気がする。十分に整備されているXMLの名前空間を使った方が便利というか、DOMなりXSLTなりで一発変換できるし、RSSを処理するプログラムも語彙の判別が楽だろう。XMLはXMLで完結していた方が良いんではないだろうか。

Comments

Trackbacks

Trackback Ping URI

http://yudai.arielworks.com/memo/2004/10/12/011321.trackback

末尾に「1 + 0」の計算結果を繋げて下さい。例えば計算結果が「17」の場合、「011321.trackback17」です。これは機械的なトラックバックスパムを防止するための措置です。

Post a comment

Name (optional)
Email address or URI (optional)
Do the math below (required to filter comment spams)
1 + 0 + 6 =
Message (required)
Submit
連絡先、リンク、転載や複製などについては『サイト案内』をご覧ください。Powered by HIMMEL

I ♥ Validator