補足2: text/htmlとしてのみ送信されるXHTMLは、ただの不正なHTML
id:nurseさんからも言及がありましたので、こちらについても補足。
HTML 2.0 だと日本語が使えないから、「<img scr="広告.png" alt="(スポンサーからの広告)">」が不正かもしれない、とかね。
HTML 2.0はRFC 2854により破棄済みなので、ちょっと極端かと思いますが……HTML2.0をHTML3.2と読み替えれば確かにそうですね。
これについては現役のXMLではないHTML、つまり、HTML3.2、HTML4.01としては問題ないがXMLとしては問題がある断片をサーバが挿入した場合、として読んでください。
XML として well-formed かどうかの検証が必要なんじゃないですかねぇ。
その通りで、そのために、途中でサーバが終了タグがないimg要素を追加した場合の例を出しました。
text/html として供給可能な XHTML 1.0 には XML 宣言がなかったりするものもあるわけで、そのまま XML として解釈しようとすると不正なことがままありますな。
自分が言うtext/html
として送信されるXHTMLとは、HTML Compatibility Guidelinesに沿って書かれたXHTML1.0のことなので、初めからXMLとして解釈すると不正なXHTML1.0というのはそもそもただの不正なXHTMLであり、Media Type云々以前の問題です。
その上で、初めはXHTML1.0として仕様に沿った文書でも、text/html
として送信することによりXML文書としての信頼性が失われるのではないか、だとすれば、text/html
としてのみ送信されるHTML互換のXHTML1.0というのはHTML4.01と等価ではなく、HTML4.01文書に劣るのではないか、と言うことです。
XHTML 文書を HTML ブラウザに閲覧させられるっていうメリットを忘れていますよ。
繰り返しになりますが、text/html
としてのみ送信するなら、そもそもXHTML文書であるある意味がない、という話です。
同じ文書をapplication/xhtml+xml
とかapplication/xml
とかtext/xml
として送信するなら、XHTML1.0文書を変換する手間を省いてHTML専用の処理機で処理できるというメリットは認識しています (というか、そもそもXHTML1.0の仕様自体が、その目的でHTML4.01をXMLに移植したものなので)。
訂正
最後の段落の最後に (というか、そもそもXHTML1.0の仕様自体が、その目的でHTML4.01をXMLに移植したものなので)
と書いていたが、別にXHTML1.0が策定されたのはその目的 (XHTML1.0文書を変換する手間を省いてHTML専用の処理機で処理できる) というわけではない、と思い直したので削除。