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 ドライバで取り込むモジュールの指定順番は、次のとおりです:
PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN" SYSTEM "http://www.w3.org/TR/xhtml11/DTD/xhtml11-model-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML Base Element 1.0//EN" SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-base-1.mod"
PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN" SYSTEM "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-struct-1.mod"