occurrence indicator

occurrence indicator

[7] SGML出現標識 (occurrence indicator) は、 内容モデルにおいて出現の回数を規定するために使う記号です。

[8] SGMLDTD だけでなく、 XMLDTD でも使うことができます。ただし XML の仕様書では「出現標識」という用語は使われていません。

仕様書

SGML の場合

[2] 出現標識は、 内容モデルで使用して、 標識の付けられた構成要素 (要素またはモデル群またはデータタグ群) が出現できる回数を指定します。

出現標識規格参照区切子最低最大
なしなし11
opt?01
plus+1
rep*0

(JIS X 4151‐1992 10.2.4.2 参照。)

[3] 出現標識は正規表現BNF などで同じような意味に使われる修飾子とよく似ています。

数は 0, 1, +∞ しか用意されていませんが、 他の数もべた書きで実現できます。たとえば e 要素を 3〜∞ 個認める時には (e, e, e+) などと書けます。

最外モデル群の出現標識の認知

[2] 内容モデルの一番外側のモデル群についての出現標識 (例: <!ELEMENT someElementType - - (someContentModel)*>) が、 規格に厳密に従うとすると認知できなくなってしまいまして、 規格のミスではないかとの疑いが持たれています。

詳しくは出現標識の認知 - 2003年12月 - マーク付けノート <http://www.satoshii.org/markup/notes/2003/12#date10> を参照してください。

引数実体参照

[4] XML ではマーク付け宣言中の引数の部分に現れる引数実体参照が展開されるときに置換文の前後に S があるかのように処理されます。 出現標識の前には S を挿入することができません。 ですから、出現標識だけを引数実体に入れることはできません。

[5] 実体値引数実体参照なら暗黙の S の挿入が行われないので、一旦別の引数実体を使って間接的に出現標識だけを引数実体にすることはできます。