この標準情報(TR)は, 2000年1月にWorld Wide Web Consortium(W3C)から改訂公表されたXHTML™ 1.0: The Extensible HyperText Markup Language勧告を翻訳し, 技術的内容を変更することなく作成した標準情報(TR)である。
この規定は,XHTML 1.0, つまりXML 1.0アプリケーションとしてのHTML 4の再定式化, 及びHTML 4によって定義されたDTDに対応する三つのDTDを定義する。要素及びそれら要素の属性のセマンティクスは,HTML 4のW3C勧告で定義されている。これらのセマンティクスは,XHTMLを将来拡張できる基礎を提供する。わずかな一連のガイドラインに従うことによって,既存のHTML利用者エージェントとの互換性が得られる。
XHTMLは,HTML 4[HTML]を再構築しサブセット化し拡張する,現在及び将来の文書型及びモジュールのファミリとする。XHTMLファミリ文書型は, XMLに基づき,最終的には,XMLに基づく利用者エージェントと共に動作する設計がなされている。このファミリ及びその発展については,将来的な方向性の節で,その詳細を示す。
XHTML 1.0(この規定)は,XHTMLファミリにおける最初の文書型とする。これは,HTML 4の三つの文書型をXML 1.0[XML]のアプリケーションとして再定式化したものとする。XHTML 1.0は,XMLに適合すると共に,簡単なガイドラインに従えば,HTML 4適合の利用者エージェントでも動作する内容のための言語として用いられることを意図している。内容をXHTML 1.0へ移行する開発者は,次の利点を実現することになる。
XHTMLファミリは,インタネットの進化における次の段階となる。いまXHTMLに移行することによって,内容の開発者は,内容の下位互換性及び将来の互換性に確信をもったまま, XMLの世界に参加でき,それに付随する利点のすべてをもつことができる。
HTML 4 [HTML]は,国際規格ISO 8879に適合するSGML(Standard Generalized Markup Language,標準一般化マーク付け言語)アプリケーションであって,World Wide Webの標準的な出版言語と広範囲にみなされている。
SGMLは,マーク付け言語,特に電子文書の交換,文書管理及び文書出版で使用されるマーク付け言語を記述するための言語である。HTMLは,SGMLで定義された言語の例になっている。
SGMLは1980年中頃から普及し,非常に安定なものとなっている。この安定性の多くは,SGMLが機能の豊富さと柔軟性との両方をもつという事実から生じている。しかし,この柔軟性は, 犠牲を払って得られる。その犠牲は,World Wide Webを含む多様な環境でのSGMLの採用を妨げてきた複雑さのレベルである。
当初想定されたとおり,HTMLは,科学文書及びその他の技術文書の交換のための言語であって,文書の専門家ではない人の使用に適している。HTMLは,比較的簡単な文書を作成するのに適した,構造上のタグ及び意味上のタグの小さな集合を規定することによって,SGMLの複雑性の問題に対処した。文書構造を単純化に加えて,HTMLは,ハイパテキストのサポートを追加した。マルチメディア機能は,後に追加された。
非常に短い期間に, HTMLは広範囲に一般化し,急速にその当初の目的よりも大きく成長した。HTMLの始まり以来,(規格としての)HTMLの中での利用のための,及びHTMLを垂直的な高度に専門化された市場に適応させるための,新しい要素の急ごしらえが行われてきた。新しい要素が過剰になったことで,異なるプラットフォーム間での文書の互換性問題が生じてきた。
ソフトウェア及びプラットフォームの両方の異種性が急激に増加するため,これらのプラットフォームでの利用に関する'従来の'HTML 4の適切さがある程度制限されることは明らかである。
XML™は,拡張可能なマーク付け言語(Extensible Markup Language)の短縮形であって,Extensible Markup Language [XML]の頭字語とする。
XMLは,SGMLの複雑さをほとんど伴うことなしに,SGMLの能力及び柔軟性を取り戻す手段として考えられた。SGMLの制限された形式ではあるが,XMLは,SGMLの能力及び機能の豊富さのほとんどを保存し,SGMLの共通利用機能のすべてを残している。
これらの有効な機能を残しながら,XMLは,適切なソフトウェアの作成及び設計を困難で高価なものにするSGMLのもっと複雑な機能の多くを取り除いている。
XHTML 1.0へ移行する利点は,これまでに示した。一般にXHTMLへ移行する利点の幾つかを次に示す。
この規定では,次の語句を使用する。これらの語句は,ISO/IEC 9945-1:1990 [POSIX.1]における類似の定義に基づく方法で,[RFC2119]の定義を拡張している。
XHTMLのこの版は,XHTMLの名前空間からのタグ及び属性に制限されている厳密適合XHTML文書の定義を示す。XHTML文書内にRDFで表現されるメタデータを含むなどの,他の名前空間と共にXHTMLを使用する場合の情報については,3.1.2を参照すること。
厳密適合XHTML文書は,この規定で必す(須)として示される機能実装だけを要求する文書とする。その文書は,次の基準をすべて満たさなければならない。
a) | 文書は,附属書Aにある三つのDTDの一つに照らして妥当性が検証されなければならない。 |
b) | 文書のルート要素は,<html> でなければならない。
|
c) | 文書のルート要素は,xmlns 属性を使用してXHTML名前空間[XMLNAMES]を指定しなければならない。XHTMLのための名前空間は,http://www.w3.org/1999/xhtml と定義する。
|
d) | ルート要素に先行して,文書の中にDOCTYPE宣言が存在しなければならない。DOCTYPE宣言に含まれる公開識別子は,次のそれぞれの公式公開識別子を使用して,附属書Aにある三つのDTDの一つを参照しなければならない。局所システム規約を反映するために,システム識別子は変えてもよい。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "DTD/xhtml1-frameset.dtd"> |
最小のXHTML文書の例を次に示す。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Virtual Library</title> </head> <body> <p>Moved to <a href="http://vlib.org/">vlib.org</a>.</p> </body> </html>
この例には,XML宣言が含まれていることに注意する。ここに示したようなXML宣言が,すべてのXML文書に要求されるわけではない。XHTML文書の作成者には,作成する文書のすべてにXML宣言を使用することを強く勧める。この宣言は,文書の文字符号化がデフォルトのUTF-8又はUTF16以外である場合に, 必す(須)となる。
XHTML名前空間は,[XMLNAMES]に従って,他のXML名前空間と共に使用してもよい。ただし,それらの文書は,3.1.1で定義する厳密適合XHTML 1.0文書ではない。W3Cによって行われる今後の作業が,複数の名前空間を含む文書の適合性を規定する方法に言及することになる。
次の例は,XHTML 1.0がMathML勧告と組み合わせて使用できる方法を示す。
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>A Math Example</title> </head> <body> <p>The following is MathML markup:</p> <math xmlns="http://www.w3.org/1998/Math/MathML"> <apply> <log/> <logbase> <cn> 3 </cn> </logbase> <ci> x </ci> </apply> </math> </body> </html>
次の例は,XHTML 1.0のマーク付けが他のXML名前空間に組み込まれる方法を示す。
<?xml version="1.0" encoding="UTF-8"?> <!-- initially, the default namespace is "books" --> <book xmlns='urn:loc.gov:books' xmlns:isbn='urn:ISBN:0-395-36341-6' xml:lang="en" lang="en"> <title>Cheaper by the Dozen</title> <isbn:number>1568491379</isbn:number> <notes> <!-- make HTML the default namespace for a hypertext commentary --> <p xmlns='http://www.w3.org/1999/xhtml'> This is also available <a href="http://www.w3.org/">online</a>. </p> </notes> </book>
適合利用者エージェントは,次の基準をすべて満たさなければならない。
a) | XML 1.0勧告[XML]と整合するために,利用者エージェントは,整形式性について,XHTML文書を構文解析し評価しなければならない。利用者エージェントが妥当性検証を行う利用者エージェントであることを主張する場合には,それは, [XML]に従って,文書が参照するDTDに照らして文書の妥当性も検証しなければならない。 |
b) | 利用者エージェントが,この規定内で定義されるか又は引用規定を通してこの規定によって要求される機能実装をサポートすると主張する場合は,その機能実装の定義と矛盾しない方法でサポートを実行しなければならない。 |
c) | 利用者エージェントがXHTML文書を共通XMLとして処理する場合は,ID 型の属性(ほとんどのXHTML要素におけるid 属性など)だけを素片識別子として認識しなければならない。
|
d) | 利用者エージェントが認識しない要素に出会うと,利用者エージェントは要素の内容をレンダリングしなければならない。 |
e) | 利用者エージェントが認識しない属性に出会うと,利用者エージェントは属性指定全体,つまり属性及びその値を無視しなければならない。 |
f) | 利用者エージェントが認識しない属性値に出会うと,利用者エージェントはデフォルト属性値を使用しなければならない。 |
g) | 利用者エージェントが,定義済み実体の一つ以外の,宣言を処理していない実体参照に出会うと(これは,利用者エージェントがまだ読んでいない外部のサブセットに宣言が存在する場合に, 起きる可能性がある。),その実体参照を構成する(アンパサンドで始まりセミコロンで終わる)文字列として,実体参照をレンダリングすることが望ましい。 |
h) | 内容をレンダリングする場合,認識はするがレンダリングできない文字又は文字実体参照に出会う利用者エージェントは,正常なレンダリングが行われなかったことが利用者に明確に分かる方法で,文書を表示するのが望ましい。 |
i) | 次の文字は,[XML]では空白文字として定義される。
XMLプロセサは,異なるシステムの行末コードを単一の改行文字に正規化し,それをアプリケーションに渡す。XHTML利用者エージェントは,加えて,次の文字を空白文字として扱わなければならない。
'xml:space'属性が'preserve'に設定されている要素では,利用者エージェントは,すべての空白文字をそのままにしておかなければならない。(ただし,先頭の空白文字及び末尾の空白文字は例外であって,それらは除去するのが望ましい。)それ以外の場合は,空白は,次の規則に従って処理する。
属性値における空白は,[XML]に従って処理される。 |
XHTMLはXMLアプリケーションであるという事実のために,SGMLに基づくHTML 4[HTML]では完全に文法に合う幾つかの作法を変更しなければならない。
整形式性は,[XML]によって導入された新しい概念である。本質的には,これは,すべての要素が終了タグをもつ,又は以降で示すとおりの特殊な形式で記述する,のいずれかでなければならないこと,及びすべての要素が入れ子になっていなければならないことを意味する。
SGMLでは重なりは文法違反であるが,既存のブラウザでは広く許容されていた。
正:入れ子にされた要素
<p>here is an emphasized <em>paragraph</em>.</p>
誤:重なっている要素
<p>here is an emphasized <em>paragraph.</p></em>
XHTML文書は,すべてのHTML要素名及びHTML属性名に小文字を使用しなければならない。この相違が必要となるのは,XMLでは,<li>と<LI>は異なるタグとなるなど,大文字・小文字を区別することによる。
SGMLに基づくHTML 4では,終了タグを省略できる要素もあった。それら要素は,暗黙的に終了する。XMLに基づくXHTMLでは,この省略は許されない。EMPTY
としてDTDで宣言されるものを除くすべての要素は,終了タグをもたなければならない。
正:終端された要素
<p>here is a paragraph.</p><p>here is another paragraph.</p>
誤:終端されていない要素
<p>here is a paragraph.<p>here is another paragraph.
すべての属性値は,たとえ数値に見えても,引用符で囲まなければならない。
正:引用符で囲まれた属性値
<table rows="3">
誤:引用符で囲まれていない属性値
<table rows=3>
XMLは,属性最小化をサポートしない。属性及び値の対は,完全な形で書かなければならない。compact
,checked
などの属性名は,値が指定されていなければ,要素中に出現できない。
正:最小化されていない属性
<dl compact="compact">
誤:最小化されている属性
<dl compact>
空要素は,終了タグをもつか,又はその開始タグが/>
で終わるかのいずれかでなければならない。<br/>
又は<hr></hr>
が,その例となる。これをHTML 4利用者エージェントと確実に下位互換とするための方法について情報を入手したい場合は,HTML互換性ガイドラインを参照すること。
正:終端した空タグ
<br/><hr/>
誤:終端していない空タグ
<br><hr>
属性値において, 利用者エージェントは,先頭の空白及び末尾の空白を属性値から取り除き,行区切りを含む一つ以上の空白文字の列を単一の語間スペース(欧米の文字列の場合はASCIIスペース文字)に対応付ける。[XML]の3.3.3を参照すること。
XHTMLでは,スクリプト要素及びスタイル要素は,#PCDATA
内容をもつものとして宣言される。結果として,<
及び&
はマーク付けの開始として扱われ,<
&などの実体は,実体参照としてXMLプロセサがそれぞれ<
,&
などと認識することになる。CDATA
とマークされたセクション内にスクリプト要素又はスタイル要素の内容を包み込むことで,これらの実体の展開が回避される。
<script> <![CDATA[ ... unescaped script content ... ]]> </script>
CDATA
セクションは,XMLプロセサによって認識され,文書オブジェクトモデルでノードとして現われる。DOM水準1の勧告[DOM]の1.3を参照すること。
代替案としては,外部スクリプト文書及び外部スタイル文書を使用するのがよい。
SGMLは,DTDの作者に,特定の要素をある要素内部に含まれないようにする能力を提供する。"排除"と呼ばれるこの禁止は,XMLでは可能ではない。
例えば,HTML 4の厳密DTDは,'a
'要素を別の'a
'要素内に入れ子にすることを子孫の深さを問わず禁じている。XMLでは,そうした禁止を明確に示すは不可能である。たとえ,これらの禁止をDTDで定義できないとしても,ある要素は入れ子にしないことが望ましい。このような要素及び入れ子にするのが望ましくない要素の要約を,附属書B(規定)に示す。
HTML 4は,a
, applet
, form
, frame
, iframe
, img
, 及びmap
の各要素に対して,name
属性を定義する。HTML 4は,id
属性も導入している。これらの属性は両方とも,素片識別子として使用するために設計されている。
XMLでは,素片識別子はID
型であって,要素ごとにID
型の属性はただ一つだけ存在できる。そのために,XHTML 1.0では,id
属性は,ID
型であると定義されている。XHTML 1.0文書が正しく構造化されたXML文書であることを保証するために,素片識別子を定義する場合には,歴史的にはname
属性も存在した要素であっても,XHTML 1.0文書では,id
属性を使用しなければならない。メディア型text/html
としてXHTML文書を提供する場合,こうしたアンカが下位互換であることを保証することについて情報を入手したい場合には,HTML互換性ガイドラインを参照すること。
XHTML 1.0では,これらの要素のname
属性は公式に非推奨とし,XHTMLの今後の版では除去されるだろうという点に注意する。
XHTML 1.0文書は,既存の利用者エージェントとの互換性を要求されてはいないが,実際にはこれは容易に達成できる。互換文書を作成するためのガイドラインは,附属書Cで見ることができる。
この標準情報(TR)の原規定の公開時点では,XMLに基づくアプリケーション用に推奨される一般的なMIMEラベル付けは,解決しなければならない課題となっている。
しかし,附属書C"HTML互換性ガイドライン"で示されたガイドラインに従ったXHTML文書は,ほとんどのHTMLブラウザと互換性があるので,インタネットメディア型"text/html"でラベル付けしてよい。この附属書は,これ以外のXHTML文書のMIMEラベル付けについては,いかなる推奨もしない。
XHTML 1.0は,新しい装置及びアプリケーションを広範囲にわたってサポートするために,モジュールを定義し,これらモジュールを組み合わせる機構を規定することによって,XTMLを拡張しサブセット化する文書型のファミリのための基礎を提供する。この機構は,新しいモジュールの定義を通じた一貫した方法で,XHTML 1.0の拡張及びサブセット化を可能とする。
XHTMLの使用が従来のデスクトップ利用者エージェントから他のプラットフォームへと移行するにつれて,XHTML要素のすべてが,すべてのプラットフォームで要求されるわけではないということが明らかとなった。例えば,ハンドヘルド装置又は携帯電話は,XHTML要素のサブセットだけをサポートすればよい。
モジュール化の過程は,XHTMLを一連のより小さな要素集合に分解する。これらの要素は,異なるコミュニティの必要性を満たすために再度組み合わせることが可能となる。
これらのモジュールは,今後のW3C文書で定義されることになる。
モジュール化は,次の幾つかの利点をもたらす。
XHTMLをサブセット化するための形式的な機構を提供する。
XHTMLを拡張するための形式的な機構を提供する。
文書型の間の変換を単純化する。
新しい文書型におけるモジュールの再利用を促進する。
文書プロファイルとは,文書の集合の文法及びセマンティクスを規定するものとする。文書プロファイルへの適合性が,相互運用性の保証のための基礎を提供する。文書プロファイルは,例えば,画像フォーマットの種類,スクリプト記述のレベル,スタイルシートのサポートなどで,どれが使用できるかといった,ある型の文書を処理するために要求される機能実装を指定する。
製品設計者にとっては,これによって,様々なグループがそのグループ自体の標準プロファイルを定義できる。
文書作成者にとっては,これによって,異なるクライアントに対して複数の異なる版の文書を書く必要性がなくなる。
化学者,医師,数学者など専門家グループにとっては,これによって,標準的なHTML要素に加えて,専門家の必要性に合わせた要素の集合を用い,専門分野のプロファイルを構築できる。