著作権 ©2000 W3C® (MIT, INRIA, 慶応), すべての権利を留保。 W3C 責任, 商標, ドキュメント使用 および ソフトウエアの認可 の規則が当てはまます。
この仕様書は、XHTML 1.0、 XML 1.0 適用としての HTML 4 の再公式化、 および、HTML 4 によって定義されたものに対応する3つのDTDを、定義します。 要素の語義論およびそれらの属性は、 HTML 4 に対する W3C推薦(W3C Recommendation)に定義されます。 これらの語義論は、XHTMLの将来の拡張性に基礎を与えます。 既存のHTMLユーザ・エージェントとの互換性は、ガイドラインのわずかなセットに従うことにより可能です。
この文書は、個人的な学習を目的に、W3Cのドキュメントを翻訳したものですが、 出来るだけ原文に近いように、極端な意訳を避け、原文に近い表現になるように心がけたつもりです。 また、出来るだけわかり易くするため、 ところどころに "翻訳注" として注釈を追加しました。 この仕様書の標準は、W3Cの英語のパージョンです。 誤訳や意味の取り違え等の可能性は十分あり得ます。お気づきの点等ありましたら、 山下宛メール(yamashita_t@infoseek.jp)でお知らせ下さい。
このセクションは、このドキュメントの公表時における、このドキュメントのステータスについて記述します。 なお、別のドキュメントが、このドキュメントに取って代わるかもしれません。 このドキュメント・シリーズの最新のステータスは、W3Cで支持されます。
このドキュメントは、W3Cのメンバーおよび他の利害関係者によって再審理され、 W3C推薦(W3C Recommendation)として管理者によって推奨されました。 このドキュメントは、永続性のあるドキュメントで、 参照資料として使用されるか、あるいは、 別のドキュメントからの標準の参照として引用されるかもしれません。 推薦をすることにおけるW3Cの役割は、仕様書に注意を引き付けて、 その広範囲の配備を促進することです。 これは、機能性およびウェブの相互運用を増強します。
このドキュメントは、 W3C HTMLの活動(W3C HTML Activity) の一部として作成されました。 HTML Working Group (メンバーのみ) の目標は、 HTML Working Group 憲章 (メンバーのみ)内で議論されます。
現在のW3C推薦(W3C Recommendations)および他の技術文書のリストは、 http://www.w3.org/TRで見つけることができます。
HTMLの特徴に関する公の議論は、メーリング・リスト www-html@w3.org (アーカイブ)上で行なわれます。
このドキュメントにおけるエラーを、 www-html-editor@w3.org に報告して下さい。
この仕様書における既知のエラーのリストは、 http://www.w3.org/2000/01/REC-xhtml1-20000126-errata で利用可能です。
XHTMLは、 現在と未来のドキュメントの型式に属するファミリーで、 HTML 4 [HTML] を再生し、部分集合化し、拡張するモジュールです。 XHTMLファミリーのドキュメントの型式は、 XML に基づき、 根本的には、XML に基づいたユーザ・エージェントと共に働くように設計されています。 このファミリーおよびファミリーの展開の詳細は、 将来の方向 についてのセクションで、より詳細に論じられます。
XHTML 1.0(この仕様)は、XHTMLファミリーにおいて最初のドキュメントの型式です。 XHTML 1.0 は、XML 1.0[XML] の適用としての3つの HTML 4 ドキュメント型式の再公式化です。 それは、内容が、XML 適合のみならず、 基本的なガイドラインに従う場合、 ユーザ・エージェントが従う HTML 4 において効果を表わすための文法として使用されるように意図されています。 XHTML 1.0 へ内容を移行する開発者は、次の利益を得るでしょう:
XHTMLファミリーは、インターネットの発展の次のステップです。 今日の XHTML に移行することによって、コンテンツ開発者は、 今までどおりそれらの内容の過去と将来の互換性に確信をもち続けたまま、 その付随する利益のすべてとともに、XML の世界に参加する事ができます。
HTML 4 [HTML] は、 国際標準の ISO 8879 に適合する SGML (標準一般化マークアップ・ランゲージ) のアプリケーションで、ワールド・ワイド・ウェブの標準的な発行文法と広く見なされています。
SGML は、 特に電子ドキュメント交換、 ドキュメント管理、および、 ドキュメント発行において使用するマークアップ・ランゲージを記述するための文法です。 HTML は、SGML において定義された文法の例です。
SGML は、およそ1980年代中盤から 、全く安定して存続しています。 この安定の多くは、文法が特徴豊富で柔軟であるという事実から生じます。 しかしながら、この柔軟性は代価を生じ、 その代価は、ワールド・ワイド・ウェブを含む様々な環境でその採用を妨げた複雑な水準です。
HTML は、元来考えられていたこととして、 科学的かつ他の技術文書(非文書専門家による使用にふさわしい)の交換用の文法であることでした。 HTML は、 比較的単純なドキュメント作成にふさわしい構造と意味的なタグのわずかなセットの指定により、 SGML の複雑な問題に取り組みました。 ドキュメント構造の単純化に加えて、HTML は、ハイパーテキストのサポートを加えられました。 マルチメディアの能力は、その後加えられました。
非常に短い期間の間に、HTML が、急激にポピュラーになり、急速にその元来の意図より大きくなりました。 HTML の当初から、HTML (標準としての)内の使用に適し、 HTML を縦断し、高度な専門化と、マーケットに順応する為の、 新しい要素の迅速な発明がされています。 この多くの新しい要素は、異なるプラットフォームにまたがるドキュメントに対する互換性の問題に結びつきました。
ソフトウェアおよびプラットフォームの両方の異種の急速な増加につれて、 これらのプラットフォーム上の使用にとって '模範的な' HTML 4 の適応性が、 多少制限されたことは明らかです。
XML™は、 Extensible Markup Language を表す簡略表記法で、 Extensible Markup Language [XML] の頭文字です。
XML は、SGML のその複雑さの大部分なしに、 能力と柔軟性を取り戻す手段として作られました。 SGML の書式の制限ですが、XML は、 それでもなお、ほとんどの SGML の能力と豊かさを保持します。 また、そのうえにさらに、SGML の一般に使用される特徴のすべてを維持します。
これらの有益な特徴を保持すると同時に、 XML は、 創作および適切なソフトウェアの設計を、 難しく、犠牲の大きいものにする SGML の、 より複雑な特徴の多くを削除します。
XHTML 1.0 に移行する利益は上に記述されています。 一般に XHTML に移行する利益のうちのいくつかは次のとおりです:
次の用語は、この仕様書の中で使用されます。 これらの用語は、ISO/IEC 9945-1:1990 [POSIX.1] の同様の定義に基づいた方法で、 [RFC2119] の定義を拡張しました:
XHTMLのこのバージョンは、 XHTMLドキュメント(XHTMLのネーム・スペースからの、タグおよび属性に制限される)を、 厳密に適合させる定義を提供します。 例えば、XHTMLドキュメントの範囲内で RDF(Resource Description Format) の中で表現されたメタデータを含む場合などの、 別のネーム・スペースを備えたXHTMLの使用についての情報に関しては、 セクション3.1.2 を参照して下さい。
厳密に適合するXHTMLドキュメントは、 この仕様書において義務的なものと記述された機能だけを要求するドキュメントです。 そのようなドキュメントは、次の基準をすべて満たさなければなりません:
付録 Aにおいて見つけた3つのDTDのうちの1つに対し、 有効でなければなりません。
ドキュメントの根要素は、<html>
でなければなりません。
ドキュメントの根要素は、xmlns
の属性 [XMLNAMES] を使用する XHTML のネーム・スペースを指定しなければなりません。
XHTML 用のネーム・スペースは、http://www.w3.org/1999/xhtml
であると定義されます。
ドキュメント内で、根要素に優先して、DOCTYPE 定義がなければなりません。 DOCTYPE 定義に含まれた公の識別子は、それぞれの公式な PUBLIC の識別子を使用した、 付録 Aで見つかる3つの DTD の内の1つを参照しなければなりません。 システムの識別子は、ローカル・システムの約束事を反映するために変更されてもさしつかえありません。
(翻訳注:システムの識別子は、例えば、下記の "DTD/xhtml1-strict.dtd" 等の DTD ファイルを直接指定している部分です。 なお、下記の場合、ドキュメントのあるディレクトリーの下の DTD ディレクトリーに 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="ja" lang="ja"> <head> <title>仮想図書館</title> </head> <body> <p><a href="http://vlib.org/">vlib.org</a>へ移動。</p> </body> </html>
この例において、XML 宣言が含まれることに注意して下さい(翻訳注:先頭の '<?xml' で始まる部分)。 上記のもののようなXML 宣言は、すべてのXML ドキュメント中で要求されませんが、 XHTMLドキュメントの著者は、すべてのドキュメントの中でXML 宣言を使用するように強く奨励されます。 このような宣言は、 ドキュメントの文字符号づけが、デフォルトの UTF-8 か UTF-16 以外である場合、必要とされます。
翻訳注:UTFは、UCS(普遍的文字集合)変換フォーマットの略で、UTF-8は、[RFC 2279]で、UCS-2(別名Unicode、1文字16ビット)かUCS-4の文字集合で8ビット単位の可変長に変換する文字符号化機構として定義してありますが、 UTF-16 に関しては、IANA の文字集合の定義 ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets の中で見つける事ができません、 ISO/ITC 10646で符号化文字集合に対する符号化機構として定義してある、主に、XML を処理するアプリケーション内部で使用されるものです。
XHTML のネーム・スペースは、[XMLNAMES]によって、 別のネーム・スペースに対して使用されてもさしつかえありません。 しかし、そのようなドキュメントは、 上記に定義されたほど厳密に適合するXHTML 1.0のドキュメントではありません。 W3Cによる次の作業は、 多くの部分から成るネーム・スペースを必要とするドキュメントのための適合を、 指定する方法を扱うつもりです。
次の例は、XHTML 1.0 が、MathML 推薦(MathML Recommendation)と共に使用されることができる方法を示します:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <title>数学上の例</title> </head> <body> <p>以下のものは、MathML のマーク付けです:</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"?> <!-- 最初は、デフォルトのネーム・スペースは、"books"です --> <book xmlns='urn:loc.gov:books' xmlns:isbn='urn:ISBN:0-395-36341-6' xml:lang="ja" lang="ja"> <title>いくらでも安い</title> <isbn:number>1568491379</isbn:number> <notes> <!-- HTMLを、ハイパーテキスト注釈のためにデフォルトのネーム・スペースにします --> <p xmlns='http://www.w3.org/1999/xhtml'> これは、さらに <a href="http://www.w3.org/">オンライン</a> で利用可能です。 </p> </notes> </book>
適合するユーザ・エージェントは、次の基準をすべて満たさなければなりません:
ID
の属性(例.たいていのXHTML要素に関する id
属性)を、
断片識別子(fragment identifiers)として認めるだけでなければなりません。
XML を処理するものは、異なるシステムの行終了コードを、 単一の行送りの文字符号(アプリケーションまで渡される)に統一します。 XHTMLのユーザ・エージェントは、 さらに、ホワイト・スペースとして、 次の文字符号を扱わなければなりません。
要素において、'xml:space'の属性は、'preserve'(翻訳注:維持)に設定され、 ユーザ・エージェントは、すべてのホワイト・スペースをそっくりそのままの状態にしておかなければなりません。 そうでなければ、ホワイト・スペースは次の規定に従って扱われます:
属性値内のホワイト・スペースは、 [XML] に従って処理されます。
XHTMLが、XML のアプリケーションであるという事実により、SGML ベースの HTML 4 [HTML] において完全に有効だった、ある特定の慣習は、変更されなければなりません。
適正形式状態(Well-formedness)は、 [XML] で取り入れられた新しい概念です。 本質的に、すべての要素が閉じるタグを持っているか、 特別な形式(下に記述されたような)で書かれなければならず、 また、すべての要素が、入れ子にされなければならない事を意味します。
オーバーラップは、SGML において違法ですが、既存のブラウザーにおいて広く許容されました。
正しい: 入れ子になった要素。
<p>ここに強調された<em>節</em>があります。</p>
間違い: オーバーラップしている要素
<p>ここに強調された <em>節があります。</p></em>
XHTMLドキュメントでは、すべてのHTML要素と属性の名前に対して小文字を使用しなければなりません。 この相違点は、XML がケース敏感(翻訳注:大文字・小文字を区別する)なので必要です。 例.<li> と <LI> は異なるタグです。
SGMLベースの HTML 4 では、ある特定の要素が、終了タグを省略することを許されました;
要素にとっては、必然的に、終止を含むことになります。
この省略は、XML ベースの XHTML の中で許されません。
EMPTY
として DTD において宣言された要素以外の全ての要素は、
終了タグがなければなりません。
正しい: 終了した要素
<p>ここに、段落があります。</p><p>ここに、別の段落があります。</p>
間違い: 終了していない要素
<p>ここに、段落があります。<p>ここに、別の段落があります。
属性値は、数値と思われるものでさえ、すべて引用されなければなりません。 (翻訳注:引用符で囲まなければなりません)
正しい: 引用された属性値
<table rows="3">
間違い: 引用されていない属性値
<table rows=3>
XML は、属性の最小化をサポートしません。
属性値のペアは、全部書かれなければなりません。
compact
と checked
のような属性名は、
指定されている値なしに要素内で生じることができません。
翻訳注:HTML 4では、値が省略可能で、属性名だけを指定すればいい属性があります。さらに詳しい説明は、 この仕様書の 付録. C にあります。
正しい: 最小化されていない属性値
<dl compact="compact">
INCORRECT: 最小化された属性
<dl compact>
内容の無い要素要素は、終了タグがあるか、開始タグが />
で終了するか、
どちらかでなければなりません。例えば、
<br/>
あるいは、 <hr></hr>
。
これが、HTML 4 のユーザ・エージェントと、後方互換性をもつことを保証する方法についての情報に関しては、
HTML互換性ガイドライン(HTML Compatibility Guidelines)
を参照して下さい。
正しい: 終了した内容の無い要素
<br/><hr/>
間違い: 終了しない内容の無い要素
<br><hr>
属性の値においては、ユーザ・エージェントが、1つ以上のホワイト・スペース文字(行区切りを含んで)の属性値、 および、マップ・シーケンスから、先行するホワイト・スペースと後に引くホワイト・スペースを、 1つの単語間のスペース(欧米の書体用のASCIIスペース文字)になるまで取り去ります。 [XML] のセクション3.3.3 を参照して下さい。
XHTMLでは、スクリプト要素とスタイル要素が、#PCDATA
の内容を持っているように宣言されます。
その結果、<
と &
は、
マーク付けの開始として扱われます。
また、<
と &
のような実体は、
XML プロセッサーによって、それぞれ <
と &
の実体参照と認められます。
CDATA
の明白な部分内で、スクリプト要素か、スタイル要素の内容を包むことで、
これらの実体の展開を回避します。
(翻訳注:#PCDATA
では、普通のテキストと同じ扱いになります。CDATA
は、
文書文字セットによる文字集合として定義されているので、例えば、スクリプト内で、演算子として <
や &
を使用しても問題ありませんが、
#PCDATA
内では、演算子として使用できません。
ちなみに、スクリプト要素とスタイル要素は、XML・XHTMLでは、#PCDATA
として、
HTMLでは、CDATA
としてそれぞれのDTDに宣言してあります。)
<script> <![CDATA[ ... 回避しないスクリプトの内容 ... ]]> </script>
CDATA
の部分は、XML プロセッサーによって認識され、
ドキュメント・オブジェクト・モデル内のノードとして現れます。
DOMのレベル1推奨[DOM]の
セクション1.3を参照して下さい。
代案は外部スクリプトおよびスタイル・ドキュメントを使用することです。
SGMLは、DTDの著者に、要素内に含まれるものから特定の要素を除外する能力を与えます。 そのような禁止("exclusions"[排除]と呼ばれた)は、XML において可能ではありません。
例えば、HTML 4 の 厳密なDTD(Strict DTD) は、
'a
' 要素の入れ子を、別の 'a
' 要素のどんな子孫の深さの範囲内でも禁止します。
XML の中のそのような禁止を、完全に綴ることは可能ではありません。
たとえ、DTD にこれらの禁止を定義することができなくても、ある一定の要素は入れ子にされないほうがよく。
そのような要素、および、それらの中で入れ子にされないほうがよい要素の要約は、標準の
付録B(Appendix B)で見つかます。
HTML 4 は、
'a
'、
'applet
'、 'form
'、 'frame
'、
'iframe
'、 'img
'、 および 'map
'
に対して 'name
' の属性を定義しました。
さらに、HTML 4 は、'id
' の属性を導入しました。
これらの属性は両方とも、
断片識別子(fragment identifiers) として使用されるように設計されています。
XML では、断片識別子が、型 ID
であり、
1つの要素当たり、たった1つの型 ID
の属性であることだけができます。
したがって、XHTML 1.0では、'id
' 属性は、型 ID
であると定義されます。
XHTML 1.0 の文書が、適正構造化(well-structured) した XML ドキュメントであることを保証する目的で、
XHTML 1.0 の文書は、断片識別子を定義する場合、歴史的な 'name
' 属性を持っている要素ですら、
'id
' の属性を使用しなければなりません。
そのようなアンカー(翻訳注:'name
' 属性を持つ 'a
'要素)が、
後方互換性をもつことを保証することについての情報に関しては、
HTML互換性ガイドライン(HTML Compatibility Guidelines)
を参照して下さい。
XHTML 1.0では、これらの要素の 'name
' 属性が、
公式に非難されたので、
XHTMLの後のバージョンにおいて、
削除するつもりであるということに注意して下さい。
既存のユーザ・エージェントと互換性がある XHTML 1.0 のドキュメントに対しての要求がありませんが、 実際上、これを遂行することは容易です。 互換性をもつドキュメントを作成するためのガイドラインは、 付録C(Appendix C) で見つけることができます。
この推薦の発行時点では、XML に基づいた適用のために、 一般的な推奨された MIME のラベル付けは、さらに解決されなければなりません(翻訳注:"have to"の文章)。
しかしながら、 付録C(Appendix C) "HTML互換性ガイドライン" の中で述べられたガイドラインに従う XHTML のドキュメントは、 それらがほとんどの HTMLブラウザーと互換性をもつように、 インターネットのメディア・タイプ "text/html" を用いてラベル付けされてもさしつかえありません。 このドキュメントは、他の XHTMLドキュメントをラベル付ける MIME についての推奨をしません。
XHTML 1.0 は、モジュールの定義と、こられのモジュールを組合せる為のメカニズムを指定することにより、 広範囲の新しい装置およびアプリケーションをサポートする目的で、 XHTMLを拡張し部分集合化(subset)するドキュメント・タイプに属するファミリーの基準を提供します。 このメカニズムは、新しいモジュール(基本単位)の定義を通して均一の方法の XHTML 1.0 の拡張と下位設定(sub-setting)を可能にします。
XHTML の使用が、従来のデスクトップのユーザ・エージェントから、別のプラットフォームへの移行のように、 すべての XHTML 要素が、すべてのプラットフォーム上で要求されるとは限らないことは明らかです。 例えば、手に保持する装置、あるいは、携帯電話が、 XHTML 要素の部分集合だけをサポートしてもさしつかえありません。
モジュール化のプロセスは、一連のより小さな要素のセットに XHTML を分解します。 その後、これらの要素は、異なるコミュニティーの必要を満たすために再結合することができます。
これらのモジュールは、後ほど、W3C のドキュメントにおいて定義されます。
モジュール化は、いくつかの利点をもたらします:
それは、下位設定(sub-setting)する XHTML に、正式なメカニズムを供給します。
それは、XHTMLの拡張に、正式なメカニズムを供給します。
それは、ドキュメント・タイプ間の転換を単純化します。
それは、新しいドキュメント・タイプにおけるモジュールの再使用を促進します。
ドキュメント・プロフィールは、ドキュメントのセットに関して統語論(syntax)と意味論(semantics)を指定します。 ドキュメント・プロフィールへの適合は、相互運用の保証に根拠を提供します。 ドキュメント・プロフィールは、 ドキュメント・タイプを処理するのに必要な機能、 例えば、そのイメージ・フォーマットが、使用することができるスクリプトを書くレベル、スタイル・シートのサポートなど、 を指定します。
製品デザイナーについては、様々なグループが、 これによってグループ自身の標準プロフィールを定義することができます。
著者にとって、これは、異なるクライアントのために、 いくつかの異なるバージョンのドキュメントを書くことの必要性を除去します。
化学者、医学の医者あるいは数学者のような特別のグループについては、 これは、特別のプロフィールが、 専門家のニーズに適応した要素のグループと標準の HTML 要素を使用して構築されるのを可能にします。
この付録は標準です。
これらのDTDと実体のセットは、この仕様書の標準の部分を形成します。 XML の宣言、および、SGML Open Catalog ならびに DTDファイルの完全なセットは、この仕様書用の zip ファイルに含まれています。
これらのDTDは、HTML 4 の DTD に近づきます。 DTDが、モジュール化された場合、DTD構築の方法が、HTML 4 により親密に一致して使用されます。
翻訳注:厳密バージョンのみ、DTDファイルのコメント部分を邦訳しました。 ちなみに、ENTITY が属性がとる値の定義で、ELEMENT が要素、 ATTLIST がその要素がもつ属性の定義のリストです。有用な情報がコメントされているので、 いちど目を通しておく事をお勧めします。
XHTML実体セットは、HTML 4に関しては同じであるが、有効な XML 1.0 実体宣言であるように修正されました。
ユーロ・マネーの記号(€
か
€
あるいは €
) のために、実体が、
例外的な文字符号の一部として定義されることに注意して下さい。
Latin-1 文字符号 (翻訳注:ラテン語由来の英語を含む西ヨーロッパ14言語の文字符号セット、別名:ISO-8859-1、邦訳済み)
例外的な文字符号 (翻訳注:邦訳済み)
シンボル (翻訳注:数学シンボル以外邦訳済み)
この付録は標準です。
次の要素は、それらがどの要素を含むことができるかの禁止を行っています (セクション4.9を参照)。 この禁止は、すべての入れ子の深さに適用され、つまり、子孫要素をすべて含みます。
a
a
要素を含むことができません。
pre
img
, object
,
big
, small
, sub
あるいは sup
要素を含むことができません。
button
input
, select
,
textarea
, label
, button
,
form
, fieldset
, iframe
あるいは
isindex
要素を含むことができません。label
label
要素を含むことができません。
form
form
要素を含むことができません。
この付録は、有益です。
この付録は、 既存のユーザ・エージェント上で描写するためのXHTMLドキュメントを望む著者のために、 設計ガイドラインを要約します。
処理指示が、いくつかのユーザ・エージェント上で描写されることに気づいて下さい。
しかしながら、さらに、XML 宣言が、ドキュメントに含まれていない場合、
ドキュメントが、デフォルト文字符号づけ UTF-8 あるいは UTF-16 のみを使用することができることに注意して下さい。
(翻訳注:UTFは、UCS(普遍的文字集合)変換フォーマットの略で、UTF-8は、[RFC 2279]で、UCS-2(別名Unicode、1文字16ビット)かUCS-4の文字集合で8ビット単位の可変長に変換する文字符号化機構として定義してありますが、
UTF-16 に関しては、IANA の文字集合の定義 ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets の中で見つける事ができません、
ISO/ITC 10646で符号化文字集合に対する符号化機構として定義してある、主に、XML を処理するアプリケーション内部で使用されるものです)。
スペースを前に含んでいる
/
を後に引く、内容の無い要素の
>
、例えば、
<br />
,
<hr />
および <img
src="karen.jpg" alt="Karen" />
。 また、
内容の無い要素のための最小限のタグ構文の使用、例えば、<br />
、 代替構文として <br></br>
は、
多くの既存のユーザ・エージェントのあやふやな結果を認める XHL によって許可されました。
内容モデルが、EMPTY
でない要素の内容の無い実体(例えば、内容の無いタイトルか段落)がある場合、
最小化形式を使用しないで下さい
(例.
<p />
ではなく
<p> </p>
を使用)。
あなたのスタイル・シートが、<
か &
か ]]>
あるいは --
を使用する場合、外部のスタイル・シートを使用して下さい。
あなたのスクリプトが、<
か &
か ]]>
あるいは --
を使用する場合、外部のスタイル・シートを使用して下さい。
XML パーザが、暗黙にコメントの内容を削除することを許されることに注意して下さい。
したがって、ドキュメントの後方互換性に役立つコメントの内に"隠すこと"のスクリプトおよびスタイル・シートの歴史的な慣例は、
XML ベースの実装では予想通りに働きません。
属性値内の改行、および、多様なホワイト・スペースの文字符号を回避して下さい。 これらは、ユーザ・エージェントによって矛盾して扱われます。
isindex
ドキュメントの head
に、1つ以上の isindex
要素を含めないで下さい。
isindex
要素は、input
要素の支持のために、不支持を唱えられました。
(翻訳注:isindex
要素は、一行プロンプトで、
ヘッド部に記述し、入力フィールド等を表示実行指定するのに使用しました。
現在は、推移バージョンに含まれていますが、将来的には削除される予定です)
lang
と xml:lang
属性
要素の言語を指定する場合、lang
および xml:lang
属性の両方を使用して下さい。
xml:lang
属性の値は、優先して用いられます。
(翻訳注:一番知りたいのは、どう違うかなのですが... lang
は、後方互換性の為のもので、
xml:lang
は、XML 1.0 専用のものです)
(翻訳注:下記の説明は、a
要素を目標アンカーとして使用する場合のものです)
XML において、
形式 "#foo"
の断片識別子で終わる URIs [RFC2396]
は、属性 name="foo"
を備えた要素を参照しません;
もっと正確に言えば、それらは、型 ID
であると定義された属性
(例えば、HTML 4 の id
属性)を備えた要素を参照します。
多くの既存の HTMLクライアントは、この方法で ID
型の属性の使用をサポートしません。
そこで、同一の値が、最大限の前方と後方互換性を保証するため、これらの属性の両方に与えられてもさしつかえありません。
(例、<a id="foo" name="foo">...</a>
)。
さらに、型 ID
の属性に対する合法な値のセットが、型 CDATA
のもののためによりもはるかに小さいので、
name
属性の型は、NMTOKEN
に変更されました。
この属性は、型 ID
と同じ値だけを持つことができるようなもの、
あるいは、XML 1.0 の セクション2.5 production 5 における Name
の成果として、
抑制されます。
遺憾ながら、この制約は、XHTML 1.0 の DTD において表現することができません。
この変更のために、既存の HTMLドキュメントを変換する場合、注意する必要があります。
これらの属性の値は、ドキュメントの範囲内でユニークでなければなりません、
これらの断片識別子(内部と外部の両方)へのどんな参照でも、万一、値が変換する時に変更されるならば、
更新される必要があります。
翻訳注:NMTOKEN
、ID
などの型の定義に関しては、
XML 1.0 仕様書 [XML] の セクション 3.3.1 "Attribute Types" に、
詳細の記述があります。
最後に、XHTML 1.0 では、
a
, applet
, form
, frame
, iframe
, img
, と map
の要素の name
属性に反対を唱えており、
name
属性は、後のバージョンにおいて、XHTML から取り除かれるでしょう。
ドキュメント中の文字符号付けを明記するため、
xml 宣言上の符号付け属性の詳述
(例. <?xml version="1.0"
encoding="EUC-JP"?>
) と、'meta http-equiv' の構文
(例. <meta http-equiv="Content-type"
content='text/html; charset="EUC-JP"' />
)
の両方を使用します。
xml 処理指示の符号づけ属性の値は、優先して用いられます。
いくつかの HTML のユーザ・エージェントは、
ブールの属性が、XML 1.0によって求められるような、
正式の形式(最小化にされない)で現れる場合、ブールの属性を解釈することができません。
この問題が、HTML 4 に従順なユーザ・エージェントに、影響しないことに注意して下さい。
次に続く属性が関係します: compact
, nowrap
,
ismap
, declare
, noshade
,
checked
, disabled
, readonly
,
multiple
, selected
,
noresize
, defer
翻訳注:セクション 4.5 属性の最小化 で説明してあることの補足です。 なお、HTML 4 に適合しているユーザ・エージェントでは、上記のものに対する対策が施されている筈です。
ドキュメント・オブジェクト・モデル レベル1推薦[DOM]は、 XML と HTML 4 のドキュメント・オブジェクト・モデル・インターフェースを定義します。 HTML 4 のドキュメント・オブジェクト・モデルは、HTML の要素名と属性名が、大文字で返されることを明示します。 XML のドキュメント・オブジェクト・モデルは、要素名と属性名が、明示されたケース (翻訳注:大文字は大文字で、小文字は小文字で)で返されることを明示します。 XHTML 1.0 では、要素と属性が、小文字で指定されます(翻訳注:このことの詳細は、セクション 4.2 を参照して下さい)。 この明白な違いは、2つの方法で扱うことができます:
text/html
が、
HTML の DOM を使用でき、
そのインターフェースから、要素名と属性名が大文字で返されることを当てにできるものとして取り扱います。
text/xml
あるいは application/xml
が、
XML の DOM を使用することができるものとして取り扱います。
要素と属性は、小文字で返されます。さらに、XHTML の要素は、
XHTML の要素が、内容モデルにおいてオプションなので、
オブジェクト・ツリーに現われるか、現われないかもしれません(例.table
内の tbody
要素)。
これが生じるのは、HTML 4 において、いくつかの要素で、
開始タグと終了タグが両方とも省略されるような(SGMLの特徴)、
最小化にされる事を許されたからです。
これは、XML において可能ではありません。
無関係な要素を挿入する事をドキュメントの著者に要求するのではなく、
XHTML では、要素をオプションにしました。
アプリケーションは、これに従って適合する必要があります。
属性値がアンパサンドを含んでいる場合、
それは文字実体参照(例. "&
")として表現されなければなりません。
例えば、a
要素の href
属性が、
パラメーターをとるCGIスクリプトを参照する時は、
http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user
としてより、
http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user
として表現されなければなりません。
カスケーディング・スタイル・シート・レベル2 推薦 [CSS2] は、 HTML か XML のドキュメントの解析ツリーに適用されるスタイルのプロパティを定義します。 解析の差は、使用されたセレクターに依存して、異なる視覚的あるいは聴覚の結果を生じます。 次のヒントは、両方のメディア・タイプとして修正なしで取り扱われるドキュメントのために、この影響を切り詰めます:
tbody
要素は、HTML のユーザ・エージェントのパーサによって、推測されますが、
XML のユーザ・エージェントのパーサによって推測されません。
したがって、あなたが、tbody
要素を、CSSのセレクターで参照する場合、
常に明白に tbody
要素 を付け加えたほうがよい。
id
属性をセレクターとして使用する為、スタイル・シートの中で、
id
属性の値の前に付ける記号です。詳しくは、全文翻訳CSS1の
セクション 1.5 を参照して下さい。)
class
属性をセレクターとして使用する為、スタイル・シートの中で、
class
属性の値の前に付ける記号です。詳しくは、全文翻訳CSS1の
セクション 1.4 を参照して下さい。)
この付録は有益です。
この仕様書は、W3C HTMLワーキンググループのメンバーの参加で書かれました:
この付録は有益です。