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宣言なしの方がスマートな書き方のような気もしますが、古いブラウザを使っている人はあまりいないでしょうし、大きく崩れて表示されることはほとんどないはずです。

関連記事: