Re: XHTML1.1のMIMEタイプ

net::memoXHTML1.1のMIMEタイプについて。XHTML 1.1はtext/htmlでいいというのは自分も同意なのですが、以下の部分が気になりました。

また、meta要素でapplication/xhtml+xmlを宣言しておいて、サーバーが言うことを聞かないと言い訳するのもありだと思います。

meta要素のhttp-equiv属性は、サーバがHTTPレスポンスヘッダに用いる情報を収集するためのものとされていますが、サーバが必ずそのように動作しなければならないとは規定されていないと思います。実際、「meta要素を解析してその通りにHTTPヘッダを出力するサーバ」があるというのもあまり聞かないような(自分が知らないだけかもですが)。

なので、サーバがmeta要素の通りにHTTPヘッダを出してくれないからといって、必ずしもサーバが悪いとは言えないと思います。で、meta要素の通りにHTTPヘッダが出力されなければ、meta要素でのapplication/xhtml+xmlの指定も無意味なわけで、ただ無意味だけでなく、実際はtext/htmlで出力されているのだから嘘の情報を書いていることになってしまいます。そんな嘘を書くくらいだったら、application/xhtml+xmlにこだわらずに、meta要素でもtext/htmlと書く方がまだましよいのではないでしょうか。

あと、以前にsatosiiさんから伺ったことなのですが、XHTML Media Types邦訳)には

"XHTML を application/*+xml として serve する場合には、meta http-equiv での content-type 指定は記述すべきでない (SHOULD NOT) と" という注記 [2] があります。

という話もあります。XHTML Media Typesの文脈からすると「文字エンコーディングについて、meta要素での指定はすべきでない」という話と思われますが、meta要素でエンコーディングだけ指定してContent-Typeそのものは指定しない、というのは無理なので、やはり「application/xhtml+xmlとして提供される文書には、 <meta http-equiv="Content-Type" content="..." /> という指定自体書くべきでない」ということになると思います。

* * *

XHTML文書(1.1まで)の良いところは、今までにあったHTMLと同じタグ名を使っていることにあるように思います。だからこそ少し記述に気を遣えばHTML用ブラウザで表示することも可能だし、またその同じ文書をXML文書としてしかるべきアプリケーションで処理することも可能なわけで。そういった混成物hybridであることの利点を生かすには、まだ今しばらくはtext/htmlとして提供することにも十分意味があると考える次第であります。

……と、「text/htmlのXHTML文書」を肯定する派であることを表明してみたり。

(2003年5月29日)

北村曉 kits@akatsukinishisu.net