冬言響 / 日記

アメコミとか映画とか音楽とか猫とか単車とか自転車とか革とか銀とかジーンズとかブーツとか今日喰ったものとか。

RSS2.0

IE で表示出来んかったぽい

このサイトは基本的に XHTML1.1 で記述し、MIME も application/xhtml+xml で出力している。のだけど、それだと IE で表示出来ないので、IE の場合(UA に「MSIE」という文字列を含む場合)は text/html にし、また文書本体についても結局 iframe とか使わざるを得ないので XHTML1.0 Transitional に変えて出力して、その旨コメントで DOCTYPE 宣言の次の行に書き込んでた。のだが、したらそれがいけなかったのかどうなのか

XML ページを表示できません

スタイルシートを使用した XML 入力は表示できません。エラーを訂正してください。[更新]ボタンをクリックするか、または後でやり直してください。

----------

サーバーが要求を理解出来なかったか、要求が無効でした。リソース 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd' の実行エラーです。

というエラーが出よって、というか出てるヨ、と友人から指摘があって、正直 XML 周りはあんま良く判ってないので適当に当たりを付けていろいろいじってるうちにコメントを消したら直ったのでそれで良しとして現在に到るの巻。

期間的にはたぶん数日。それ以前は単に text/html で XHTML1.1 を出力していたのだけど、ちょっと思い立って XHTML1.0 Transitional にするようにしてみたら、こんな事態になりましたの巻。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- IE によるアクセスのようなので XHTML1.0 Transitional で出力しています云々。 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
以下略

という具合だったのだがマズいのだろうか。ざっと調べてみた限りでは文書型宣言の直後にコメントが来るとマズい、とかいう話は見あたらなかったし、htmllint でもてきとうに検索して見つけた HTML/XML Validator でもエラーにはならんかった。

良く判らんが直った(と思う)から良いや。細かい部分はおいおい調べよう。「おいおい調べよう」とか言っといて色々放ったらかしな気もするが気にすんな。

そもそも XHTML1.1 だのなんだの拘らなければいらん手間とか掛からんかったのだがなあ。なんで XHTML1.1 なのか、っつーと自分も多分に漏れず XML の利点が云々とかよりも「それが一番新しいから」というか「あえて古いものを選ぶ理由が無かったから」。まあ今にして思えば「IE で要らん手間がかかる」ってのは例えば HTML4.01 Transitional + text/html なんかを選ぶ理由としては充分なのだけど。当時(何時)は HTML → XHTML という流れが自然なもので、そのまま XHTML2.0、3.0、とバージョンアップしていって、IE で一時的に不具合があっても将来的にはちゃんと対応してくもんだと思ってたのだけど、あれからウン年、IE は未だに application/xhtml+xml を表示出来ないし、気付いたら XHTML2.0 よりも先に HTML5 なんてものが出てきたりして。世の中ままならんのう、と。まあ「じゃあちょっと HTML4.01 Transitional にしちゃおうか」となったらそんなに手間かからずにやれるんだけど。

いやはや。