Extensible HyperText Markup Language

Extensible HyperText Markup Language(XHTML)は、SGMLで定義されていたHTMLをXMLの文法に基づいて再定義したマークアップ言語です。W3Cによって勧告されていましたが、2007年にW3C HTML WGが設立され、WHATWGとの共同作業を経て、2009年にW3Cは開発を正式に中止しました。HTML5では、XMLの書式に縛られずにMathMLやSVGなどを埋め込むことが可能です。

このため、XHTMLは開発が中止されており、この記事には古い情報が多く含まれています。しかしながら、HTMLを解釈するユーザーエージェント(Webブラウザなど)は引き続きXHTMLをサポートしています。

なお、「eXtensible HyperText Markup Language の略である」と誤解されることがありますが、正しくは「XはExの発音を表している」とされています。

HTMLとの相違点



XHTMLはXMLアプリケーションであるため、XMLの文法に従う必要があります。これにより、HTMLとは異なる点がいくつか存在します。以下に主な相違点と具体的な例を説明します。

XML宣言


XML文書であるため、文書の先頭にXML宣言を記述することが推奨されます。文字コードUTF-8またはUTF-16を使用するか、HTTPなどのプロトコルで指定されている場合は省略可能です。ただし、常に宣言を付与することが推奨されています。

xml
UTF-8"?>


要素名・属性名


XMLは大文字と小文字を区別するため、XHTMLでは要素名と属性名はすべて小文字で記述する必要があります。

html
正しい例 >

色は匂へど 散りぬるを


色は匂へど 散りぬるを



誤った例 >

色は匂へど 散りぬるを


色は匂へど 散りぬるを


色は匂へど 散りぬるを




終了タグ


すべての要素には、開始タグと終了タグが必要です。終了タグの省略はできません。

html
正しい例 >

色は匂へど 散りぬるを

我が世誰ぞ 常ならん



誤った例 >

色は匂へど 散りぬるを

我が世誰ぞ 常ならん


空要素の終了タグ


空要素にも終了タグを付与するか、開始タグの末尾を `/>` とする必要があります。`
` のように終了タグを付与する場合は、タグの間に空白を含めてはいけません。また、後方互換性のために `
` と表記することが推奨されています。

html
推奨される書き方 >
色は匂へど 散りぬるを


正しい例 >
色は匂へど 散りぬるを

色は匂へど 散りぬるを



誤った例 >
色は匂へど 散りぬるを

色は匂へど 散りぬるを




属性値


属性値はすべてダブルクォーテーション(")またはシングルクォーテーション(')で囲む必要があります。

html
正しい例 >




誤った例 >



属性名


属性名を省略することはできません。HTMLでは属性値を省略する例がありますが、XMLでは認められません。

html
正しい例 >


誤った例 >



メディアタイプ


推奨されるメディアタイプは `text/html` から `application/xhtml+xml` に変更されました。`text/html` はXHTML1.1以降では非推奨となっています。

html



`application/xhtml+xml` を使用する場合は、`meta` 要素の `http-equiv` 属性ではなく、HTTPヘッダでメディアタイプを指定することが推奨されています。

歴史



XHTML 1.0


HTML 4.01をXMLで再定義したもので、HTML 4.01と同様にStrict、Transitional、Framesetの3種類のDTDが存在します。2000年1月26日に勧告され、2002年8月1日に改訂版であるSecond Editionが勧告されました。

XHTML Basic


XHTMLのサブセットであり、PDAや携帯電話などの小規模な端末向けに開発されました。2000年12月19日にXHTML Basic 1.0が勧告され、その後、OMAが策定するXHTML Mobile Profileとの不整合を解消するため、2008年7月29日にXHTML Basic 1.1が勧告されました。

XHTML Basic 1.1では、`target`属性、`script`要素、`style`要素、`inputmode`属性などが追加されました。

XHTML Modularization


XHTMLの要素を目的や役割ごとに分割し、フレームワーク化したものです。XHTML 1.1やXHTML 2.0はこれをベースに構築されています。バージョン1.0は2001年4月10日に、バージョン1.1は2008年10月に勧告されました。

XHTML 1.1


機能がモジュール化されたXHTMLです。XHTML 1.0との主な違いは、機能のモジュール化、スキーマの統一(Strictスキーマのみ)、ルビモジュールの導入です。2001年5月31日に仕様が勧告され、2010年11月23日にXHTML 1.1 Second Editionが勧告されました。主な変更点はエラッタの修正とXML Schemaへの対応です。

XHTML 1.2


策定中のXHTML Role Module、Access Module、WAI-ARIAの語彙を組み込んだ新しいプロファイルとして策定される予定です。

XHTML 2.0


XHTML Familyの次期バージョンとして策定されていましたが、W3Cは2009年7月3日に策定を打ち切り、HTML5にリソースを集中することにしました。XHTML 2.0の市場がHTML5に比べて非常に小さいことが理由として挙げられています。

HTML5のXML構文


HTML5をXML構文で記述したものは、しばしばXHTML5と呼ばれますが、WHATWGの標準仕様ではこの用語は使用されていません。HTML5のXML構文はHTML5仕様の中で定義されており、HTML5の一部です。しかし、HTML5の仕様ではXML構文とHTML構文の違いが多く、一般的にはHTML構文によるもののみを「HTML5」と呼びます。

HTML構文とXML構文の違いは以下の通りです。

HTML構文では要素名は固定ですが、XML構文では名前空間が `http://www.w3.org/1999/xhtml` に属していれば接頭辞付きの要素名が許可されます。
HTML構文ではSVGやMathMLの限定的な拡張のみですが、XML構文では名前空間を用いて自由に拡張できます。
従来のHTML/XHTMLで許可されていたDTDを用いた文字参照HTML5では使用できません。

html
HTML構文 >

This is a paragraph.



XML構文 >


This is a paragraph.






関連項目



HTML
SGML
XML
CSS
EBML
XHTML MP

外部リンク



XHTML 1.0 The Extensible HyperText Markup Language
XHTML Basic 1.1
XHTML Basic
XHTML 1.1 - Module-based XHTML
XHTML 2.0 (Working Draft)
* W3C

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。