Extensible HyperText Markup Language
拡張子 | .xhtml、.xht、.html、.htm |
---|---|
MIMEタイプ | application/xhtml+xml |
開発者 | World Wide Web Consortium |
種別 | マークアップ言語 |
派生元 | XML、HTML |
国際標準 | 1.0 (Recommendation), 1.1 (Recommendation), |
HTML |
---|
![]() |
XHTML (エックスエイチティーエムエル, Extensible HyperText Markup Language)は、SGMLで定義されていたHTMLをXMLの文法で定義しなおしたマークアップ言語である。その仕様はHTMLと同じくW3Cによって勧告されている。
XMLを採用したため、MathMLやSVGなど他のXML文書を埋め込むことができるようになった。
ちなみに、「eXtensible HyperText Markup Language の略である」と書かれることがあるが、これは間違いであり、XはExの発音を表している[1]。
HTMLとの相違点
XHTMLは前述のとおりXMLアプリケーションである。よって、XMLの文法に従うために、HTMLと異なる部分が存在する。以下は、主な文法上の相違点とソースのサンプルである。
- XML文書であるため、XML宣言が必要である。文字コードについては、UTF-8ないしUTF-16の場合やHTTPなどのプロトコルで文字コードが指定されている場合は省略可能であるが、常に付与することが推奨される。
<?xml version="1.0" encoding="Shift_JIS"?>
- XMLでは大文字・小文字が厳密に区別される。XHTML勧告の場合、要素名・属性名は全て小文字でのみ定義されていることから、要素名・属性名は共にすべて小文字で表記しなければならない(なお、属性値はこの限りではない)。
正: <p id="aaa"><em>あああ</em></p> 誤: <P ID="aaa"><EM>あああ</EM></P>
- 要素は必ず開始タグと終了タグを備えていなければならない(終了タグの省略は許されない)。
正: <p><em>あああ</em></p><p>いいい</p> 誤: <p><em>あああ</em><p>いいい
- 空要素についても同様に終了タグを付与するか、開始タグの末尾を "/>" としなければならない。
正: <em>あああ</em><br />(推奨) 正: <em>あああ</em><br/> 正: <em>あああ</em><br></br> 誤: <em>あああ</em><br> 誤: <em>あああ</em><br> </br>
- 属性値はすべて " " (ダブルクォーテーション)ないし ' '(シングルクォーテーション)で囲まなければならない。
正: <input type="text" size="8" /> 正: <input type='text' size='8' /> 誤: <input type=text size=8 />
- 属性名記述を省略してはならない。
正: <input type="checkbox" checked="checked" /> 誤: <input type="checkbox" checked />
- 推奨されるメディアタイプが "text/html" から "application/xhtml+xml" に変更された[3]。また、HTMLで従来使用されていたtext/htmlは、XHTML1.1以降では非推奨となっている。
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=Shift_JIS" />
メディアタイプが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との不整合を解消する目的で策定された XHTML Basic 1.1が2008年7月29日に勧告された。
Basic1.1では、Basic1.0から次のような変更が行われている。
- target属性やscript/style要素、style属性の追加
- XFormsよりinputmode属性の追加
XHTML Modularization (Modularization of XHTML, M12n)
XHTMLをその要素の目的や役割ごとに分割し、フレームワーク化したもの。XHTML 1.1やXHTML 2.0は、M12nをベースに構築されている。バージョン1.0が2001年4月10日に、バージョン1.1が2008年10月にそれぞれ勧告された。2009年7月現在、バージョン2.0が草案の段階にある。 1.0から1.1ではXML Schemaへの対応などが変更点となった。
XHTML 1.1
機能がモジュール化されたXHTML。XHTML 1.0からの主な違いは、次の通りである。
- 機能がモジュール化され、カスタマイズ性が向上した。
- HTML 4.0以来複数あったスキーマが、従来のStrictスキーマの思想を基としたスキーマ1つのみとなった。
- ルビモジュールが導入された。
2001年5月31日に仕様が勧告となった。 2009年7月現在、XHTML 1.1 Second Editionが草案段階にある。エラッタの修正とXML Schemaへの対応が変更点となる。
XHTML 1.2
策定中であるXHTML Role ModuleやAccess Module、WAI-ARIAの語彙を組み込んだ新しいプロファイルとして策定予定。
XHTML 2.0
XHTML Familyの次期バージョンとして策定されていたが、W3Cは2009年07月03日に策定の打ち切りを決定し、今後はHTML5にリソースを注ぐものとした。理由として、XHTML 2の市場はHTML 5に比べて非常に小さいことがあげられている。
XHTML 5
HTML5仕様のサブセットとして策定される予定。