条件区間 (conditional section) は、文書型宣言外部部分集合又は外部引数実体の一部であって、 これを領める見出し語に基づき DTD の論理構造に含まれ、または除外される。 (<http://www.w3.org/TR/REC-xml#sec-condition-sect>, <http://www.w3.org/XML/xml-V10-2e-errata#E60>)
式 62, 63 の中の強調部分が、引数実体参照に置換され得る部分です。 他の部分に実体参照を使うことは出来ません。(式 64 の部分に引数実体参照のように見えるものを使うことは出来ますが、認知されません。)
また、式 61 の部分全体が他の実体の一部であることは構いませんが、 その途中で分断されていてはいけません。 (悪い例:
<!ENTITY e1 "<! foo">
<!ENTITY e2 " bar ]]>">
%e1;%e2;
)
(以上、XML//妥当性制約「Proper Conditional Section/PE Nesting」 (条件区間と引数実体が適当に入れ子になっていること)。)
状態見出し語指定
の部分の状態見出し語の前後に空白を入れたり、そもそも引数実体を使って表現したりすることが可能です。[6] 激しくひどい話だと思うのですが、 <http://www.w3.org/XML/xml-V10-2e-errata#E60> で Clarification (明確化) と称してひどく非互換な変更が行われてます。
それまで条件区間を使えたのは外部部分集合だけだったんですが、 内部部分集合から参照されている外部引数実体でも OK ってことになってます。
[7] >>6 内部部分集合で参照される外部引数実体ではマーク区間宣言が認められますが、 内部部分集合で参照される内部引数実体では認められません。 (名無しさん)