XHTML
1.0 (Recommendation), 1.1 (Recommendation), Basic 1.1 (Recommendation),
| 拡張子 | .xhtml、.xht、.html、.htm |
|---|---|
| MIMEタイプ | application/xhtml+xml |
| 開発者 | World Wide Web Consortium |
| 種別 | マークアップ言語 |
| 派生元 | XML、HTML |
| 国際標準 |
1.0 (Recommendation), |
| HTML |
|---|
XHTML (エックスエイチティーエムエル、Extensible HyperText Markup Language、エクステンシブル ハイパーテキスト マークアップ ランゲージ)は、SGMLで定義されていたHTMLをXMLの文法で定義しなおしたマークアップ言語である。その仕様はHTMLと同じくW3Cによって勧告されていた。しかし2007年にW3C HTML WGを設立するとWHATWGとの共同作業を行い、2009年、W3Cは開発を正式に中止した。HTML5はXMLの書式に従わずともMathMLやSVGなどを埋め込むことが可能である。
上述の通りXHTMLは開発が中止されており、この記事には古い内容を多分に含んでいる。しかしながら、HTMLを解釈するユーザーエージェント(Webブラウザなど)は、引き続きサポートしている。
なお、「eXtensible HyperText Markup Language の略である」とされることがあるが、これは間違いであり、XはExの発音を表している[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>我が世誰ぞ 常ならん
- 空要素の終了タグも書く
- 空要素についても同様に終了タグを付与するか、開始タグの末尾を「/>」としなければならない。
正: <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のヘッダでメディアタイプを指示することが必要となる。
歴史
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>
関連項目
脚注
- ^ "XML stands for Extensible Markup Language. The X is for the first syllable of Extensible. eXtensible is a spelling error." - ウェイバックマシン(2010年5月11日アーカイブ分)
- ^ C. HTML Compatibility Guidelines
- ^ W3C Note: XHTML Media Types <http://www.w3.org/TR/xhtml-media-types>
- ^ XHTML Media Types - W3C Note、2002年8月1日(2013年12月5日閲覧)。
- ^ HTML Living Standard — Last Updated 31 May 2021 §14 The XML syntax
外部リンク
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.