0x0b
xhtml
最終更新:
Bot(ページ名リンク)
-
view
XHTML(Extensible HyperText Markup Language)
SGMLで定義されていたHTMLをXMLの文法で定義しなおしたマークアップ言語
仕様はW3Cによって勧告
MathMLやSVGなど他のXML文書を埋め込むことができる
仕様はW3Cによって勧告
MathMLやSVGなど他のXML文書を埋め込むことができる
バージョン
XHTML 1.0 The Extensible HyperText Markup Language
HTML 4.01をXMLにて再定義したもので、HTML 4.01と同様にStrict、Transitional、Framesetという3種類のDTDが存在する。
XHTML Basic 1.1
XHTML Basic 1.1
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属性の追加
その後、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 - Module-based XHTML
機能がモジュール化されたXHTML。XHTML 1.0からの主な違いは、次の通りである。
機能がモジュール化され、カスタマイズ性が向上した。
HTML 4.0以来複数あったスキーマが、従来のStrictスキーマの思想を基としたスキーマ1つのみとなった。
ルビモジュールが導入された。
2001年5月31日に仕様が勧告となった。 2010年11月23日にXHTML 1.1 Second Editionが勧告された。エラッタの修正とXML Schemaへの対応が主な変更点となる。
機能がモジュール化され、カスタマイズ性が向上した。
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 (Working Draft)
XHTML Familyの次期バージョンとして策定されていたが、W3Cは2009年07月03日に策定の打ち切りを決定し、今後はHTML5にリソースを注ぐものとした。理由として、XHTML 2の市場はHTML 5に比べて非常に小さいことがあげられている。
XHTML 5
HTML5仕様のサブセットとして策定される予定。
HTMLとの相違点
XHTMLは前述のとおりXMLアプリケーション
XMLの文法に従うために、HTMLと異なる部分が存在する。
以下は、主な文法上の相違点とソースのサンプルである。
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 ID="aaa"><EM>あああ</EM></P>
- 要素は必ず開始タグと終了タグを備えていなければならない(終了タグの省略は許されない)。
正: <p><em>あああ</em></p><p>いいい</p>
誤: <p><em>あああ</em><p>いいい
空要素についても同様に終了タグを付与するか、開始タグの末尾を "/>" としなければならない。
終了タグを付与する <br></br> という表記の場合は、タグの間に空白類文字すら含めてはいけない。また、後方互換性のために <br></br> ではなく、<br /> と表記することが推奨されている。
XMLを解釈できない古いUAで <br/> という表記に対し、"br/" を要素名とみなし無視してしまう可能性があることを考慮し、XHTMLでは <br /> のようにスラッシュの前に半角スペースを先行させる表記が一般的である。
正: <em>あああ</em><br />(推奨)
正: <em>あああ</em><br/>
正: <em>あああ</em><br></br>
誤: <em>あああ</em><br>
誤: <em>あああ</em><br> </br>
誤: <p><em>あああ</em><p>いいい
空要素についても同様に終了タグを付与するか、開始タグの末尾を "/>" としなければならない。
終了タグを付与する <br></br> という表記の場合は、タグの間に空白類文字すら含めてはいけない。また、後方互換性のために <br></br> ではなく、<br /> と表記することが推奨されている。
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' />
誤: <input type=text size=8 />
- 属性名記述を省略してはならない。
正: <input type="checkbox" checked="checked" />
誤: <input type="checkbox" checked />
誤: <input type="checkbox" checked />
- 推奨されるメディアタイプが "text/html" から "application/xhtml+xml" に変更された。また、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 MP(XHTML Mobile Profile)
ハイパーテキスト型コンピュータ言語の規格であり、携帯電話などのリソースの限られた機器で利用することを目的として設計
オープン・モバイル・アライアンス (OMA) が定義した XHTML DTD である。XHTML MP は XHTML Basic 1.0 に XHTML Modules を追加したものであり、その後さらにモジュールが追加されている。しかし一部のモジュールは XHTML MP 規格では実装を強制されていないため、XHTML MP 準拠ブラウザが全てのモジュールを実装しているとは限らない。最新の勧告である XHTML MP 1.2 DTD は、2008年3月に完成した。
Version 1.0 - XHTML Basic 1.0 に表示要素をいくつか追加し、基本的なスクリプトをサポート
Version 1.1 - 完全なスクリプトサポート(ECMAScript Mobile Profile)
Version 1.2 - Forms と Object のサポートを追加
Version 1.1 - 完全なスクリプトサポート(ECMAScript Mobile Profile)
Version 1.2 - Forms と Object のサポートを追加
DOCTYPE
XHTML MP 準拠を名のるには、仕様のバージョンに応じて、以下のいずれかの DTD あるいは DOCTYPE を含まなければならない。
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
"http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
"http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.1//EN"
"http://www.openmobilealliance.org/tech/DTD/xhtml-mobile11.dtd">
"http://www.openmobilealliance.org/tech/DTD/xhtml-mobile11.dtd">
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN"
"http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">
なお、一連のリビジョンは以前のDTDの技術的問題を解決すべく発行されている。また、DTDフォーマットは標準のHTMLに比較すると複雑であり、あまり広くサポートされているとは言えない。
"http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">
なお、一連のリビジョンは以前のDTDの技術的問題を解決すべく発行されている。また、DTDフォーマットは標準のHTMLに比較すると複雑であり、あまり広くサポートされているとは言えない。
MIMEタイプ
XHTML Mobile Profile のMIMEタイプは "application/vnd.wap.xhtml+xml" である。準拠しているユーザーエージェントは "application/xhtml+xml" と "text/html" を受理すべきとされる。XML MIMEタイプが指定される場合、多くのデスクトップのブラウザは表示の際に XHTML MP 有効にするだけである。
サポートモジュール
XHTML MP 1.2 のサポートするモジュールは以下の通り。
Structure
Texts
Hypertext
List
Forms
Basic Tables
Image
Object
Metainformation
Scripting
Style Sheet
Style Attribute
Link
Base
XHTML-MP 1.2 は、以下を部分的にサポートしている。
Presentation
Intrinsic Events
Legacy
version 1.2 には、OMA独自モジュール ("Text Input Modes") も含まれており、携帯電話での各種入力モードを扱っている。
Structure
Texts
Hypertext
List
Forms
Basic Tables
Image
Object
Metainformation
Scripting
Style Sheet
Style Attribute
Link
Base
XHTML-MP 1.2 は、以下を部分的にサポートしている。
Presentation
Intrinsic Events
Legacy
version 1.2 には、OMA独自モジュール ("Text Input Modes") も含まれており、携帯電話での各種入力モードを扱っている。
開発時の注意点
XHTMLで書かれたコンテンツを様々な機器で表示させようとすると、多くの問題が生じる。例えばCSSで指定された色を守るものもあれば、そうでない機器もあり、テーブルを正しく描画できるものもあれば、そうでないものもある。適応型アプリケーションの構築とは、機器の持つ機能によってコンテンツを変えることを意味する。しかし、市場には様々なハードウェア(画面サイズ、色機能、ボタン、メモリ、性能)とウェブブラウザがあり、これらを考慮することは大変な複雑さとなる。携帯機器でのブラウザの更新はデスクトップのブラウザほど容易なものではないので、問題のあるブラウザでもその携帯機器が廃棄されるまで使われ続けることになる。
様々な団体がこの問題への対策を提案している。その多くはWAPコンテンツを書く独自言語を提供し、機器に対応して様々なコンテンツ(XHTML MP、WML、CHTMLなど)を渡すというものである。FLOSSコミュニティでの関連標準としてWURFLがある。これは階層型XML設定ファイルを使って数百のデバイス機能をマッピングし、マークアップをその機器がサポートするものに変換する "Wireless Abstraction Layer" (WALL) も設けたものである。W3C Device Description Working Group (DDWG) は、機器の機能情報のリポジトリへのアクセスをコンテンツ適応技術のフレームワークの一部として標準化する仕様を作成している。
様々な団体がこの問題への対策を提案している。その多くはWAPコンテンツを書く独自言語を提供し、機器に対応して様々なコンテンツ(XHTML MP、WML、CHTMLなど)を渡すというものである。FLOSSコミュニティでの関連標準としてWURFLがある。これは階層型XML設定ファイルを使って数百のデバイス機能をマッピングし、マークアップをその機器がサポートするものに変換する "Wireless Abstraction Layer" (WALL) も設けたものである。W3C Device Description Working Group (DDWG) は、機器の機能情報のリポジトリへのアクセスをコンテンツ適応技術のフレームワークの一部として標準化する仕様を作成している。
例
完全に妥当かつ整形式の例を以下に示す。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.1//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>Hello</title> </head> <body> <p>Hello <a href="http://example.org/">world</a>.</p> </body> </html>
ただし、MIMEタイプは "application/xhtml+xml" または "application/vnd.wap.xhtml+xml" である。