構造モジュール

since: 31st/Aug./2001; last modified: 5th/Sep./2001

モジュール名のリンクは、 W3C の XHTMLMOD へのものです。

Structure Module [拙訳]
body, head, html, title
要素属性最小内容モデル
html I18N, version (CDATA), xmlns (URI = "http://www.w3.org/1999/xhtml")head, body
head I18N, profile (URI)title
body Common(Heading | Block | List)*
titleI18NPCDATA

参考:この構造モジュールは、 XHTML モジュールの必須モジュールです。

XHTML 1.1 文書の例

XHTML 1.1 文書型に則った文書の実例です:

<?xml version="1.0" encoding="UTF-8"?>
<!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="ja" >
  <head>
    <title>ヴァーチャル図書館</title>
  </head>
  <body>
    <p><a href="http://vlib.org/">vlib.org</a>へ移動しました。</p>
  </body>
</html>

一行目は XML 宣言で、次の行が文書型定義宣言です。

四行目以下が XHTML 文書の内容です。 html 要素をルート要素とする木構造になっていることに注目してください。

html 要素タイプ

XHTML ファミリーの文書型は、ルート要素が html 要素になります。

最小内容モデル

XHTML 1.1 では、 html 要素の内容モデルを表すパラメタ実体 %html.content は次のように定義されます:

<!ENTITY % html.content "( head, body )" >

内容モデルには、 head 要素body 要素が一回ずつ、この順番で現れなければなりません。

実際の DTD 定義とは表記法が異なりますことをご了承ください。

属性

html 要素には、次の属性が定義されています:

xmlns
名前空間を宣言します。 XHTML ファミリーに許される値: http://www.w3.org/1999/xhtml
<html xmlns="http://www.w3.org/1999/xhtml">
html 要素に対する XHTML 名前空間の指定は必須です。
I18N
国際化に関連する属性の集合名です。具体的には: xml:lang 属性
<html xmlns="http://www.w3.org/1999/xhtml"
      xml:lang="ja">
必ず指定するようにしましょう。
version
文書型を指定します。基本的には DTD 宣言で指定しますから、不要な属性です。
<html xmlns="http://www.w3.org/1999/xhtml"
      xml:lang="ja"
      version="-//W3C//DTD XHTML 1.1//EN" >

html 要素の最初の子要素(第一階層のノード)です。 body 要素とは兄弟要素の関係になります。 head 要素の役割は、文書のヘッダーの記述です。

内容モデル

head 要素は、内容に title 要素を一つだけ持たなければならない。これが必須の内容モデルであり、最小内容モデルと呼びます。

更に、 XHTML 1.1 では、 スタイルシートモジュール、基準モジュール、スクリプトモジュール、オブジェクトモジュールを取り込みます。

従って、 style, script, meta, link, object の各要素が、任意の順番で、任意の回数現れても良く、基準モジュール (Base Module) により、 base 要素が追加されます。これは、現れる場合は、一回だけであるべきです。

結果的に、 head 要素タイプの内容モデルを表すパラメタ実体 %head.content は次のように定義されます:

<!ENTITY % head.content
    "( %HeadOpts.mix;,
     ( ( %title.qname;, %HeadOpts.mix;, ( base, %HeadOpts.mix; )? )
     | ( base, %HeadOpts.mix;, ( title, %HeadOpts.mix; ))))"
>

接尾辞 .mix を持つパラメタ実体は、雑多な要素の集合をあらわします。具体的には、 %HeadOpts.mix は次のように定義されます:

<!ENTITY % HeadOpts.mix
     "( script | style | meta | link | object )*"
>

head 要素の内容モデルの実現に関する詳細は、「head 要素の内容モデル」を参照ください。

属性

I18N
国際化に関する属性の集合名です。具体的には: xml:lang 属性
profile

サンプル

<head>
  <base href="http://www.sugai.f2s.com/web/" />
  <meta http-equiv="content-type"
        content="text/html; charset=UTF-8" />
  <title>XHTML 1.1 とはなんだろうか</titel>
  <link rel="start index" href="./index.html" />
  <link rel="next" href="./XHTML11/xml.html" />
  <link rel="stylesheet" href="./XHTML11/core.css"
        type="text/css" media="screen" />
</head>

この例では、次の情報が指定されています:

body 要素

body 要素は html 要素の第一の子要素(第一階層のノード)として定義されており、 head 要素の次に並んで登場します。 head 要素とは兄弟要素(ノード)になります。 body 要素の内容は、文書の本文に当たります。

内容モデル

最小内容モデルは、雑多な要素の集合である Heading, Block, List であり、これらは DTD では、 %Block.mix; に定義されています。

内容セット要素タイプ
Heading h1 | h2 | h3 | h4 | h5 | h6
Block address | blockquote | div | p | pre | hr | Form | table | script | noscript
List ol | ul | dl
Form form | fieldset

body 要素タイプ以下の階層のノードになる要素タイプは、基本的には %Block.mix;%Inline.mix; に分けられています。 %Inline.mix; に含まれる要素は %Block.mix; 以下の階層のノードにはなり得ますが、その逆は不可です。要素を覚えるごとに、どちらに含まれるか覚えて置いてください。

基本的には、 HTML 4 Strict のブロックレベル要素です。

body 要素の内容モデル実現のメカニズムは、「 body 要素の内容モデル」を参照ください。

属性

body 要素に定義される属性は次のようになります:

Common: Core + Events + I18N + Style
Core
要素の補足的な情報を与える属性の集合です: class (NMTOKENS), id (ID), title (CDATA)
I18N
国際化に関する属性の集合です: xml:lang (NMTOKEN)
Events
組み込みイベントを表す属性の集合です: onclick (Script), ondblclick (Script), onmousedown (Script), onmouseup (Script), onmouseover (Script), onmousemove (Script), onmouseout (Script), onkeypress (Script), onkeydown (Script), onkeyup (Script)
Style
スタイル属性です(非推奨): style (CDATA)
組み込みイベントモジュール
onload = script
  • ユーザエージェントがウィンドウを読み込み終わったときに発生。
onunload = script
  • ユーザエージェントがウィンドウから当該文書を削除したときに発生。

Copyright © 2001, SUGAI, Manabu. All rights reserved. 著作権は放棄していません。
SEO [PR] !uO z[y[WJ Cu