Extensible HyperText Markup Language

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
各種項目
比較
  • マークアップ言語(英語版)
  • HTML(英語版)
  • XHTML(英語版)

Extensible HyperText Markup Language(エクステンシブル ハイパーテキスト マークアップ ランゲージ)、略記・略称:XHTML (エックスエイチティーエムエル)は、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:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xml:lang="ja">
  <xhtml:head>
    <xhtml:title xml:id="title">XML名前空間を用いた拡張例(xml:id)</xhtml:title>
    <xhtml:script><![CDATA[ ... ]]></xhtml:script>
  </xhtml:head>
  <xhtml:body>
    <xhtml:p> ... </xhtml:p>
  </xhtml:body>
</xhtml:html>

関連項目

脚注

[脚注の使い方]
  1. ^ "XML stands for Extensible Markup Language. The X is for the first syllable of Extensible. eXtensible is a spelling error."
  2. ^ C. HTML Compatibility Guidelines
  3. ^ W3C Note: XHTML Media Types <http://www.w3.org/TR/xhtml-media-types>
  4. ^ XHTML Media Types - W3C Note、2002年8月1日(2013年12月5日閲覧)。
  5. ^ HTML Living Standard — Last Updated 31 May 2021 §14 The XML syntax

外部リンク

ウィクショナリーに関連の辞書項目があります。
XHTML
  • 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
W3C標準
製品・標準
推奨
勧告候補
  • Web Workers(英語版)
作業草稿
覚書
  • XAdES
  • XHTML+SMIL(英語版)
方針
発案
廃止
  • C-HTML
  • HDML
  • JSSS(英語版)
  • PGML(英語版)
  • VML
  • Web SQL Database(英語版)
団体
  • World Wide Web Consortium
  • World Wide Web Foundation(英語版)
  • SVG Working Group(英語版)
  • WebOnt(英語版)
  • W3C Device Description Working Group(英語版)
  • WHATWG
ソフトウェア
関連会議
  • IW3C2(英語版)
  • World Wide Web Conference(英語版)
  • WWW1(英語版)
カテゴリ Category:W3C勧告
オフィススイート・文書
Web
組版
軽量
データ記述
その他の言語
  • AmigaGuide(英語版)
  • CML(英語版)(化学)
  • Crossmark(英語版)
  • DITA
  • eLML(英語版)
  • EAD(英語版)
  • Enriched text(英語版)(電子メール)
  • GuideML(英語版)
  • HyTime(英語版)
  • IPF(英語版)
  • LilyPond(楽譜)
  • LinuxDoc(英語版)
  • Lout(英語版)
  • MIF(英語版)
  • MAML(英語版)
  • MathML
  • MEI(英語版)
  • MusicXML
  • OMDoc(英語版)
  • OpenMath(英語版)(数式)
  • RTML(英語版)
  • RFT(英語版)
  • S1000D(英語版)
  • troff
スタブアイコン

この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。

  • 表示
  • 編集
典拠管理データベース ウィキデータを編集
全般
  • FAST
国立図書館
  • スペイン
  • フランス
  • BnF data
  • ドイツ
  • イスラエル
  • アメリカ