抽象モジュールは,説明テキスト及び非公式のマーク付け規約を使用したXHTMLモジュールの定義とする。文書型の機械処理においては,これらの定義は一般的には有用ではないが,モジュール内に何が含まれているかを理解する手助けにおいては, それは非常に重要となる。この4.は,XHTML抽象モジュールの定義方法を規定する。XHTML適合モジュールは,抽象モジュール定義を与えるには必須ではない。しかし,XHTMLモジュールを開発する者には,そのモジュールの使用を容易にするために抽象化を与えることを推奨する。
抽象モジュールは,形式的文法では定義されない。しかし,その定義は, 次の構文規約に従う。これらの規約は,XMLのDTDの規約に類似し,XMLのDTD作成者にはよく知られている。個別の各構文要素は, 他の要素と組み合わされ,ここで定義される代数に適合するもっと複雑な式を作ることができる。
expr ?
expr +
expr *
a , b
a
が必須であり,その後に式b
が続く。a | b
a - b
&
)が続く。*
)が続く。|
)で分離された, (引用符で囲まれた)明示的に合法な値のリストを示す。属性がデフォルト値をもつとき,その値の後にアスタリスク(*
)が続く。属性が固定値をもつとき,属性名の後に等号(=
)が続き, さらに引用符で囲まれた固定値が続く。抽象モジュール定義は,各モジュールの最小の核となる内容モデルを定義する。これらの最小の内容モデルは,モジュール自体の中の要素を参照する。それらは,抽象モジュールが依存する他のモジュールの中の要素も参照してよい。最後に,多くの場合の内容モデルは,テキストが1個以上の要素に対する内容として許容されることを要求する。 これらの場合,テキストに使用される記号はPCDATAとする。これは,処理された文字データを参照する用語であり,XML 1.0勧告で定義されている。内容型は, EMPTYとして定義することもできる。これは,要素がその最小の内容モデルにおいて内容をもたないことを意味する。
あるインスタンスでは,属性値の型の定義又は属性の許容値の明示的な集合の定義が要求される。抽象モジュールの定義には,(XML 1.0勧告で定義された)次の属性型が使用される。
属性型 | 定義 |
---|---|
CDATA | 文字データ |
ID | 文書内一意識別子 |
IDREF | 文書内一意識別子への参照 |
IDREFS | 文書内一意識別子への参照をスペースで分離したリスト |
NAME | 前述のIDと同じ文字制約をもつ名前 |
NMTOKEN | XML 1.0 [XML]で定義されるとおり,名前トークンだけから構成される名前 |
NMTOKENS | 1個以上の空白で分離したNMTOKEN値 |
PCDATA | 処理された文字データ |
これらの事前定義のデータ型に加えて,XHTMLモジュール化は, 次のデータ型及びそのセマンティクスを(適切なものとして)定義する。
データ型 | 記述 | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Character | [ISO10646]の単一の文字 | ||||||||||||||||||||||||||||||||
Charset | [RFC2045]に基づく文字符号化 | ||||||||||||||||||||||||||||||||
Charsets | [RFC2045]に 基づく文字符号化の, スペースで分離したリスト | ||||||||||||||||||||||||||||||||
Color |
属性値型"Color"は,[SRGB]で指定される色の定義を参照する。色の値は, (ハッシュ記号を前置した)16進数,又は次の16の色名の一つのどちらかでよい。色名は, 大文字・小文字を区別しない。
従って,色の値"#800080"及び"Purple"のどちらも紫色を参照する。 |
||||||||||||||||||||||||||||||||
ContentType | [RFC2045]に基づくメディア型 | ||||||||||||||||||||||||||||||||
ContentTypes | [RFC2045]に基づくメディア型の, コンマで分離したリスト | ||||||||||||||||||||||||||||||||
Coords | 定義領域で使用する座標の, コンマで分離したリスト | ||||||||||||||||||||||||||||||||
Datetime | 日時の情報 | ||||||||||||||||||||||||||||||||
FPI | SGML公式公開識別子を表わす文字列 | ||||||||||||||||||||||||||||||||
FrameTarget | ある動作の結果の対象として使用されるフレーム名 | ||||||||||||||||||||||||||||||||
LanguageCode | [RFC3066]に基づく言語コード | ||||||||||||||||||||||||||||||||
Length | 値は, 利用可能な上下若しくは左右の空間の画素又はパーセントのどちらかでよい。したがって,値"50%"は,利用可能な空間の半分を意味する。 | ||||||||||||||||||||||||||||||||
LinkTypes |
文書作成者は, 次の認識されるリンク型を使用してよい。ここでは,規約上の解釈を付けてリストする。LinkTypes値は,リンク型のスペースで分離したリストを参照する。リンク型の中では,空白文字は使用できない。 これらのリンク型は, 大文字・小文字を区別しない。つまり,"Alternate"は, "alternate"と同じ意味をもつ。 利用者エージェント,検索エンジンなどは,様々な方法で,これらのリンク型を解釈してよい。例えば,利用者エージェントは, ナビゲーションバーを通してリンク付き文書へのアクセスを提供してよい。
|
||||||||||||||||||||||||||||||||
MediaDesc |
MediaDesc属性は,メディア記述のコンマで分離したリストとする。認識されるメディア記述子のリストを次に示す。
XHTMLの将来版は, 新しい値を導入し,パラメタ形式の値を許容することになろう。これらの拡張の導入を促進するために,適合する利用者エージェントは,次のとおりにmedia属性を解析できなければならない。
備考 スタイルシートは,その中にメディア依存の変化を含んでよい(例えば, CSS @media 構成要素)。この場合,"media=all"を使用するのが相応しい。 |
||||||||||||||||||||||||||||||||
MultiLength | この値は, Length又は相対長であってよい。相対長は形式"i*"をもち,ここで"i"は整数とする。空間について競合する要素の間で空間を割り当てるとき,利用者エージェントは,まず画素及びパーセントの長さを割り当て,その後残りの利用可能な空間を相対長が分割する。各相対長は,"*"の前の整数に比例する利用可能な空間の一部を受け取る。値"*" は, "1*"に等価とする。したがって,利用者エージェントが画素及びパーセントの空間を割り当てた後で,60画素の空間を利用でき,競合する相対長が 1*,2*, 及び3*であれば,1*は10画素を割り当てられ, 2*は20画素を, 3*は30画素をそれぞれ割り当てられる。 | ||||||||||||||||||||||||||||||||
MultiLengths | 型MultiLengthの項目の, コンマで分離したリスト | ||||||||||||||||||||||||||||||||
Number | 1個以上の数字 | ||||||||||||||||||||||||||||||||
Pixels | 値は,描画面(画面,紙)の画素数を表す整数とする。したがって, 値"50"は50画素を意味する。画素の定義に関する規定情報については,[CSS2]を参照のこと。 | ||||||||||||||||||||||||||||||||
Script |
スクリプトデータは,"script"要素の内容, 及び組込みイベント属性の値とすることができる。利用者エージェントは,HTMLマーク付けとしてスクリプトデータを評価してはならず,しかし代りに,それをデータとしてスクリプトエンジンに渡さなければならない。 スクリプトデータの大文字・小文字の区別は, スクリプト言語に依存する。 要素内容であるスクリプトデータは,文字参照を含んではならないが,属性の値であるスクリプトデータは,それを含んでよいことに注意されたい。 |
||||||||||||||||||||||||||||||||
Shape | 領域の形状 | ||||||||||||||||||||||||||||||||
Text | 任意のテキストのデータであって,多くの場合,人間が読取り可能であること意味する。 | ||||||||||||||||||||||||||||||||
URI | [URI]に基づく統一資源識別子 | ||||||||||||||||||||||||||||||||
URIs | [URI]に基づく統一資源識別子の, スペースで分離したリスト |
4.4は,前述のとおり定義された構文規則の利用方法の例として,抽象モジュールの例を定義する。この例は, 定義されたすべての多様な構文要素を使用しようとしているため,非常に複雑になっている。典型的なモジュール定義は,これよりもかなり簡単になる。最後に,このモジュールが属性集合Commonを参照することに注意されたい。これは,ほとんどの要素が必要とするすべての基本属性を含むXHTMLモジュール化規定で定義される。
XHTMLスキーモジュールは,スキーロッジの外見を記述する際に使用されるマーク付けを定義する。このモジュールで定義される要素及び属性を次に示す。
要素 | 属性 | 最小の内容モデル |
---|---|---|
resort | Common, href (CDATA) | description, Aspen+ |
lodge | Common | description, (Aspen - lift)+ |
lift | Common, href | description? |
chalet | Common, href | description? |
room | Common, href | description? |
lobby | Common, href | description? |
fireplace | Common, href | description? |
description | Common | PCDATA* |
このモジュールは,内容集合Aspenをも最小の内容モデルlodge | lift | chalet | room | lobby | fireplaceで定義する。