2010年7月| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
トップ > コンピュータ&インターネット > Web全般 > UTF-8ならばXML宣言は入れなくてもいい

UTF-8ならばXML宣言は入れなくてもいい

2010年3月15日 00:03

W3C Recommendation

明確な理由がなければXML宣言はいれないことにした。

このブログをはじめとして、仕事ではずっと、XML宣言を惰性で入れてきたのですが、昨年7月から明確な理由がなければXML宣言をいれなくなりました。
IE6の後方互換対策ができないわけでもないし、XML宣言を知らないから入れないわけでもありません。入れない理由は以下によります。

  1. ルールの正当性:W3C勧告に条件を満たせば省略してよいと明記してある
  2. 物理的理由:ブラウザはDOCTYPE スイッチを読みHTMLの種類を判別する
  3. 作業の合理性:IE6の後方互換対策をする必要がないから
  4. 何人かの国内のHTMLの権威の人たちに確認したら例外なく「不要」と。

以下で、少し詳しく調べた事を書きます。

XML宣言をいれてきた理由

恥ずかしい話ですが、身近でアクセシビリティに詳しい人たちが入れるべきと言うのでそうしたにすぎなせん。当時は僕も反論するだけの知識もなく、「そうかな?」と。それからなによりも、Another HTML-lint gatewayで100点をとりたかったという理由が大きいです(笑)。
W3C勧告をしっかり読んでの上でもなく人に言われて鵜呑みにしてきたなんて、本当に恥ずかしい話です。

XML宣言を入れない理由その1:W3C勧告に明記してある

W3C勧告

W3C勧告 まず、XML宣言は基本的には必須ですが、「XHTML 1.0: The Extensible HyperText Markup Language (Second Edition) - W3C Recommendation 3.1.1. Strictly Conforming Documents」の「5.The DTD subset must not be used to override any parameter entities in the DTD.」に以下のように書かれています。

An XML declaration is not required in all XML documents; however XHTML document authors are strongly encouraged to use XML declarations in all their documents. Such a declaration is required when the character encoding of the document is other than the default UTF-8 or UTF-16 and no encoding was determined by a higher-level protocol.  

日本語に直すとこんな感じ

XML宣言が、すべてのXML文書で必要であるというわけではありません。しかし、XHTML文書のい制作者は、すべての文書でXML宣言を使うよう強く奨励されます。文書のエンコーディングがデフォルトのUTF-8またはUTF-16以外のとき、そのような宣言は必要です。

ということで、エンコーディングがUT-8の場合は、XML宣言は省略してもよい。人間だもの省略していいなら、省略したいうよな。人間だもの(笑)。
W3Cには、さらにXML宣言を入れなくていい理由もあるのだけど、下記に参考リンクをまとめてあり、大藤さんの記事にそのことが書いてあります。引用だらけの文章を書くのもイヤなのでそちらを読んでください。

XML宣言を入れない理由その2:DOCTYPEを記述するのに必要?

そもそも、DOCTYPE スイッチを備えたブラウザは、XHTML(or HTML)文書の冒頭のDOCTYPE 宣言の有無や書き方によって表示モードを切り替えます。DOCTYPE 宣言が書かれてないと、多くのブラウザは後方互換モードで表示されます。なのになんでXML宣言を記述する必要があるのか?という理由は、W3C勧告にあるなし以上に僕にとっては大きな疑問でした。

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

リンク先に意味があるので、一度も見たことのない人は一度開いてみてください。

XML宣言を入れない理由その3:作業の軽減化

まぁ、これは語るまでもないでしょう(笑)。

入れない理由その4:権威の確認

それでも自信は持てないので、CSS Niteで知り合った、国内のHTMLの権威である人たちに自分の考えを述べたら、例外なくいらんでしょうと…(苦笑)。
これはもう外してもいいと確信した次第です。
#説得材料として彼らに聞いたにすぎません。本を書いている人の言葉はリテラシーの低い人にとっては神の言葉ですから:^p

それでも、XML宣言をいれる明確な理由

とはいえ、絶対に入れない訳じゃなくて、以下の場合にはXML宣言を入れます。

  1. エンコーディングがEUC-JPやShift_JIS
  2. Another HTML-lint gatewayで100点をとるように依頼があった場合
  3. 仕様書にXML宣言を入れるよう指示があった場合

マークアップに喧しい方々が知ってはいても「XML宣言を入れる」人がいるのには訳があります。他にもあるかも知れないですがXML宣言を入れることにより仕事につながるからです。
HTMLの世界基準を決めているのはW3Cであって、Another HTML-lint gatewayでないことは、まともなWeb製作者であれば誰でも知ってますが、Another HTML-lint gatewayの結果で発注してくるWeb担当者(特に自治体)が多いことも確か。
Another HTML-lint gateway対策のために、あえてXML宣言を入れることは否定はしません。僕も顧客からXML宣言を入れてくださいとか、Another HTML-lint gatewayで100点をとるように言われれば、ひとまず理由は聞くものの、いたしかない理由であればばそうします。

ところで、Web担当社や、IAをおこなう人たちにお願いがあります。マークアップエンジニアの人たちは結構HTMLを勉強していて、UTF-8の場合は、XML宣言を入れなくていいことも知ってる人が大勢います。
理由もなくXML宣言を入れ、そのことによりIE6対策を施すのも苦痛ですから、エンコーディングがUTF-8の場合、きちんと入れる理由。たとえば、「俺だってXML宣言をいらなくていいことは知ってるけど、Web担当者に言いそびれちゃってさ。悪いけど頼むよ」とか、「上からの指示でね」とかぐらいは言ってあげてください。

参考サイト

権威が動けば世の中が変わると思うので、WebJIS改訂やHTML5勧告がでるにあたり、HTMLやアクセシビリティの権威の人たちが、なんらかの社会性のあるアクションをおこしてくれることを期待しています。

WebクリエイターがIE6の後方互換対策から解放されれば幸い。

PS:このブログにはXML宣言が入ってますが、外す意味もないので入れたままになっています。悪しからず。

投稿者: Dakiny 日時: 2010年3月15日 00:03 |  このエントリーをはてなブックマークに追加 「UTF-8ならばXML宣言は入れなくてもいい」のはてなブックマーク被リンク数 |  このエントリをdel.icio.usに追加 このエントリのdeliciousの被リンク数  |  このエントリをlivedoorクリップに追加 このエントリのlivedoorクリップ被リンク数 |  「UTF-8ならばXML宣言は入れなくてもいい」をTwitterでつぶやく |   | コメント(0)  | トラックバック (0)

トラックバック

このエントリーのトラックバックURL:
http://www.dakiny.com/mtos/mt-tb.cgi/1942
※文章内容と関係のないトラックバックは固くお断り。

コメントを投稿

Search


キャッシュ使用
Powered by 暴想

Download

Categories

ArchiveList

Trackbacks

Comments