XHTML 文書における XML 宣言について

ルシカさんの XML 宣言の省略がどうのこうの という記事や、それに言及した XML 宣言と DOCTYPE 宣言 という記事で取り上げられている、 XHTML 文書での XML 宣言について。

XHTMLXML 文書なので、できることならば XML 宣言はしておいたほうがいいです。やむを得ず text/html で公開する場合は HTML 文書の決まりに則って XML 宣言を省いたほうがいいです。HTML では XML 宣言なんて余分ですから。それと XML でスタイルシートを結びつけたりする処理命令 (Processing Instruction) も余分ですから省きましょう。text/html で公開される (似非えせ) XHTML 文書は HTML 文書として処理されるので、application/xhtml+xml で公開される (本物の) XHTML 文書と同じように XML として処理されず、XML 特有の構文 (XML 宣言や処理命令) は意味をなさないのです。そんなもので文書を太らせてしまうより、きれいにそぎ落として HTML として公開したほうがよほどスマートです。

ちょうど今、2ちゃんねるの Web 制作板でもそのような論議がありました。

個人的には、text/html でも XML 宣言をしていいと思いますがね。XHTML を使っている、という自慢にはなるでしょう。ただ、Firefox などでソースを見ると、XML として処理されていない text/html な文書では、からようを閉じるための /スラッシュ が誤りを示す赤字で表示されます。やはり、できることならば application/xhtml+xml か application/xml、text/htmltext/xml で公開したいところです。

あ、そうそう。text/html で公開する場合は XML 宣言や処理命令を省くというのは、うちのサイトで以前からやっていたのですが、やはり間違ってはいなかったんだな、と安心。XML として処理されない XHTML もどきは、XHTML の文書型定義DTDを当てただけの HTML 文書ですしね。