XHTML Media Types

XHTMLの利点について色々考えてみて気づいたのだが、
text/htmlとしてのみ送信されるXHTML文書はただの不正なHTMLだ。

全体的に中途半端に厳密だなぁ。思うに、Web の世界ってもっとカオス。そして、そのカオスな状況に対応するための必要悪ってのもある。

text/htmlで受信したXHTML1.0文書というのは、
HTMLとしては不正な記述 (名前空間の記述や、xml:lang属性など) を
含んだエラー処理必須のHTML文書であり

「エラー処理必須のHTML文書」という概念が曖昧だけれど、おそらく不正な HTML を無理やり解釈する処理が必要である、ということだろう。ふむ、まぁそれはそうでしょうね。もっとも、text/html だけじゃ、どの「HTML」か特定できないんですけど。HTML 2.0 だって、HTML 5 だって text/html で供給されるわけです。

text/htmlとして送信する文書への処理なので、
このサーバの処理 (img要素を強制空要素として終了タグを記述せず挿入する) は正しい

HTML 2.0 だと日本語が使えないから、「<img scr="広告.png" alt="(スポンサーからの広告)">」が不正かもしれない、とかね。

そんなわけで妥当性の検証は必須であり、
下手すると (しなくても) HTMLとしてエラー処理してから、
HTMLとしてXHTML1.0に変換したほうが良いかもしれない 

妥当性、つまり XHTML 1.0 として valid かの検証の前に、XML として well-formed かどうかの検証が必要なんじゃないですかねぇ。そもそも、text/html として供給可能な XHTML 1.0 には XML 宣言がなかったりするものもあるわけで、そのまま XML として解釈しようとすると不正なことがままありますな。

送信側にとってどうかというと、
1つのファイルを変換処理なしにXMLとしてもHTMLとしても送信できる
(中略)という利点があるが、逆に言えばtext/htmlとしてしか送信しないなら意味がない

んー、そこは本質じゃないような。XHTML 文書を HTML ブラウザに閲覧させられるっていうメリットを忘れていますよ。言い換えると、後方互換性を保ちながら XHTML 環境に移行できる、これが最大のメリットでしょう。理想は application/xhtml+xml が読めるブラウザには application/xhtml+xml で valid な XHTML を、読めないブラウザには text/html で HTML Compatible なものを、なんですけど。

まぁ、XHTML Media Types をまず読むべきでしょうな。互換性のための中途半端な代物に真正面からケチつけるのはナンセンスでしょう。理想を言えば application/xhtml+xml で送るのがベストに決まってるし。