この文書「XHTML Media Types ― 第二版」は、W3CXHTML 2 ワーキンググループ による「XHTML Media Types - Second Edition (W3C Working Group Note 16 January 2009)」の日本語訳です。

この日本語訳は参考情報であり、正式な文書ではないことにご注意ください。また、翻訳において生じた誤りが含まれる可能性があります。

原文の最新版 は、この日本語訳が参照した版から更新されている可能性があります。また、この日本語訳自身も更新されている可能性があります。日本語訳の最新版は、http://standards.mitsue.co.jp/resources/w3c/TR/xhtml-media-types/ から参照することができます。

更新日:
2009-03-16
公開日:
2009-01-30
翻訳者:
矢倉 眞隆 <>

W3C

XHTML Media Types ― 第二版

複数の UA に対し、ひとつの XHTML 文書から最も適切な内容を提供するためのガイドライン

2009 年 1 月 16 日付 W3C ワーキンググループノート (Working Group Note)

この版:
http://www.w3.org/TR/2009/NOTE-xhtml-media-types-20090116
最新版:
http://www.w3.org/TR/xhtml-media-types
前の版:
http://www.w3.org/TR/2002/NOTE-xhtml-media-types-20020801
編集者:
Shane McCarron, Applied Testing and Technology, Inc.
第一版の編集者:
石川 雅康 (Ishikawa Masayasu), W3C

概要

Web ページを作成するときに、多くの方が XHTML を利用したいと思っています。しかし、さまざまなユーザーエージェントで正しく処理されるためにどのような方法で作成したページを提供すべきか、いつも混乱してしまうようです。このノートはどのようにして XHTML のポータビリティを最大化し、また多くのユーザーエージェントに対し提供可能な状態にする方法をまとめています。なお、対象とするユーザーエージェントには XHTML をネイティブサポートしていないものも含みます。この文書は XHTML を現時点で利用したいと考えており、また作成する XHTML が多くの環境で機能すると自信を持っている方を対象にしています。この文書に書かれている内容は、文書が公開された時点で勧告となっている XHTML Family 仕様すべてを対象としています。

この文書のステータス

この章は、この文書の公開時におけるステータスについて説明しています。このため、他の仕様がこの文書を上書きしている可能性があります。W3C による他の出版物およびこの技術レポートの最新版は W3C 技術レポートインデックス (http://www.w3.org/TR/) で探すことができます。

この文書は World Wide Web Consortium (W3C) により公開されたノートです。ワーキンググループノートの公開は、W3C メンバーによる支持を意味するものではありません。この文書は更新されたり他の文書と置き換えられたり、また破棄される可能性もあります。進行中ということを明記せずに、この文書を引用することは適当でありません。

この文書は HTML ActivityW3C XHTML 2 ワーキンググループ により作成されました。XHTML 2 ワーキンググループの目的は XHTML 2 Working Group charter をご覧ください。この文書はさまざまな XHTML Family 文書に対して、どの Internet メディア型を利用するかという疑問に対し、グループの見解を表明するものです。しかし、この文書は規範的なものではなく、メディア型における XHTML 文書の相互運用性を最大限に高めるための手法について解説しています。この文書はメディア型や名前空間について、何らかの見解を示すものではありません

この文書に対するコメントは www-html-editor@w3.org (アーカイブ) までお願いします。この文書に関する議論は www-html@w3.org (アーカイブ) で行われています。

この文書は 5 February 2004 W3C Patent Policy の下で活動するグループにより作成されました。W3C は 特許情報の開示に関する公開リスト を関連する団体と共に、その成果物とあわせて管理しています。リストには情報開示に関する説明もありますので、ご参照ください。特許について十分に知識のある人物が、当該仕様に関し Essential Claim(s) が認められると判断した場合は、W3C 特許方針の第 6 章 に従い情報を開示する必要があります。

目次

1. はじめに

XHTML 1.0 [XHTML1] は HTML 4 を XML アプリケーションとして再形式化したものです。また、XHTML Modularization [XHTMLM12N] は「XHTML Family」と呼ばれる XHTML ベースのマークアップ言語を、XHTML モジュールを利用し定義する方法を提供しました。しかし、歴史的な経緯により、このような XHTML Family 文書を配信するにあたり、特にメディア型 (Internet media types) について、何を利用すればよいのかが不明瞭でした。

[XHTML1] の公開後、XML メディア型についての RFC が改訂され、RFC 3023 [RFC3023] として公開されました。この RFC には '+xml' という、XML ベースのメディア型に対し用意された接尾辞が導入されており、この規約に沿って 'application/xhtml+xml' というメディア型 [RFC3236] が登録されています。

この文書は、XHTML Family 文書のメディア型について、現時点でのベストプラクティスをまとめたものです。

端的に言うと、基本的に XHTML Family 文書には 'application/xhtml+xml' を利用すべきであり、'text/html' の利用は HTTP Accept ヘッダーに 'application/xhtml+xml' の指定がないユーザーエージェントに対して、HTML 互換の XHTML Family 文書を提供する場合にのみ限定されるべきです [HTTP]。'application/xml' と 'text/xml' もまた、利用することが可能なメディア型です。しかし、基本的にはこれらのような一般的な XML のメディア型よりも、'application/xhtml+xml' または 'text/html' といった、XHTML に関連するメディア型を利用すべきです。

しかし、いくつかのユーザーエージェントでは XHTML (や XML) のサポートが行われていません。このため、慎重になって作成することしか、ポータビリティを保証することができないのです (Appendix A をご覧ください)。XHTML Family マークアップ言語にはさまざまな先進的機能 (XML, DOM, XML Validation, XHTML Modularization による拡張、XHTML+RDFa によるセマンティックなマークアップ、XHTML Role や XHTML Access による支援技術へのアクセスなど) が備わっていますが、これらを利用することにより HTML ユーザーエージェントにおけるポータビリティが損なわれるリスクがあります。これらを必要としない場合は、HTML 4.01 [HTML] を利用することを検討したほうがよいでしょう。しかし、HTML を利用する場合においても、文書を valid [VALIDATOR] に保ち、また Appendix A にあるガイドラインに沿うことで、ポータビリティの確保や将来的な XHTML の利用をふまえた運用を行うことができます。

2. 用語とその定義

Note: この文書は "must" や "should" という単語を随所に利用しています。しかし、この文書は規範的ではなく、他の規範的な W3C 仕様にある "must" や "should" と意味が異なっています。

XHTML
Extensible HyperText Markup Language の略で、拡張可能な HTML を意味します。XHTML はあるひとつのマークアップ言語につけられた名前ではなく、XHTML Family と呼ばれる一連のマークアップ言語の文書型に与えられた総称です。XHTML Family の名前空間 URI は http://www.w3.org/1999/xhtml です。XHTML Family に属する言語には、[XHTML1] や、XHTML ホスト言語 (XHTML Host Language) である XHTML 1.1 [XHTML11]、XHTML Basic [XHTMLBasic] があります。これらの文書型にある要素や属性は、XHTML 名前空間に属します (ただし、xml:lang など、XML 名前空間に属するものは除きます)。しかし、XHTML Family 文書型は、たとえば MathML [MathML2] など、他の名前空間に属する要素や属性を含むこともあります。

3. 推奨されるメディア型

このセクションでは、どのメディア型が XHTML Family 文書に使われるべきかがまとめられています。いくつかの項目は、コンテンツ配信という観点から書かれていますが、このセクションはコンテントネゴシエーションについて、包括的なディスカッションを行っているわけではありません。

とはいえ、Appendix A のガイドラインを満たし、これらのルールを HTTP Accept ヘッダーの設定と組み合わせることにより、どのメディア型を利用するのかに役に立ちます。

  1. Accept ヘッダーが明示的に application/xhtml+xml を含む場合 (また "q" がない、もしくは "q" が正の値をとる)、文書をそのメディア型で配信します。
  2. Accept ヘッダーが明示的に text/html を含む場合 (また "q" がない、もしくは "q" が正の値をとる)、文書をそのメディア型で配信します。
  3. Accept ヘッダーが "*/*" (いくつかのユーザーエージェントが利用する、メディア型を問わず全て受け付けるという慣習) を含む場合、文書を text/html で配信します。

言い換えれば、XHTML Family 文書をサポートしていると主張しているリクエスターは、XHTML メディア型で文書を受け取り、HTML または "すべて" をサポートしているリクエスターについては、HTML メディア型で文書を受け取ることになります。これらの規則に当てはまらないユーザーエージェントについては、この文書の範囲外とします。

XHTML 文書がガイドラインに適合しないのであれば、その文書は application/xhtml+xml でのみ配信されるべきです。

3.1. 'application/xhtml+xml'

メディア型 'application/xhtml+xml' [RFC3236] こそが、XHTML Family 文書において主要なメディア型です。XHTML 文書を XHTML ユーザーエージェント (明示的にこのメディア型のサポートを表明しているエージェント) に向けて提供するときは、このメディア型を使用するべきです。XHTML+MathML [XHTML+MathML] のように、他の名前空間から要素や属性を取り込んだ XHTML Family 文書型を利用する際には、このメディア型を使用しなければなりません。

3.2. 'text/html'

メディア型 'text/html' [RFC2854] は、HTML 文書において主要なメディア型であり、XHTML のものではありません。一般的に、このメディア型は、作成する XHTML 文書が Appendix A のガイドラインに適合する場合を除いて、XHTML 文書に適したものではありません。特に、XHTML+MathML [XHTML+MathML] のように、他の名前空間から要素や属性を取り込んだ XHTML Family 文書型を利用する際には、'text/html' は適しません

XHTML 文書が 'text/html' で提供された場合、その文書は XML [XML10] として処理されません。つまり、整形式に関するエラーがユーザーエージェントに検知されるといったことが起こらなくなります。また、DOM やスタイルシートに対し、HTML のルールが適用されることにも注意してください (ガイドラインの 1113 をご覧ください)。

また、製作者は文字エンコーディングに関する問題についても気をつけることが推奨されます。詳しくは ガイドライン 1ガイドライン 9 をご覧ください。

Appendix A. 互換性ガイドライン

この付属書は、XHTML 文書を XHTML を理解するユーザーエージェントと、既存の HTML ユーザーエージェントのどちらでも表示させたいときに、作成者が読むデザインガイドラインをまとめたものです。このガイドラインを提供する目的は、作成者が従うべき項目を一元的にまとめることにあります。このガイドラインに従えば、モダンなユーザーエージェントでは理にかなった表示が行われることが期待できるのです。このガイドラインでまとめたベストプラクティスは、この文書の公開時点において正しいと考えてください。また、他のすべてのセクションと同じく、この付属書は参考情報 (informative)です。つまり、このガイドラインは、どの XHTML Family マークアップ言語に対しても、その適合性要件を上書きすることがありません。

このガイドラインはもともと、[XHTML1] の中に設けられていました。しかし、この勧告以外にも適用できるということでこの文書に移されました。また、このガイドラインが最初に公開されてから現在までに起こった変化を反映するため、内容の更新も行われています。

このガイドラインに従った文書の参考例は、Appendix B にあります。

A.1. 処理命令と XML 宣言

DO NOT: XML 処理命令や XML 宣言を含めないでください。

理由: いくつかの HTML ユーザーエージェントは XML 処理命令をレンダリングしていまいます。また、いくつかのユーザーエージェントは XML 宣言を解釈して、その文書が HTML ではない、なんらかの XML と認識してしまいます。このため、予期しないレンダリングが発生する恐れがあります。このような HTML ブラウザーとの互換性を確保するため、処理命令や XML 宣言の仕様は避けることが推奨されます。

Consequence: しかし、XML 宣言が文書内になく、かつ文字エンコーディングが HTTP などの上位プロトコルで指定されていない場合、その文書は UTF-8 または UTF-16 のどちらかしか利用できないことに注意してください。ただし、ガイドライン 9 にて、文字エンコーディングの指定方法が記載されています。

A.2. 内容を持つことのできない要素

要素の内容モデルが EMPTY として定義されている場合、次に従います。
DO: XML の最小タグ構文 (<br />) を利用してください。
DO NOT: その他の構文 (<br></br> など) は使用しないでください。XML では可能ですが、HTML ユーザーエージェントでサポートされていない可能性があります。
DO: タグ末尾にある /> の前には、スペースを記述してください。

XHTML Family では、area, base, basefont, br, col, hr, img, input, isindex, link, meta, param が空要素になります。

理由: HTML ユーザーエージェントはタグの末尾にある  /> を無視しますが、この部分がないとタグや属性のパースがおかしくなる可能性があります。また、HTML ユーザーエージェントは XML で許可されているその他の構文を理解しない可能性があります。

A.3. 内容を持たない要素

内容を持つことのできる要素 (div 要素など) が内容を持っていない場合 (セクションの中身が空、など)、次に従います。
DO NOT: 最小タグ構文 (<div />) は使用しないでください。

理由: HTML ユーザーエージェントは最小タグ構文について、定かではない結果を返す可能性があるからです。

A.4. 埋め込みスタイルシートとスクリプト

DO: スタイルシートが <&, ]]>, -- といった文字を含む場合、外部スタイルシートを利用してください。
DO NOT: 上記の文字を含む場合、内部スタイルシートを利用しないでください。

DO: スクリプトが <&, ]]>, -- といった文字を含む場合、外部スクリプトを利用してください。
DO NOT: 上記の文字を含む場合、埋め込みスクリプトを利用しないでください。

理由: XML にはデータ埋め込みのために CDATA 区間が用意されていますが、これはメディア型が text/html で配信されている場合正しく動作しません。スクリプトやスタイルが確実に動く方法のうち一番良いのは、それらを外部化することです。ただし、XML と HTML のどちらにも、文書にデータを埋め込む場合に、その内容を保護するメカニズムが備わっています。文書中にデータを埋め込まなければならない場合、次のようなパターンを利用することができます。

埋め込みスクリプトのエスケープは次のように行います。

   <script>//<![CDATA[
   ...
   //]]></script>

埋め込みスタイルシートのエスケープは次のように行います。

   <style>/*<![CDATA[*/
   ...
   /*]]>*/</style> 

A.5. 属性値内の改行

DO: 属性値内の空白文字は一種類のみ利用し、また改行が入らないよう一行で記述してください。
DO NOT: 属性値内には改行をいれず、また複数の空白文字が混在しないようにしてください。

理由: これは、属性値における空白文字の扱いにおいて、ユーザーエージェントは複数の空白文字をひとつのスペースに折りたたむことが許可されていますが、その挙動がユーザーエージェントにより異なることにあります。

A.6. 削除されました

このガイドラインは意味がなくなったことから削除されました。

A.7. lang 属性と xml:lang 属性

DO: 利用するマークアップ言語が、言語指定のために lang 属性と xml:lang 属性ふたつを用意している場合、そのどちらをも記述するようにしてください。

理由: HTML 4 文書は lang を要素の言語識別に利用します。一方、XML では同じ目的を xml:lang 属性で実現しています。CSS には "lang" 擬似クラスセレクタというものがあり、メディア型によって lang 属性と xml:lang 属性を使い分け、要素を選択します。属性を併記することで、CSS セレクタをどちらのモードでも機能させることができます。

A.8. フラグメント識別子

DO: 要素には id 属性で識別子を与えてください。

DO: id 属性の値は [A-Za-z][A-Za-z0-9:_.-]* の範囲で記述してください。

DO NOT: name 属性で識別子を与えないでください。これは XHTML 1.0 のように、name 属性を利用できる言語においても同様です。

理由: HTML 3.2 とそれ以前のバージョンにおいて、要素のアンカーを定義するのは name 属性でしたが、HTML 4 から id 属性が導入されました。XML では、ID 型をもつ属性のみがアンカーを定義するものとして許可されており、id 属性は ID 型をもっています。id 属性は HTML ユーザーエージェントと、XHTML を解するユーザーエージェントのどちらにおいても機能するのです。

A.9. 文字エンコーディング

DO: UTF-8 または UTF-16 でエンコードしてください。
DO: サーバーから文書を送出するとき、HTTP Content-Type ヘッダーの charset パラメータから文書の文字エンコーディングを指定してください。
DO: サーバーから文書を送出しないときは、"meta http-equiv" (<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />) を利用して文字エンコーディングを指定してください。ただし、この方法は文書に単一の内容型を紐付けすることを意味します。

理由: このガイドラインでは、文書に XML 宣言を記述しないことを推奨しています。このため、エンコーディングの指定において、HTTP ヘッダーが HTML ユーザーエージェントと XML ユーザーエージェントの両方に対応できる唯一の手段なのです。HTTP ヘッダーが利用できないときは、"meta http-equiv" が利用できる唯一の手段となります。

A.10. 真偽値属性

DO: 真偽値属性は XML の要件どおり、完全形 (disabled="disabled") で記述します。このような属性には compact, nowrap, ismap, declare, noshade, checked, disabled, readonly, multiple, selected, noresize, defer があります。

理由: 省略形は XML の整形式にはならず、invalid になってしまうからです。

A.11. DOM と XHTML

DO: DOM level 1 [DOM] に準拠したスクリプトで、要素名や属性名を記述する箇所がある場合、それらが大文字小文字を問わず動作するようにしてください。

理由: DOM メソッドはメディア型によって、返す要素名と属性名が異なります。text/html の場合は大文字に、application/xhtml+xml の場合は小文字になります。大文字小文字を問わず動作するように書くことで、スクリプトのポータビリティを確保することができるのです。

JavaScript ではたとえば、次のように記述できるでしょう。

    ...
    var name=node.name().toLowerCase;
    if ( name == 'table' ) {
       ...
    }

より詳しい情報が [HTMLDOM2] のセクション 1.3 “XHTML and the HTML DOM” にまとめられています。

A.12. アンパサンドの利用

DO: 内容や属性値にアンパサンド (&)が含まれる場合、&amp; とエスケープしてください。

理由: アンパサンドがエンコードされていない場合、ユーザーエージェントはアンパサンドの後に続く文字を実体の名前として解釈してしまうことがあるからです。また、XML プロセッサーにより「非整形式 (not well-formed)」として扱われてしまいます。

A.13. CSS と XHTML

DO: スタイルシートでは要素名や属性名を小文字で書いてください。
DO: 存在が暗示される要素 (テーブルの tbody 要素など) も記述するようにしてください。

理由: 簡単な規約ですが、これを守ることにより、処理されるメディア型を問わないポータブルな CSS にすることが可能だからです。

A.14. XML におけるスタイル要素の参照

DO NOT: xml-stylesheet 処理命令は利用しないでください。

DO: スタイルシートの適用には style 要素または link 要素を利用してください。

理由: XML 処理命令は HTML ユーザーエージェントでレンダリングされる場合があり、このため xml-stylesheet によるスタイルシートがうまく適用されない可能性があります。XHTML ユーザーエージェントは style 要素や link 要素を処理しスタイルシートを解釈することが義務付けられているため、xml-stylesheet を用いずともそれらを利用することで意図するようにスタイルシートを適用することができるのです。

A.15. HTML のフォームフィード文字と XML

DO NOT: フォームフィード文字 (U+000C) を利用しないでください。

理由: この文字は HTML 4 では空白文字として定義されていますが、XML においてはそう定義されていないからです。

A.16. 名前付き文字参照と &apos;

DO: アポストロフィを記述する際は &#39; と記述してください。
DO NOT: &apos; は使用しないでください。

理由: &apos; という実体は HTML 4 で定義されていないためです。

A.17. XML DTD 内部サブセット

DO NOT: DOCTYPE 宣言で XML DTD 内部サブセットを使用しないでください。

理由: このメカニズムは XML を解さないユーザーエージェントにおいてサポートされていないからです。

A.18. CDATA セクション

DO NOT: ガイドライン 4 で取り上げた通りに、XML CDATA 区間の仕様は控えてください。

理由: このメカニズムは XML を解さないユーザーエージェントにおいてサポートされていないからです。

A.19. <tbody> 要素の明示

DO: テーブルの tbody 要素は必ず記述してください。

理由: table の内容モデルにおいて tbody 要素は記述しないことが許可されていますが、HTML 4 ユーザーエージェントは内部的にこっそりと要素を挿入しています。このため、スクリプトやスタイルシートが機能しない可能性が出てきます。

A.20. base vs. xml:base

DO: 基底 URI の指定には base 要素を利用してください。
DO NOT: xml:base 属性は使用しないでください。

理由: xml:base がそもそもほとんどの XHTML Family マークアップ言語においてサポートされていないからです。これは、base 要素が既にあるからという理由です。また、HTML ユーザーエージェントももちろんのことながら、xml:base をサポートしていません。

A.21. document.write

DO NOT: JavaScript メソッドの document.writedocument.writeln を使用しないでください。
DO: 文書内容の変更は DOM 操作で行ってください。

理由: XML ユーザーエージェントはこれらのメソッドをサポートしていないことがあるからです。

A.22. innerHTML

DO NOT: JavaScript メソッドの innerHTML を使用しないでください。
DO 文書の動的な更新は DOM 操作で行ってください。もしこのメソッドを使用する場合、ユーザーエージェントがサポートしており、また更新する内容が整形式でかつこのガイドラインに準拠した、HTML 4 互換の内容であることを確認してください。

理由: 文書を更新するメカニズムは標準である DOM でも用意されており、非標準のメソッドよりもポータブルだからです。

A.23. スクリプトと tbody 要素

DO: tbody 要素が table にあってもなくても、同じようにスクリプトが動作するようにしてください。

理由: ガイドライン 19 をご覧ください。

A.24. 文書全体にスタイルシートを適用させる

DO: 文書全体にスタイル付けを行う目的で html 要素に CSS を記述している場合、それらを body 要素にも記述するようにしてください。

理由: いくつかの HTML ユーザーエージェントは html 要素に記述した CSS を解釈しないことがあるからです。

A.25. noscript 要素

DO NOT: noscript 要素は使用しないでください。

理由: 要素内容の扱いが XML で処理されるか HTML で処理されるかで異なるからです。同様に、スクリプトが有効か無効かによっても扱いが異なります。

A.26. iframe 要素

DO NOT: iframe 要素内に直接内容を記述しないでください。
DO: iframe 要素の src 属性を利用し、データを関連付けてください。

理由: 要素内容の扱いが XML で処理されるか HTML で処理されるかで異なるからです。同様に、スクリプトが有効か無効かによっても扱いが異なります。また、フレームの内容は src 属性に外部リソースを指定することによって読み込むことができるからです。

A.27. JavaScript を利用した要素の作成

DO: createElementNS メソッドがある場合、それを利用して DOM 要素を作成してください。メソッドが存在しない場合は、代替手段として createElement メソッドを利用してください。

理由: createElementNS メソッドは HTML ユーザーエージェントでも XML ユーザーエージェントでも意図したとおりに機能しますが、全てのユーザーエージェントでサポートされてはいないからです。

Appendix B. 文書の例

Appendix A に記載された規約に沿って書かれた、XHTML ユーザーエージェントと HTML ユーザーエージェントの両方にポータブルな文書の例は次の通りです。この例では XHTML 1.0 Strict を利用していますが、XHTML 1.1 も利用することができます。この場合、文書の先頭部分は次のようになるでしょう。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
                      "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

XHTML 1.1 は lang 属性をサポートしていないため、この属性が html 要素で用いられていないことに注意してください。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- 利用する言語にあわせて、lang と xml:lang の両方を記述します - A.7 -->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
  <title>Example Portable XHTML</title>
  <!-- サーバーで文字エンコーディングを指定できない場合に、次の指定を記述します - A.9 -->
  <meta http-equiv="Content-Type"
        content="text/html; charset=utf-8" />

  <!-- xml:base ではなく base を使用します - A.20 -->
  <base href="http://www.w3.org/MarkUp" />

  <!-- 外部スタイルシートや script 要素を利用します - A.4, A.14 -->
  <link href="style/style.css" rel="stylesheet" type="text/css" />

  <!-- 埋め込む場合には、問題が起こらないよう適切にエスケープします - A.4, A.14 -->
  <style type="text/css">/*<![CDATA[*/
      /* スタイルシートでは小文字を利用します - A.13 */
      .main { padding-left: 10px; }
      /* 文書全体にプロパティを適用させるようにします - A.24 */
      html {background-color: #e4e5e9; }
      body {background-color: #e4e5e9; }
  /*]]>*/</style>

  <!-- defer 属性など、真偽値属性は展開して記述します - A.10 -->
  <script defer="defer" type="text/javascript">//<![CDATA[
      var SOME_VALUE="<this is a test>";
  //]]></script>

</head>

<body>

<!-- 要素の識別子は id 属性で与えます - A.8 -->
<div id="main">

    <!-- 属性値に改行が入らないよう注意します - A.5 -->
    <h1 title="This section shows how to write portable content">
        Main Section
    </h1>
    <!-- IMG などは内容を持てないため、常に短縮形を用います - A.2 -->
    <img src="http://www.w3.org/Icons/w3c_main" alt="W3C logo" />  	

    <!-- しかし、その他の要素については、内容がなくても短縮形を使いません - A.3 -->
    <p></p>
    
    <!-- アポストロフィは数値文字参照にエスケープして記述します - A.16 -->
    <p title='rule for &#39;ampersands&#39;'>

        <!-- アンパサンドは必ずエスケープします - A.12 -->
        Some material &amp; some other material

    </p>
    <table>
        <!-- tbody 要素は必ず明示的に記述します - A.19 -->
        <tbody>
            <tr>
                <td>Table Cell</td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>

Appendix C. 参考文献

[DOM]
"Document Object Model (DOM) Level 1 Specification", L. Wood et al., 1 October 1998.
Available at: http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001
[HTMLDOM2]
"Document Object Model (DOM) Level 2 HTML Specification", J. Stenback et al., 9 January 2003.
Available at: http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109
[HTML4]

"HTML 4.01 Specification", W3C Recommendation, D. Raggett, A. Le Hors, I. Jacobs, eds., 24 December 1999. Available at: http://www.w3.org/TR/1999/REC-html401-19991224

The latest version of HTML 4.01 is available at: http://www.w3.org/TR/html401

The latest version of HTML 4 is available at: http://www.w3.org/TR/html4

[HTTP]
"Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616, J. Gettys, R. Fielding, J. Mogul, H. Frystyk, L. Masinter, P. Leach and T. Berners-Lee, June 1999. Available at: http://www.rfc-editor.org/rfc/rfc2616.txt
[MathML2]

"Mathematical Markup Language (MathML) Version 2.0", W3C Recommendation, D. Carlisle, P. Ion, R. Miner, N. Poppelier, eds., 21 February 2001. Available at: http://www.w3.org/TR/2001/REC-MathML2-20010221

The latest version is available at: http://www.w3.org/TR/MathML2

[RFC2854]
"The 'text/html' Media Type", RFC 2854, D. Connolly, L. Masinter, June 2000. Available at: http://www.rfc-editor.org/rfc/rfc2854.txt
[RFC3023]
"XML Media Types", RFC3023, M. Murata, S. St.Laurent, D. Kohn, January 2001. Available at: http://www.rfc-editor.org/rfc/rfc3023.txt
[RFC3236]
"The 'application/xhtml+xml' Media Type", RFC 3236, M. Baker, P. Stark, January 2002. Available at: http://www.rfc-editor.org/rfc/rfc3236.txt
[VALIDATOR]

The W3C Markup Validation Service available at http://validator.w3.org.

[XHTML1]

"XHTML™ 1.0 The Extensible HyperText Markup Language (Second Edition): A Reformulation of HTML 4 in XML 1.0", W3C Recommendation, S. Pemberton et al., August 2002. Available at: http://www.w3.org/TR/2002/REC-xhtml1-20020801

The first edition is available at: http://www.w3.org/TR/2000/REC-xhtml1-20000126

The latest version is available at: http://www.w3.org/TR/xhtml1

[XHTML11]

"XHTML™ 1.1 - Module-based XHTML", W3C Recommendation, M. Altheim, S. McCarron, eds., 31 May 2001. Available at: http://www.w3.org/TR/2001/REC-xhtml11-20010531

The latest version is available at: http://www.w3.org/TR/xhtml11

[XHTMLBasic]

"XHTML™ Basic 1.1", W3C Recommendation, S. McCarron, M. Ishikawa eds., 29 July 2008. Available at: http://www.w3.org/TR/2008/REC-xhtml-basic-20080729

The latest version is available at: http://www.w3.org/TR/xhtml-basic

[XHTMLM12N]

"XHTML™ Modularization 1.1", W3C Recommendation, D. Austin et. al., eds., 8 October 2008. Available at: http://www.w3.org/TR/2008/REC-xhtml-modularization-20081008

The latest version is at: http://www.w3.org/TR/xhtml-modularization

[XHTML+MathML]
"XHTML plus Math 1.1 DTD", "A.2 MathML as a DTD Module", Mathematical Markup Language (MathML) Version 2.0. Available at: http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd
[XML]
"Extensible Markup Language (XML) 1.0 (Fourth Edition)", W3C Recommendation, T. Bray, J. Paoli, C. M. Sperberg-McQueen, E. Maler, F. Yergeau, eds., 16 August 2006. Available at: http://www.w3.org/TR/2006/REC-xml-20060816

Appendix D. 前の版からの変更点

文書全体を text/htmlapplication/xhtml+xml にフォーカスさせたものに再構成しました。

XHTML 1.0 から互換性ガイドラインを分離し、このノートに組み込みました。これにより、ガイドラインの更新と拡張を簡単に行うことができます。

Appendix E. 謝辞

この文書は、多くの方が長年にわたり行ってきた活動の成果です。残念ながらすべての方を謝辞に載せることができませんでしたが、ワーキンググループは皆さんに感謝の意を表明しています。なかでもこの文書にとても大きな貢献をしてくださった方は次の通りです。

この文書の公開時点における、XHTML 2 ワーキンググループのメンバーは次の通りです。