コンテンツにスキップ
Wikipedia

XHTML

出典: フリー百科事典『ウィキペディア(Wikipedia)』
XHTML
拡張子 .xhtml、.xht、.html、.htm
MIMEタイプ application/xhtml+xml
開発者 World Wide Web Consortium
種別 マークアップ言語
派生元 XMLHTML
国際標準

1.0 (Recommendation),
1.1 (Recommendation),
Basic 1.1 (Recommendation),

2.0 (Working Draft)
テンプレートを表示
HTML

XHTML (エックスエイチティーエムエル、Extensible HyperText Markup Language、エクステンシブル ハイパーテキスト マークアップ ランゲージ)は、SGMLで定義されていたHTMLXMLの文法で定義しなおしたマークアップ言語である。その仕様はHTMLと同じくW3Cによって勧告されていた。しかし2007年にW3C HTML WGを設立するとWHATWGとの共同作業を行い、2009年、W3Cは開発を正式に中止した。HTML5はXMLの書式に従わずともMathMLSVGなどを埋め込むことが可能である。

上述の通りXHTMLは開発が中止されており、この記事には古い内容を多分に含んでいる。しかしながら、HTMLを解釈するユーザーエージェント(Webブラウザなど)は、引き続きサポートしている。

なお、「eXtensible HyperText Markup Language の略である」とされることがあるが、これは間違いであり、XExの発音を表している[1]

HTMLとの相違点

[編集 ]

XHTMLはXMLアプリケーションである。よって、XMLの文法に従うために、HTMLと異なる部分が存在する。以下は、主な文法上の相違点とソースのサンプルである。

XML宣言を書く
XML文書であるため、文書の頭にXML宣言を書くことが奨励されている。文字コードについては、UTF-8ないしUTF-16の場合やHTTPなどのプロトコルで文字コードが指定されている場合は省略可能であるが、常に付与することが推奨される。
<?xml version="1.0" encoding="UTF-8"?>
要素名・属性名は小文字で書く
XMLでは大文字・小文字が厳密に区別される。XHTML勧告の場合、要素名・属性名は全て小文字でのみ定義されていることから、要素名・属性名は共にすべて小文字で表記しなければならない(なお、属性値はこの限りではない)。
正: <p id="iroha">色は匂へど 散りぬるを</p>
正: <p id="IROHA">色は匂へど 散りぬるを</p>
誤: <p ID="iroha">色は匂へど 散りぬるを</p>
誤: <P id="iroha">色は匂へど 散りぬるを</P>
誤: <P ID="iroha">色は匂へど 散りぬるを</P>
要素の終了タグを書く
要素は必ず開始タグと終了タグを備えていなければならない(終了タグの省略は許されない)。
正: <p>色は匂へど 散りぬるを</p><p>我が世誰ぞ 常ならん</p>
誤: <p>色は匂へど 散りぬるを<p>我が世誰ぞ 常ならん
空要素の終了タグも書く
空要素についても同様に終了タグを付与するか、開始タグの末尾を「/>」としなければならない。
  • 終了タグを付与する <br></br> という表記の場合は、タグの間に空白類文字すら含めてはいけない。また、後方互換性のために <br></br> ではなく、<br /> と表記することが推奨されている[2]
  • XMLを解釈できない古いUAで <br/> という表記に対し、"br/" を要素名とみなし無視してしまう可能性があることを考慮し、XHTMLでは <br /> のようにスラッシュの前に半角スペースを先行させる表記が一般的である。
正: <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=text size=8 />
属性名を省略せず書く
属性名を省略してはならない。なお、これらを属性値の省略という例が存在するが、SGMLやXMLの観点からは正しいとはいえない。
正: <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属性の使用は非推奨となる[4] 。代わりにHTTPのヘッダでメディアタイプを指示することが必要となる。

HTML要素#HTML構文とXML構文との違いも参照。

歴史

[編集 ]

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日に仕様が勧告となった。 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年07月03日に策定の打ち切りを決定し、今後はHTML5にリソースを注ぐものとした。理由として、XHTML 2.0の市場はHTML5に比べて非常に小さいことがあげられている。

HTML5のXML構文

[編集 ]

HTML5をXML構文で記述したものは、しばしばXHTML5と呼ばれるが、WHATWG の標準仕様の中ではこの語は用いないことが明言されている[5]

HTML5をXML構文で記述するための仕様も、HTML5仕様の中で定義されている。そのため、HTML5のXML構文はHTML5の一部である。しかし、HTML5の仕様ではXML構文とHTML構文の間には違いが多く、単に「HTML5」「HTML5ドキュメント」と言う場合には、HTML構文によるもののみを指すことが多い。そのため、実用上はHTML5のXML構文はHTML5と別のものとして扱われることがある。

以下にHTML構文とXML構文の違いをいくつか挙げる。

  • HTML構文の場合は要素名は固定だが、XML構文の場合は要素の名前空間が "http://www.w3.org/1999/xhtml" に属していれば接頭辞付きが許される(XHTML1.x以前には、文書型宣言にモジュールを追加することで接頭辞を付けることを可能としていたが、基本的には許されなかった)
  • HTML構文では限定的なSVG, MathMLの拡張しか行えないが、XML構文では名前空間を用いて制限なく拡張ができる(以下の例ではxml:id属性を利用している)
  • 従来のHTML/XHTMLで許されていたDTDを用いた文字参照が不可能となった(HTML5はもはやSGMLに基づいていない)。

上記のような違いによってHTML構文と見た目が大きく異なるXML構文の文書として、以下のような例が考えられる。

<?xml version="1.0" encoding="UTF-8"?>
<!-- これは妥当なHTML5のXML構文。ただしHTML構文との互換性はない -->
<?xml-stylesheet type="text/css" href="test.css"?><!-- 左のようなXML処理命令も書ける -->
<!-- この場合、ルート要素がxhtml:htmlのため、通常のHTML5のように "<!DOCTYPE html>" という文書型宣言は行えない -->
<xhtml:htmlxmlns:xhtml="http://www.w3.org/1999/xhtml"xml:lang="ja">
<xhtml:head>
<xhtml:titlexml:id="title">XML名前空間を用いた拡張例(xml:id)</xhtml:title>
<xhtml:script><![CDATA[ ... ]]></xhtml:script>
</xhtml:head>
<xhtml:body>
<xhtml:p>...</xhtml:p>
</xhtml:body>
</xhtml:html>

関連項目

[編集 ]

脚注

[編集 ]

外部リンク

[編集 ]
ウィクショナリーに関連の辞書項目があります。
W3C標準
製品・標準
推奨
勧告候補
作業草稿
覚書
方針
発案
廃止
団体
ソフトウェア
関連会議
カテゴリ Category:W3C勧告

AltStyle によって変換されたページ (->オリジナル) /