head 要素の内容モデル実現のメカニズム

XHTML モジュールの手法としては、まず DTD ドライバーで内容モデルモジュール xhtml11-model-1.mod を取り込み、要素の集合を表すパラメタ実体 %HeadOpts.mix を定義し:

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

このパラメタ実体 %HeadOpts.mix を用いて head 要素で内容モデルが定義され、

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

これを 基準モジュールが上書きすると云う按配です:

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

因みに、接頭辞 .qname を持つパラメタ実体は、当該要素タイプのモジュールが定義の対象とする要素名です。例えば、 %style.qname であれば、 style 要素と読み替えることができます。

また、先程説明しましたが、接頭辞 .content は当該要素タイプの内容モデルであり、 .mix は雑多な要素タイプの集合をあらわします。

head 要素の内容モデル %head.content を定義するための DTD ドライバで取り込むモジュールの指定順番は、次のとおりです:

1. 内容モデルモジュール
PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN"
SYSTEM "http://www.w3.org/TR/xhtml11/DTD/xhtml11-model-1.mod"
2. 基準モジュール
PUBLIC "-//W3C//ELEMENTS XHTML Base Element 1.0//EN"
SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-base-1.mod"
3. 構造モジュール
PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN"
SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-struct-1.mod"

Copyright © 2001, SUGAI, Manabu. All rights reserved. 著作権は放棄していません。
FC2> ƒ‚ƒrƒbƒg