XHTML5は死んだのですか、それともHTML5の同義語ですか?


87

それでは、XHTML5はどうなりましたか?

http://www.w3.org/TR/html5/

そのページはxhtml5とhtml5の両方のドラフトですか?これらのDoctypeには違いはありませんか?


1
2014-12-08現在、W3Cはまだ標準に取り組んでいるようです。w3.org/TR/html5およびw3.org/TR/html5/the-xhtml-syntax.htmlは2014-10-28に更新されました。
ラッセルワインダー

6
今日、2015年のXHTMLはW3C標準です!... 更新されたディスカッションを
ピータークラウス

2
間違った答えを受け入れました。vaxquisによる答えは正解です。
ジャックB

回答:


77

2012年の執筆時点で、W3CはHTML 5のXHTMLを放棄することを決定したことが明らかでした。この決定は、いくつかの理由により動機付けられました。

  • XHTMLに本当に興味を持っている人はわずかでした。ほとんどのWebサイトはプレーンHTMLで記述されています。

  • XHTMLが何であるか、そしてそれをどのように使用するかを本当に理解している人はさらに少なかった。XHTMLを提供するふりをしたWebサイトが多すぎて、の代わりに間違ったヘッダーを使用していましたContent-Type: application/xhtml+xml

  • XHTMLが何であり、ヘッダーが何である必要があるかを完全に理解している場合でも、application/xhtml+xmlコンテンツタイプを受け入れない/サポートしない一部のくだらないブラウザーでは非常に注意が必要です。つまり、ブラウザに応じてヘッダーを変更する必要がありました。

  • XHTMLのXML部分も、開発者が解決しなければならない奇妙な状況を引き起こしました。1つはINVALID_STATE_ERR: DOM Exception 11、HTML文字(などé)を含むテキストをXHTMLページ内の要素に割り当てると表示されるメッセージです。AJAXリクエストを実行した後、大規模なWebアプリケーションで非常に役立つメッセージでこのエラーが発生した場合、それがJQuery、AJAX、または他の何かのせいであるかはまったくわかりません。

  • HTML 5コードを記述することは、タグをあちこちに混在させることを意味しません。XMLとXHTMLに興味がある場合でも、XMLに非常に近いHTML 5コードを作成できます。

  • 携帯電話の初期の頃、XHTMLはあまり強力ではないモバイルデバイスにとって興味深いものでした。XMLの解析はHTMLよりもはるかに簡単です。現在、デュアルコアモバイルデバイスでは、クリーンで有効なXMLを解析する必要があるか、ハッキングやタグが混在するダーティHTMLを解析する必要があるかは、実際には関係ありません。

2014年10月の仕様では、XHTML構文に言及しています。現時点では、(構文ではなく)新しいXHTML 言語のようなものがあるかどうか、もしあれば、XHTMLの位置はどうなるか、また主流のブラウザーによる新しいXHTML標準の採用は不明です。


11
あなたの答えが欠けている唯一のものは、ポリグロットマークアップ
-yannis

2
ただし、HTML5をXMLとして提供し、より厳密な構文の利点を得ることができます。
エリックReppen

3
@ErikReppenしかし、次のようなエンティティ参照の利点を失うことになります 
リスター氏

4
ひどい決断。XMLで利用可能だったXSLツールを破棄しました。
ミハイダニラ14年

5
この文は偽です。W3CはHTML5 のXHTMLを
ロブ

32

XHTML5 、「XMLとしてシリアル化されたHTML5」の同義語です。

この抽象言語を使用するリソースを送信するために使用できるさまざまな具体的な構文があり、そのうちの2つがこの仕様で定義されています。

...

2番目の具体的な構文は、XMLのアプリケーションであるXHTML構文です。ドキュメントがapplication / xhtml + xmlなどのXML MIMEタイプで送信されると、WebブラウザーによってXMLドキュメントとして扱われ、XMLプロセッサによって解析されます。著者は、XMLとHTMLの処理が異なることに注意してください。特に、わずかな構文エラーでさえ、XMLとしてラベル付けされたドキュメントが完全にレンダリングされるのを防ぎますが、HTML構文では無視されます。この仕様は、「XHTML 5」として知られるXHTML構文のバージョン5.0を定義しています。

また、HTML5ポリグロット(通常のHTML5とXMLの両方としてシリアル化できるページ)の記述に関する素晴らしいドキュメントがあります:

http://dev.w3.org/html5/html-polyglot/html-polyglot.html#bib-HTML5

そしてバリデーターですら!

http://html5.validator.nu/

基本的にまだHTML5ですが、まだそこにあるため、今日ではXHTML5と呼ばれることはめったにありません(そして、おそらくもっとめったに使用されません)。

簡単に言えば、HTML5仕様に対するすべての変更は、XHTML5に対する暗黙の対応する変更でもあります。


10

HTML5は事実上の標準であり標準です!標準としてXHTMLもあります。

HTML5-HTMLおよびXHTMLの語彙と関連API

W3C勧告2014年10月28日

標準のタイトルには文字列"and XHTML"が含まれているため、HTMLとXHTMLを1つの標準マージするという W3Cの最終決定について話しているところです。この標準は、HTMLファイルをXHTMLファイルにシリアル化する方法、およびその逆を示すものです。

XHTML 部品と重要事項:


理解と使用

LF Sikosがまとめたとおり

XHTML5は、HTML5のXMLシリアル化です。構文はHTML5仕様で記述されています。ただし、XHTML5はXMLのアプリケーションであるため、混乱しないでください。言い換えると、HTML5とXHTML5の語彙は同じですが、構文解析ルールが異なります。

HTML5ドキュメントも有効なXMLドキュメントである可能性があります。このマークアップは「ポリグロット」言語と呼ばれることがよくあります。同時にHTML5とXMLドキュメントであるドキュメントの重複言語です。HTML5とXHTML5のシリアル化には相互互換性があります。ただし、XHTML5の構文はより厳密です。さらに、XHTML5の一部は、処理命令など、HTML5では無効です。

したがって、厳密に言えば(そして@vaxquisによって強調されている)「XHTMLはXMLシリアル化のための単なる構文です」、DTDや他の種類のXMLスキーマはありません

「XHTML5はXHTMLです」と言ったくない人もいます。質問は、「いつXHTMLとして使用できるか」に関するミニFAQに分割する必要があります。これはWIKIです。「誤解」がある場合は修正してください...


よくある質問

XHTML5を「2014年版のXHTML標準」として使用できますか?

「完全で汎用的なHTML5からXHTML5 / XHTML5からHTML5への変換」にはいくつかの問題があり、「個人的な選択」を行い、情報を失う必要があります。コンテキストは異なる答えになるため:

  • ルーズな発言:はい。マッピングが完全で可逆的である(単純な)例がたくさんあります。

  • 厳密に言えば:いいえ。以下の@vaxquisコメントおよびこのページの古い回答も参照してください。いくつかの典型的な問題:

XSLT、XPathなどでXHTML5シリアル化を(大胆不敵です!)使用できますか?

はい、できます。フラグメントのシリアル化も。

XHTML5を検証できますか?

はい、しかしとても速く、古いDTDのより容易なことではない...と、複雑なバリデータを参照してくださいvalidator.nu

XSLTチェーンの非端末出力としてXHTML5を使用できますか?

はい、できます。できることを説明しましょう。

Cocoonなどの一部のフレームワークは、「XSLTチェーン」を使用します。HTML5およびXHTML5出力は「チェーンの最後の出力」として使用できます...もちろん、中間ステップでは、非XMLであるためHTML5は使用できませんが、XHTML5は使用できます。

ここで上記の検証の問題が再び発生します。強力な慣習がないため、「XHTML標準構造」の明確性低下する場合があります。そのような状況では、「自分自身の慣習」に注意を払い、一貫性を保つ必要があります。

HTML5ページのDOMDocumentを使用する場合、saveXML()メソッドを使用できますか?

はい。これは、シリアル化の推奨事項が使用される典型的な状況です。XMLは有効になり、XHTML5コードは元のHTML5およびDOM状態からマップされます...しかし、上記のコメントのように、一部の構造では、一部の情報が失われる可能性があります。


いや。XHTMLはHTML5のXMLシリアル化の構文にすぎません。これは、約1年前の回答ですでに取り上げたトピックです。XHTML 2.0を棚上げした後の初期のW3C / WHATWG HTML5ドラフトによって既に「マージ」されていたため、「マージ」はありません。ここでコンテキストを誤解しています。また、XPathとXSLTは問題に正接的にのみ関連しています。また、よく知られているMIMEタイプ「XHTMLパートおよび/またはノート」はどのようになっていますか?また、基本的にHTML XHTMLにシリアル化することはできません。提案された解決策は、「再シリアル化」ではなく、両方としてシリアル化するポリグロットを記述することです。
vaxquis

ハム... @vaxquis、わかりました、編集しました、助けてください。そして、ここで、コメントで、同じ言語で話しましょう。あなたは「厳密に話す」を使用し、私は導入部で「より広い」を使用しました...
ピータークラウス

9

はい、残念ながらXHTMLはなくなりました。

MainMaの素晴らしい答えにもう1つの理由を追加します:

XHTMLが作成されたとき、それはWebAppsによって使用され、タグスープHTMLパーサーを持たない非ブラウザソフトウェアによって理解される構造化コンテンツを提供することを意図していました。ScreenReaderの場合、XHTMLは依然として優れていますが、他の種類のソフトウェアの場合、WebServicesはそのニーズに適合し、主にXMLまたはJSONを使用します。SOAP自体には、XHTMLより単純で操作指向の独自のXMLスキーマがあります。

私が知っている限り、ブラウザと他のクライアントの両方に同じHTTPメッセージを提供するWebAppは世界に1つもありません。クライアントの好みに基づいて複数のコンテンツタイプのコンテンツの同じ表現を提供することを目的としたRESTアーキテクチャでさえ、XHTML /フィードブラウザの提供には使用されません。

たとえば、Java EEでは、Eclipseを使用して、Webサービスを提供するAxis2とともに、サーブレットを提供するユニークなwarファイルとHTMLを提供するJSPをデプロイできます。ブラウザーとWebServiceを対象とした個別のソフトウェアを開発する方が、それらすべてに対応する独自の複雑なソフトウェアを開発するよりも簡単です。

RESTが拒否される主な理由は、それについて何も知らずに、あらゆるタイプのクライアントに同じコンテンツを提供するサーバーを開発する複雑さです(そして、シンプルにすることを意図していました!)。また、XHTMLが変更されるたびにブラウザ以外のクライアントが強制的に更新されることのない安定した定義を維持するとともに、Webの高速進化のニーズに対応することも困難です。

同様に、XHTMLドキュメントを解析するブラウザー以外のクライアントを開発することは非常に困難です。たとえそれが有効であっても、ブラウザーでレンダリングされたレイアウトを構造化するためのものであり、コンテンツを保持するためのものではありません。

RESTの採用者がすでにSOAPのXMLの複雑さについて不満を言っている場合、これはブラウザー向けのXHTMLよりもはるかに単純です。

実際には、必要に応じてHTML、XMLなどを使用して、ブラウザー用のWebサイト、および非ブラウザークライアント用のあらゆる種類のWebServiceソリューションを構築します。

しかし、XHTML5を作成する必要もあると思います。XHTML 1.1(大丈夫、1.0、1.1は使用不可)はHTML5では時代遅れになりますが、HTML5の要素を受け入れ、XMLの整形式を検証するバリデーターが必要です。


1
たぶん私は少し遅れていますが、XHTML 1.1は1.0と比較して使用できないのですか?どちらかといえば、DTDにはさらに要素が含まれています。フレームセットなどについて話しているのでない限り、
ミスターリスター

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.