XML宣言は省略すべきなのか?
先日、W3C validatorの有料版を使用してみたのですが、xml宣言を使用しているとNGが出てしまうようなのです。
このXML宣言というのは、xhtmlサイトの冒頭に出てくるお決まりのこんなやつです。
<?xml version="1.0" encoding="UTF-8"?>
これは一種のお約束みたいなものなので、これまであまり気にしたことはありませんでした。UTF-8の場合は省略しようと思えばできるものの、shift_jisやEUCなどの日本語環境では必須になるため、できるだけ書いておくべきという認識でした。
けれども、このW3C validatorでチェックした際、「XML宣言を取り除きなさい」と言われるとやはり気になってしまいます。
What to do
Since you are using XHTML 1.x but serving it as text/html, use UTF-8 for your page and remove the XML declaration.
この理由として、XML宣言を書いておくとIEのブラウザでは標準モードではなく、互換表示のQuirksモードで表示されてしまう可能性があるからとのことですが、古いブラウザを使っている場合だとそのようなケースがあるかもしれません。
一方で、実際にXML宣言を削除してしまうと、日本で人気の高いhtml lintのvalidatorでは以下のようなNGが出てしまいます。
「XHTML1.0 では XML宣言をすることが強く求められています。」
html lintで満点の状態にするにはXML宣言を書かなくてはいけませんが、W3C validatorで完璧を記すには逆に削除しなくてはなりませんので、どちらにすべきか迷ってしまいます。
そこでUTF-8・XHTMLの主要なニュースメディアをチェックしてみますと、以下のようになっていました。
■XML宣言なし組
・ロイター
・ブルームバーグ
・日経
・47NEWS
・W3C
■XML宣言あり組
・朝日
・NHK
大きく分けて、省略する派と省略しない派の2大派閥があるように思えますが、正直どっち派でもいいと思います。
あえていえば、UTF-8のXML宣言なしの方がスマートな書き方のような気もしますが、古いブラウザを使っている人はあまりいないでしょうし、大きく崩れて表示されることはほとんどないはずです。