HTMLとXHTML

HTMLXHTMLはどちらもWebページが記述される言語です。 HTMLはSGMLベースですが、XHTMLはXMLベースです。 彼らは同じコインの両面のようです。 XHTMLは、XML標準に準拠するためにHTMLから派生しました。 したがって、XHTMLはHTMLと比較して厳密であり、ユーザーがコーディングや構造の不備を回避することはできません。

XHTMLが開発された理由は、複雑なブラウザー固有のタグです。 HTMLでコーディングされたページは、ブラウザによって異なるように見えました。

比較表

HTML対XHTML比較チャート
HTML XHTML
はじめに(ウィキペディアから)HTMLまたはハイパーテキストマークアップ言語は、Webブラウザーで表示できるWebページやその他の情報を作成するための主要なマークアップ言語です。XHTML(Extensible HyperText Markup Language)は、広く使用されているWebページの記述言語であるHypertext Markup Language(HTML)のバージョンをミラーリングまたは拡張するXMLマークアップ言語のファミリです。
ファイル名拡張子.html、.htm.xhtml、.xht、.xml、.html、.htm
インターネットメディアタイプtext / htmlapplication / xhtml + xml
によって開発されましたW3CおよびWHATWGワールドワイドウェブコンソーシアム
フォーマットの種類文書ファイル形式マークアップ言語
から拡張SGMLXML、HTML
を意味するハイパーテキストマークアップ言語拡張可能なハイパーテキストマークアップ言語
応用標準汎用マークアップ言語(SGML)の適用。XMLの応用
関数WebページはHTMLで記述されています。より厳密でXMLベースのHTMLの拡張バージョン。
自然寛容なHTML固有のパーサーを必要とする柔軟なフレームワーク。XMLの制限的なサブセットであり、標準のXMLパーサーで解析する必要があります。
原点ティムバーナーズリーが1987年に提案。2000年のWWWコンソーシアム勧告。
バージョンHTML 2、HTML 3.2、HTML 4.0、HTML 5。XHTML 1、XHTML 1.1、XHTML 2、XHTML 5。

HTMLおよびXHTMLの概要

HTMLは、Webページの主要なマークアップ言語です。 HTMLは、見出し、リスト、リンク、引用などのテキストの構造セマンティクスを示すことにより、構造化文書を作成します。画像やオブジェクトを埋め込んでインタラクティブなフォームを作成できます。 それは山括弧で囲まれたタグとして書かれています-例えば、 。 JavaScriptなどの言語のスクリプトもロードできます。

XHTMLは、HTMLのバージョンを拡張またはミラー化するXML言語のファミリです。 タグの省略や属性の最小化の使用は許可されていません。 XHTMLでは、すべての開始タグに終了タグが必要であり、ネストされたタグはすべて正しい順序で閉じる必要があります。 たとえば、

HTMLで有効な場合は、記述する必要があります

HTML対XHTMLドキュメントの機能

HTMLドキュメントは、3つのコンポーネントを持つ要素で構成されます-要素タグのペア-開始タグ、終了タグ。 タグ内の要素属性、および実際のテキストコンテンツとグラフィックコンテンツ。 HTML要素は、タグの間にあるすべてのタグです。 (タグは山括弧で囲まれたキーワードです)。

XHTMLドキュメントにはルート要素が1つしかありません。 変数を含むすべての要素は小文字でなければならず、割り当てられた値は引用符で囲み、閉じて認識されるようにネストする必要があります。 これは、オプションのHTMLとは異なり、XHTMLの必須要件です。 DOCTYPEの宣言により、従うドキュメントのルールが決まります。

ドキュメントのさまざまな開始宣言は別として、HTML 4.01ドキュメントとXHTML 1.0ドキュメントの違い(対応する各DTDの違い)は大部分が構文上のものです。 HTMLの基礎となる構文では、オプションの開始タグまたは終了タグを持つ要素や、終了タグを持ってはならないEMPTY要素など、XHTMLにはない多くのショートカットを使用できます。 対照的に、XHTMLでは、すべての要素に開始タグまたは終了タグが必要です。 ただし、XHTMLには新しいショートカットも導入されています。XHTMLタグは、次のようにタグの最後にスラッシュを含めることで、同じタグ内で開閉できます。

。 HTML 4.01のSGML宣言では使用されていないこの略記の導入は、この新しい規約になじみのない以前のソフトウェアを混乱させる可能性があります。 これを修正するには、次のように、タグを閉じる前にスペースを含めます。

XHTMLとHTMLの仕様

HTMLとXHTMLは密接に関連しているため、一緒にドキュメント化できます。 HTML 4.01とXHTML 1.0の両方には、strict、loose、framesetの3つのサブ仕様があります。 ドキュメントのオープン宣言の違いにより、HTMLとXHTMLが区別されます。 その他の違いは構文です。 HTMLでは、オプションのタグを持つ要素、終了タグのない空の要素などのショートカットを使用できます。 XHTMLはタグの開始と終了について非常に厳密です。 XHTMLは、機能属性を定義する組み込み言語を使用します。 XMLの構文要件はすべて、整形式のXHTMLドキュメントに含まれています。

ただし、これらの違いは、XHTMLドキュメントがXMLのアプリケーションとして提供される場合にのみ適用されることに注意してください。 つまり、application / xhtml + xml、application / xml、またはtext / xmlのMIMEタイプを使用します。 MIMEタイプtext / htmlで提供されるXHTMLドキュメントは解析され、HTMLとして解釈される必要があるため、この場合はHTMLルールが適用されます。 MIMEタイプがtext / htmlで提供されるXHTMLドキュメント用に記述されたスタイルシートは、ドキュメントがMIMEタイプがapplication / xhtml + xmlで提供される場合、意図したとおりに機能しない場合があります。 MIMEタイプの詳細については、MIMEタイプを必ずお読みください。

これは、XHTMLドキュメントをtext / htmlとして提供する場合に特に重要です。 違いに気付いていない限り、ドキュメントが実際のXHTMLとして提供されている場合、意図したとおりに機能しないスタイルシートを作成できます。

このセクションの残りの部分で「XHTML」および「XHTMLドキュメント」という用語が使用されている場合、それらはXML MIMEタイプで提供されるXHTMLマークアップを指します。 ブラウザに関する限り、text / htmlとして提供されるXHTMLマークアップはHTMLドキュメントです。

HTMLからXHTMLに移行する方法

W3Cが推奨するように、HTMLからXHTML(XHTML 1.0ドキュメント)への移行については、次の手順に従うことができます。

  • 言語を割り当てる要素にxml:langおよびlang属性を含めます。
  • HTMLで空として指定された要素で空要素構文を使用します。
  • 空要素タグに余分なスペースを含めます。
  • コンテンツを持つことはできるが空の要素には、閉じるタグを含めます。
  • XML宣言を含めないでください。

互換性に関するW3Cのガイドラインに注意深く従って、ユーザーエージェント(Webブラウザー)は、HTMLまたはXHTMLと同等の容易さでドキュメントを解釈できる必要があります。

XHTMLからHTMLに移行する方法

HTMLとXHTMLの微妙な違いを理解するには、有効で整形式のXHTML 1.0文書を有効なHTML 4.01文書に変換することを検討してください。 この翻訳を行うには、次の手順が必要です。

  • 要素の言語は、XHTML xml:lang属性ではなくlang属性で指定する必要があります。 XHTMLは、XMLに組み込まれた言語定義機能属性を使用します。
  • XML名前空間( xmlns=URI )を削除します。 HTMLには名前空間の機能はありません。
  • ドキュメントタイプ宣言をXHTML 1.0からHTML 4.01に変更します。
  • 存在する場合は、XML宣言を削除します。 (通常、これは次のとおりです。 )。
  • 文書のMIMEタイプがtext/html設定されていることを確認してください。 HTMLとXHTMLの両方で、これはサーバーから送信されたHTTP Content-Typeヘッダーから取得されます。
  • XMLの空要素構文をHTMLスタイルの空要素に変更します(

    )。

関連記事