2004年9月28日火曜日

RSSのDTD

昨日、Blogにおける文字参照(エンティティ)において、RSSでは文書型宣言をしないようだといっておりましたが、詳細が判明。端的にいいますと、バージョン0.9/0.91には文書型定義(DTD)がありますが、1.0以降にはありません。

RSS 0.9の文書型定義ネットスケープ社によって公開されています。

RSS 0.9 DTD

RSS 0.91 DTD

RSS 1.0以降に文書型定義が用意されていないというのは、まず以下を見てください。

Note: Since RSS 1.0 does not require a DTD, be sure to include inline declarations of entities used aside from the aforementioned five. The following DTD fragments are very useful as a source of HTML-compatible entities.

RDF Site Summary (RSS) 1.0

これを読みますと、RSS 1.0にはDTDが必要ないことが分かります。また、同様に昨日いっていました文字参照についても触れられていて、XHTMLのDTDから文字参照の部分を利用するのが便利だというようなことをいっています。

これを受けて、このBlogツール[旧お試しBlog]が生成するRSSをよく見てみると、XHTMLのLatin1の文字参照の定義だけRSS v1.0に限って組み込まれていて、つまりこのBlogツールが生成するRSS 1.0では文字実体参照を使えるということなんですね。

けれど、このBlogツール[旧お試しBlog]が生成するRSS v2.0ではそういう配慮がされていないので、結局数値文字参照を使うしかなくて、RSS 1.0での工夫がまったく意味をなしておりません。中途半端です。

さて、数値文字参照を使うしかないことはわかりました。ですがもう一点問題がありまして、それは'の扱いです。

私は、このBlogツール[旧お試しBlog]が生成するHTMLはXHTML 1.0 Transitionalだと思い込んでいたのですが、違いましてHTML 4.01 Transitionalだったんですね。

HTML 4.01では'は定義されてませんので、当然'を使うことはできません。なので素直に普通にアポストロフィを打つか、文字参照を使いたいなら数値文字参照(')を使うことになりますね。

0 件のコメント: