body 要素の内容モデルの実現のメカニズム構造モジュールにおける body 要素の内容モデル %body.content の定義は次のようになっています:
<!ENTITY % body.content "( %Block.mix; )+" >
XHTML 1.1 DTD ドライバで取り込む内容モデルモジュールでは、 %Block.mix; は次のように定義されています:
<!ENTITY % Block.mix
"%Heading.class;
| %List.class;
| %Block.class;
%Misc.class;"
>
一般的に、接尾辞 .mix を持つパラメタ実体は、異なるクラスに属する要素の集合であり、雑多なな要素の集合を意味します。要素の秩序的な集合である接尾辞 .class を持つパラメタ実体は次のように展開されます:
<!ENTITY % Heading.class "%h1.qname; | %h2.qname; | %h3.qname; | %h4.qname; | %h5.qname; | %h6.qname;" > <!ENTITY % List.class "%ul.qname; | %ol.qname; | %dl.qname;" > <!ENTITY % Block.class "%BlkStruct.class; %BlkPhras.class; %BlkPres.class; %BlkSpecial.class; %Block.extra;" > <!ENTITY % Misc.class "%Edit.class; %Script.class; %Misc.extra;" >
接尾辞 .qname とあるのは、要素名そのものと置き換えができます。
更に %Block.class 内のパラメタ実体を展開すると:
<!ENTITY % BlkStruct.class "%p.qname; | %div.qname;" > <!ENTITY % BlkPhras.class "| %pre.qname; | %blockquote.qname; | %address.qname;" > <!ENTITY % BlkPres.class "| %hr.qname;" > <!ENTITY % BlkSpecial.class "%Table.class; %Form.class; %Fieldset.class;" > <!ENTITY % Block.extra "" >
更に展開して、次のようになります:
<!ENTITY % Table.class "| %table.qname;" > <!ENTITY % Form.class "| %form.qname;" > <!ENTITY % Fieldset.class "| %fieldset.qname;" >
一方、 %Misc.class; は次のように展開されます:
<!ENTITY % Edit.class "| %ins.qname; | %del.qname;" > <!ENTITY % Script.class "| %script.qname; | %noscript.qname;" > <!ENTITY % Misc.extra "" >