補足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専用の処理機で処理できる) というわけではない、と思い直したので削除。