application/xhtml+xmlへ移行
Published at 2005-07-04 (Mon) 04:32 in XHTML
一部の UA 向けにメディアタイプ application/xhtml+xml での配信を開始してみた。
といっても、配信する内容はほとんど同じで、メディアタイプと文書型宣言をかえるだけなので XHTML 1.1 と XHTML 1.0 の共通要素型・属性しか使えない。これではあまり意味はないのですが、(むしろ、メリットよりデメリットの方が多いかもしれない。)試験的に運用してみようと思う。
いままで PHP を使っているのは、共通テンプレートをモジュール化して、リビルドの負荷を軽くすること以外のことに手を付けていなかったので、UA を判別するついでに以前から取り組もうと思っていて後回しにしていた HTTP ヘッダ関係のことも含めてテンプレートを変更してみた。
- HTTP リクエストヘッダの
Acceptフィールドにapplication/xhtml+xmlが含まれている UA に対しては XHTML 1.1 (application/xhtml+xml) で配信。そうでない UA に対しては今までどうり、XHTML 1.0 (text/html) で配信する。 mata要素http-equiv属性でメディアタイプを指定するのをやめ、HTTP ヘッダでのみ指定する。- UA が Windows Internet Explorer である場合、xml 宣言をしない。(標準レンダレングモードにする)
メディアタイプを application/xhtml+xml にするということは xml 文書 として解釈されるわけで、well-formed(正しく整形された)かつ valid(妥当)でないと、"XML Parsing Error" となり処理を中止しする(全くレンダリングされない)ので、より厳密な文法チェックが必要になる。自分で作成した記事はともかく、閲覧者に記述してもらうコメントやトラックバックの書式は今まで以上に注意を払う必要がある。
javascript による document.write() が使えなくなるので、どうしても必要な場合は DOM を使って要素の追加、削除という方法を使う。意外なところで document。write() が使われているという例。
- track feed と XHTML の相性 [hxxk.jp]
