3. XHTML 1.0 の規範的定義

目次

本セクションは規範的。

3.1. 文書の適合性 (Document Conformance)

この版の XHTML は XHTML 1.0 文書に厳密に適合する文書の定義を提供する。ここでは XML と XHTML 1.0 名前空間の要素と属性に限定される。XHTML を他の名前空間と利用するためには Section 3.1.2 を参照されたい。例えば、XHTML 名前空間に RDF で定義されるメタデータ表現を含めることができる。

3.1.1. 厳密に適合する文書 (Strictly Conforming Documents)

厳密適合 XHTML 文書とは、本文書で義務として記述されている機能だけを要求する XML 文書である。このような文書は以下の条件をすべて満たしていなければならない:

  1. DTDsAppendix B にある 三つの DTD のひとつで表現される制約条件に適合していなければならない。

  2. 文書のルート要素は html でなければならない。

  3. 文書のルート要素は XHTML 名前空間 [XMLNS] のための xmlns 宣言を含まなければならない。例えばルート要素は次のようになる:

    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    
  4. 文書のルート要素より先に DOCTYPE 宣言が存在しなければならない。DOCTYPE 宣言に含まれる公開識別子は DTDs にある三つの DTD のひとつを、対応する公式公開識別子をつかって参照しなければならない。システム識別子はローカルシステムの慣例を反映するように変更しても良い。

    <!DOCTYPE html
         PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <!DOCTYPE html
         PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <!DOCTYPE html
         PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
    
  5. DTD のサブセットは DTD のいかなるパラメタ実体をも上書きしてはならない。

XML 宣言は全ての XML 文書に必須なわけではない;しかしながら、 XHTML 文書記述者は、自分が書く全ての文書に XML 宣言を含めるように強く推奨される。この宣言は、文書の文字符号化方法が UTF-8 や UTF-16 以外であるときや、上位のプロトコルで符号化方法が指定されていないときに要求される。ここに挙げるのは XHTML 文書の例である。この例では、XML 宣言が含まれている。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/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://example.org/">example.org</a> に引っ越しました。</p>
  </body>
</html>

3.1.2. XHTML の他の名前空間との利用 (Using XHTML with other namespaces)

XHTML 名前空間は、[XMLNS] に従って他の XML 名前空間と一緒に使っても良い。ただし、そのような文書は上で定義したところの 厳密適合 XHTML 1.0 文書ではない。W3C の作業では、複数の名前空間を含む文書に対する適合性を指定する方法について取り組んでいる。例えば、[XHTML+MathML] を参照されたい。

次の例は XHTML 1.0 を MathML 勧告と接続して利用する方法を示している:

<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>

3.2. ユーザエージェントの適合性 (User Agent Conformance)

適合ユーザエージェントは以下の条件全てを満たしていなければならない:

  1. XML 1.0 勧告 [XML] と整合しているために、ユーザエージェントは整形式に対して XHTML 文書を構文解析し評価しなければならない。ユーザエージェントが妥当性検証を行うユーザエージェントであると主張するならば、[XML] に従って参照されている DTD に対しても、文書の妥当性検証をおこなわなければならない。
  2. ユーザエージェントが、本仕様書内で定義されていたり、本仕様書が規範的参照を通して要求していたりする機能をサポートしていると主張するときは、機能の定義と整合する方法で実装しなければならない。
  3. ユーザエージェントが XHTML 文書を汎用 XML として処理するときは、断片識別子として ID 型の属性(つまり、ほとんどの XHTML 要素上の id 属性)だけを認識すべきである。
  4. ユーザエージェントが認識できない要素に遭遇したら、要素の内容として処理しなければならない。
  5. ユーザエージェントが認識できない属性に遭遇したら、属性の指定全体(つまり、属性とその値)を無視しなければならない。
  6. ユーザエージェントが認識できない属性地に遭遇したら、デフォルト属性地を使わなければならない。
  7. ユーザエージェントがその宣言を処理していない実体参照(本勧告や XML 勧告で定義された実体に含まれる以外のもの)に遭遇したら(その宣言がユーザエージェントが読めない外部サブセット内に存在するときに起こりうる)、その実体参照は実体参照を構成する(アンパーサンドから始まりセミコロンで終了する)文字列として処理されるべきである。
  8. 内容を処理しているときに、ユーザエージェントが認識はできるがレンダリングできない文字や文字実体に遭遇したら、同じ意味を持つ別のレンダリングで置き換えてもよく、標準的なレンダリングが起こらなかった旨をユーザに明確になるような方法で文書を表示しなければならない。
  9. 空白は次の規則に従って取り扱われる。次の文字は [XML] で定義された空白文字である:

    XML プロセッサは異なるシステム行末コードを、アプリケーションに渡す単一の行送り文字に標準化する。

    ユーザエージェントは空白文字の処理に関する CSS [CSS2] から定義を受け取って利用しなければならない。 CSS2 勧告は非ラテン文字セットにおける空白の取り扱いについて明示的に取り組んでいない。これは CSS の将来のバージョンにて取り組まれることになり、そのときにはこの参照も更新される。

Canonical XHTML 文書を生成するためには、上記の規則が適用されなければならず、[XMLC14N] 内の定義もまたて起用されなければならない。


SEO [PR] !uO z[y[WJ Cu