web-dev-qa-db-ja.com

結局のところ、なぜHTMLではなくXHTMLを選択するのでしょうか。

なぜHTMLではなくXHTMLを使用する必要があるのでしょうか。

XHTMLは「モジュール化」されているはずですが、サーバー側の言語がそれを利用するのを見たことはありません。

XHTMLもより厳密で、利点はわかりません。 XHTMLは何を必要としているのですか?それは私のコードをどのように「より良く」するのですか?

編集:私がコメントで見つけた別の質問:XHTMLはHTMLよりも速く解析されますか?

編集2:あなたのすべてのコメントとリンクを読んだ後、私は確かに別の投稿が正解であるに値することに同意するので、私は最高のソースに直接リンクする投稿を選びました。

また、人々はそれを読んでさえいないのに緑のコメントに賛成票を投じていることを示しに行きます。

72
KdgDev

Before of XHTML をお読みください。これは、HTMLに対するXHTMLの落とし穴のいくつかについて警告する有益な記事です。

私はそれを読むまで、XHTMLについてかなり熱心でしたが、それはいくつかの有効な点を作り出します。次のビットを含みます。

XHTML 1.xは「将来互換」ではありません。 XHTML 2は現在ドラフト段階にあり、XHTML 1.xとの下位互換性はありません。 XHTML 2では、ドキュメントの作成方法と構造化方法に多くの大きな変更が加えられています。サイトがすでにXHTML 1.1で作成されている場合でも、適切なXHTML 2に変換するには、通常、完全なサイトの書き換えが必要です。一部のセマンティクスは適切に変換されないため、ほとんどの場合、XSL変換では不十分です。

HTML 4.01は実際にはより将来の互換性があります。最新のサポートレベルで記述された有効なHTML 4.01ドキュメントは有効なHTML 5となり、HTML 5はブラウザー開発者とW3Cの注目の的となります。

一部のプロジェクトで作業する場合、将来の互換性は非常に大きくなる可能性があります。この記事は他にもいくつか良い点を述べていますが、私にとってそれが最も際立っていたと思います。

この記事をXHTMLに対する不満と誤解しないでください。著者はXHTMLの優れた点について話しますが、詳しく説明する前に、欠点を認識しておくことをお勧めします。

44
James McMahon

これをコメントとして他の投稿の1つに追加しようとしましたが、少し大きくなりすぎました。

ほとんどの人が欠けているように見える基本的な点は、XHTMLの背後にある目的です。 XHTML仕様を開発した主な理由の1つは、マークアップ内のプレゼンテーション関連タグの重要度を下げ、プレゼンテーションをCSSに任せることでした。この分離はプレーンHTMLで実現できますが、この動作は仕様では推奨されていません。

メタマークアップとプレゼンテーションを分離することは、「プログラム可能なWeb」の開発に不可欠な部分であり、SEOとスクリーンリーダー/テキストブラウザーへのアクセスを改善するだけでなく、Webサイトをより簡単に分析できるようになります。プログラムでアクセスします(多くの単純なケースでは、これにより、特定のAPIを開発する必要がなくなり、クライアント側のスクリプトで電話番号を簡単に識別できるようになります)。 WebページがXHTML仕様に準拠している場合、XML関連のツールやXPathなどを使用して簡単にトラバースできます。これは、Webサイトから特定の情報を抽出したい人にとって素晴らしいニュースです。

XHTMLは、それ自体で使用するために開発されたのではなく、他のさまざまなテクノロジーを使用して開発されました。プレゼンテーションにCSSを使用することに大きく依存しており、一般的なデータプレゼンテーションに標準化されたマークアップを提供するために、Microformats(好きか嫌いかを問わず)などの基盤を提供します。

XHTMLは取るに足らないものであり、過度に制限的で無意味であると考える群衆にだまされてはいけません...世界の95%が無視する/知らないように見える目的で作成されました。

必ずHTMLを使用してください。ただし、HTMLはそれが得意な用途に使用し、XHTMLを見る場合も同じアプローチをとってください。


解析速度に関して、XHTMLとHTMLの間で実際のドキュメントの解析にほとんど違いがないと思います。トレードオフは、純粋に、利用可能なマークアップを使用してドキュメントを説明する方法にあります。 XHTMLタグは、必要な属性や適切な終了などにより、長くなる傾向がありますが、ドキュメント自体に表示マークアップが必要になることはありません。そういうわけで、私はあなたが1つのタイプのAppleを非常にわずかに異なるタイプのAppleと比較することについて話していると思います...それらは異なりますが、(解析とレンダリングの観点から)何の結果にもなりそうにありません)必要なのは健康的で美味しいリンゴだけです。

37
James B

ウェブサイトの訪問者にとって、それはおそらく目に見える変化をもたらさないでしょう。さらに、XHTMLは、通常、少なくとも1つの広く普及したブラウザーがその処理方法を認識しておらず、その場合はtext/htmlとして提供する必要があるため(使用すると、無効なHTMLが生成されます)、さらに面倒です。

HTMLが人間に読まれるのではなく、自動化されたツールによって定期的に処理される場合は、XHTMLを使用することをお勧めします。その構造はより厳密で、XMLであるため(アプリケーションの観点から)解析がより簡単です。そのXMLはただし、本質的に解析は簡単です)。

それを除いて、私はそれを使用するための説得力のある理由は見ていません。 XHTMLは、HTMLのXML機能を利用するアプローチで作成されたものであり、基本的には「HTML 4にいくつかの厄介な副作用がある」(少なくともIMHO)です。

17
Joey

[〜#〜] html [〜#〜](HTML4 StrictまたはHTML5)を使用します。

  • HTMLはCSSを完全に利用でき、検証と解析を明確に行うことができます。構造と表示の分離はHTML4で行われ、XHTMLはそれを継続しただけです。

  • すべてのブラウザがHTMLをサポートしています。一部のブラウザーのみがXHTMLをサポートし、XHTMLをサポートするブラウザーは、多くの場合、HTMLに対してより成熟し、テストおよび最適化されたサポートを持っています(これは、ページの 小さな割合 がXMLモードを使用するという事実が原因です)。

  • IEおよびGoogleを気にする場合は、HTMLまたはXHTMLのサブセットとXHTML仕様の付録Cで定義されているHTMLを使用する必要があります。後者は両方の世界でほとんど最悪です。標準のXMLツールで生成され、XHTMLの新しい拡張メカニズムを使用できません。また、HTMLのみの拡張メカニズムよりも制限があります。

  • XHTML1.0は10年以上前になり、「Web1.0」時代に設計されました。W3Cの責任者が言ったように、 振り返ってみるとうまくいかず、より良いアプローチが必要です 。 W3C HTML5は、私たちが話すように作成され、今日使用されているWebアプリケーションのニーズに対応し、後方互換性が非常に優れています。

  • HTML5は、HTML4とXHTML1の間の多くのギャップを埋め(たとえば、インラインSVG、MathML i RDFを追加)、XHTML1.0とXHTML1.1で行われたものを超えて言語をクリーンアップします。

  • XHTML2は近い将来、Webブラウザーでサポートされなくなります。 neverがサポートされる可能性があります(すべてのブラウザーベンダーが[X] HTML5を強くサポートしていますが、XHTML2を実装しないことをすでに宣言している人もいます)。


XHTML1.0には正確に HTML4.01と同じセマンティクスと構造からのプレゼンテーションの分離があります。他に誰もが言う 仕様を読んでいない 。私は誰もが仕様を読むことをお勧めします-それは驚くほど短くて面白くないです。

  • スタイルシートはHTML4.01で導入され、XHTML1.0ではnotが変更されました。
  • プレゼンテーション要素はHTML4.01では廃止され、XHTML1.0ではnotが削除されました。

XHTMLの神話


HTMLとXHTMLには、1つの構文解析を他の構文解析よりもはるかに遅くするような扱いにくい違いはありません。パーサーの実装方法によって異なります。

  • SGMLとXMLの両方のパーサーは、エンティティを理解するためにDTD全体をロードして解析する必要があります。これだけでは通常、ドキュメント自体の解析よりも多くの作業が必要です。 HTMLパーサーは、ほとんど常に「チート」し、ハードコードされたエンティティと要素情報を使用します。ブラウザのXHTMLパーサーも不正行為をします。
  • HTMLの解析には、暗黙の開始タグと終了タグの処理が必要であり、実際のHTMLでは、誤って配置されたタグを処理するための追加の作業が必要です。
  • XHTMLを適切に解析するには、XML名前空間を追跡する必要があります。
  • Draconian XMLルールでは、すべての文字が適切にエンコードされているかどうかをチェックする必要があります。 HTMLパーサーはこれでうまくいくかもしれませんが、OTOHは<meta>を探す必要があります。

ドキュメントのダウンロード、DOMの構築、スクリプトの実行、CSSの適用など、ブラウザが実行する必要のあるすべての時間に比べて、解析コストの全体的な違いはわずかです。

13
Kornel

ここでのすべての回答がHTMLよりもXHTMLを推奨することに驚いています。私は反対の意見を固く信じています。近い将来、XHTMLを使用するべきではありません。理由は次のとおりです。

  • ブラウザがXHTMLを解釈することはありませんas XHTMLをMIMEタイプapplication/xhtml+xmlとして提供しない限り、XHTMLは解釈されません。デフォルトのmimetypeでそれを提供するだけの場合、すべてのブラウザはそれをHTMLとして解釈します-たとえば、閉じられていない、または不適切にネストされた要素を受け入れます。

  • ただし、Internet Explorerがapplication/xhtml+xmlを認識せず、ページを完全にレンダリングできないため、実際にdoこれを行うことはできません。

  • XHTMLとHTMLのDOMには大きな違いがあります。現在、いわゆるXHTMLページはすべてHTMLとして提供されているため、すべてのJavaScriptコードはHTML DOMを使用して記述されています。 XHTML mimetypeのサポートが十分に重要になり、それを使い始めるように人々を説得する場合、たとえページがXHTMLとして検証されると考えていても、ほとんどのJavaScriptコードは壊れます。

11
Daniel Roseman

HTML 4.01 StrictとXHTML Strictを議論し続ける代わりに、今日HTML 5を使い始めることをお勧めします。 jqueryの作者であるJohn Resig 昨年同様の提案を行った が彼のブログに投稿した。

HTML 5 doctypeは、その美しいシンプルさにより、すべてのブラウザー(IE6を含む)で標準モードをトリガーします。

<!DOCTYPE html>

それでおしまい。

HTML 5は、<canvas>タグなどのいくつかのエキサイティングな新機能を提供し、JavaScriptアプリケーション開発を次のレベルにプッシュできる可能性があります。 HTML 5はまた、<video>および<audio>タグの形式でメディアを適切にサポートします(メディアは最近のWebのかなり重要な側面です!)。

XHTMLの構文、つまり<br />などの「空」のタグを閉じるのが好きな場合は、HTML 5で完全にサポートされています。W3Cの投稿のKarl Dubostから HTML 5の書き方を学ぶ

自動終了タグが許可され、HTML 5に準拠しています。

XHTML2はHTML 5と比較してほとんど注目されていません。HTML5がWeb上のマークアップの未来であることはますます明らかになっています。 Microsoftの最新のブラウザーであるIE8stillは、text/xmlとして提供されるXHTMLをtext/htmlとしてレンダリングします。

マイクロソフトはW3C HTMLワーキンググループの共同議長を務めており、HTML 5に対する暗黙のサポートがあります。すべてのブラウザーベンダーがHTML 5のサポートを公式に発表しています。

結局のところ、XHTML2が業界からの支持を取り戻したとしても、これまでのように2つの標準が競合することは大きな問題にはなりません。どちらの言語もXML名前空間をサポートしています(HTML 5の場合、HTMLのシリアル化、つまりDOCTYPE切り替え)。

5
Bayard Randel

http://www.w3.org/MarkUp/2004/xhtml-faq#need をご覧ください。モジュール化以外にもいくつかの理由があります。

XHTMLはより厳格でより明確にレイアウトされているため、私はXHTMLを支持しています。 HTMLは風変わりで、ブラウザは<b><i>sadasd</b></i>のようなものを受け入れる必要があります。これは非常に単純な例ですが、さらに混乱する可能性があり、ブラウザーによってレイアウトが異なる場合があります。

また、ブラウザーはそのような「修復」を行う必要がないため、XHTMLは「高速」である必要があると思います。

4
lx.

いくつかの違いは次のとおりです。

  • XHTMLタグは適切にネストする必要があります
  • ドキュメントには1つのルート要素が必要です
  • XHTMLタグは常に小文字です
  • タグは常に閉じる必要があります(たとえば、XHTMLで<br>タグを使用するには、XHTMLで<br />または<br></br>を閉じる必要があります)

ここにいくつかのリンクがあります

wiki XHTML

wiki HTML vs XHTML

3
kevchadders

XHTMLでは、XML用に設計されたすべてのツールを使用できます。その中には、XSLT、SVGの埋め込みなどがあります...

2
Pierre

プログラマーとしては、コードを非常に気にする必要があります。 HTMLは醜く、いくつかのルールに従います。

一方、XHTMLはHTMLを適切な言語に変換し、厳密な構造的および構文的規則に従います。

XHTMLは、すべてのブラウザ(すべてのブラウザ)がWebページの表示方法に同意できるようになるまでWebを移動するのに役立つため、誰にとっても優れています。

XHTMLはXMLの子孫であり、構文的に適切なXMLドキュメントを分析するために構築されたパーサーでは、はるかに簡単です。

XHTMLの利点がわからない場合は、MS Wordを使用してHTMLドキュメントを作成している可能性もあります。

2
Antony Carthy

興味深い開発: XHTML 2ワーキンググループは2009年末に作業を停止する予定、W3CはHTML 5のリソースを増やす

2009-07-02:本日、ディレクターは、XHTML 2ワーキンググループのチャーターが2009年末に予定された期限が切れると、チャーターが更新されなくなることを発表します。そうすることで、またワーキンググループのリソースを増やすことで、W3CはHTML 5の進歩を加速させ、HTMLの将来に関するW3Cの立場を明らかにしたいと考えています。 A FAQは、XHTML 2ワーキンググループの成果物の将来に関する質問、およびHTMLに関連するさまざまなディスカッションのステータスに回答します。HTMLアクティビティの詳細をご覧ください。

まあ、それはHTMLの将来をかなりはっきりさせると思います。

2
Alec

XHTML 1.0勧告のサブタイトル:

XML 1.0におけるHTML 4の再定式化

今日、XMLを処理するための多くのツールが存在します。 XHTMLを使用することで、膨大な数のツールを使用してページを操作し、プログラムで情報を抽出することができます。

HTMLを使用する場合、これも可能です。 HTML DOMツリーを解析するためのツールが存在します。ただし、これらのツールは多くの場合、XMLのツールよりも専門的です。 HTMLと互換性のあるお気に入りのXMLデータ処理ツールが見つからない場合があります。さらに、今日ではXMLの用途が非常に多いため、アプリケーションの他の部分にXMLを使用している場合があります。同じXMLパーサーを使用してWebページを解析しないのはなぜですか。これがXHTMLの背後にある動機です。

HTML 4.01に既に慣れていて、HTML 4を使用するプロジェクトが確立されていて、時間に余裕がない場合は、HTML 4.01を使用してください。時間があれば、とにかくXHTML 1.1について学び、XHTML 1.1で新しいプロジェクトを開始してください。そうすることに害はありません。 HTML 4.01以外を使用している場合や、いずれにしてもHTML 4に慣れていない場合は、XHTML 1.1について学んでください。

1
Wesley

正しいDocTypeでXHTMLを使用すると、ブラウザーはより標準に準拠した(厳密な)モードでコンテンツをレンダリングします。これにより、さまざまなブラウザーの動作が向上し、最も重要なのは、互いに似た動作になることです。これにより、すべてのブラウザーでコンテンツの外観を同じにするために必要なブラウザー固有の微調整の量が減るため、Web開発者としての仕事がはるかに簡単になります。

Quirksmode.org には、この問題に関する優れた情報がたくさんあります。

1

XHTMLはあなたをきちんとすることを強制します。

たとえば、HTMLでは次のように記述できます。

<img src="image.jpg">

imgタグが閉じられないため、これはあまり論理的ではありません。ただし、XHTMLでは、次のようにタグをきちんと閉じる必要があります。

<img src="image.jpg" />

きちんと整理されたものを使うのが好きです。

スティーブ

1
Steve Harrison

XHTMLを使用する

  • Fails fast。不整合がある場合は、検証中に検出されます。
  • これは、セマンティックマークアップをプレゼンテーションなどから分離することでbetter designを促進します.
  • それは構造化されていますこれは、データオブジェクトとして扱い、あらゆる種類のクエリを実行できることを意味します。たとえば、ウェブサイト内のすべてのアドレスまたは引用を検索できます。
  • ビルド時の最適化を実行できます。整形式のXMLであるため、ビルド時に検索/置換操作を簡単に行うことができます。または、ドキュメントの管理と操作。
  • XSLTまたは他の変換スクリプトを記述して、他のプラットフォーム用にXHTMLをプログラムで変換できます。たとえば、すべてのXHTMLを変換してiPhoneと互換性を持たせるか、よりユーザーフレンドリーにするXSLTをiPhone用に使用できます。
  • あなたは将来の証明自分です。 XHTMLを新しいセマンティクスに変換することも、変換を使用して非常に簡単です。
  • 検索エンジンは、進化していき、programmable webの一部としてより多くのセマンティック情報を収集します。
  • DOM操作は構造化されているため、信頼性が高くなります。
  • アルゴリズムの観点から、それはより簡単でより速い解析をもたらします。
0
aleemb

XHTMLの方が解析が速い(または高速であるべき)と思います。有効なXHTMLドキュメントは、解析時にエラーが致命的になるため、より厳密な仕様で記述する必要がありますが、HTMLはより寛大であり、コメントの前に記載されている奇妙な終了タグなどの奇妙さを許容します。これは、HTML解析とXHTML解析の違いを明らかにするのに役立ちました。

http://wiki.whatwg.org/wiki/HTML_vs._XHTML#Parsing

XHTML over HTMLを使用する理由は、オーディエンスの一部としてモバイルユーザーを含める場合です。思い出すと、多くの携帯電話は、HTMLパーサーではなく、XMLパーサーを使用してWebを表示しています。デスクトップブラウザ用に作成している場合、HTMLはおそらく許容されます。

それでも、データをtext/htmlとして提供する場合は、HTMLを使用する必要があります。

http://www.hixie.ch/advocacy/xhtml

0
cm2

XHTMlは、スクリーンリーダーが画像とリンクタグのaltとtitle部分を必要とするため、有効なコードが必要な場合は無効なコミュニティに何らかの支援を提供する必要があるため、使用するのに適したポイントです。 HTMLとは異なり、タグが正しく閉じられていないか、正しくネストされているかなどをパーサーが確認する必要がないため、ある程度まで解析する方が高速である必要があります。また、厳密であるため、使用することをお勧めします。しかし、プログラミング言語の学習に関しては、(私の意見では)より論理的に考えるのに役立ちます。

0
Marc Towler

私の意見では、厳密さは少なくとも理論的には良いことです。なぜなら、HTMLでは厳密である必要はなく、それとHTML5のジャンクのために、ブラウザーには最高のエラー修正アルゴリズムが備わっているからです。壊れたHTMLから。問題は、アルゴリズムがまったく同じではなく、予測できない非常に奇妙な動作につながることです。一方、XHTMLを使用すると、通常は適切で有効なXHTMLが得られるため、エラー修正アルゴリズムは必要ありません。つまり、ブラウザの動作全体が予測可能です。さらに、厳密なコードを使用すると、ツールでコードを操作しやすくなります。したがって、実際にはXHTMLを使用しても失うものは何もありませんが、得る可能性がいくつかあります。 HTML5がようやくリリースされると、プレーンHTMLで事態が悪化し、「受け入れるものでオープンになる」と記述された奇妙な動作が発生します。しかし、少なくともそれは標準化された奇妙な振る舞いです。はぁ。

一方、Visual Studioのように優れたIDEを使用する場合、とにかく壊れたHTMLコードを生成することはほとんど不可能であるため、結果は同じです。

0
OregonGhost