添加要素

inclusions (SGML)

[1]

添加要素 (inclusions)
適用モデルが許していなくても、要素又はその部分要素内容中のどこにでも許されている要素。 (JIS X 4151‐1992 3. (185))

[2] 例えば、内容モデル(foo|bar) +(baz) だと、本来 baz 要素は使えないはずなのですが、添加要素として敢えて示されているので、使えることになります。 この例では普通に内容モデルに加えるのとさして変わりませんが、内容モデルがより複雑な場合や子要素の内容との絡みによって、添加要素の仕組みがあると便利な場面がままあります。ちなみに XML には添加要素の仕組みはありません。内容モデル定義の便利さよりも妥当性検証の容易さを優先させた結果です。

[3] WebSGML では、名前の代わりに #ALL (全要素型) や #IMPLICIT (暗黙宣言要素型) を使用できます。いずれも、 (e1 | e2 |...| en)* と対象要素型を並べたのと同じ意味になります。 (K.4.11 参照。)

[4] 添加要素に含まれていても、除外要素になっていれば、そちらが優先されて結局使えません。

[5] 添加要素はその周辺の空白の扱いが他の要素と異なることがあります。 詳しくは SGML//空白を参照。