[7] [[SGML]] の[DFN[[RUBYB[[[出現標識]]]@en[occurrence indicator]]]]は、 [[内容モデル]]において出現の回数を規定するために使う記号です。 [8] [[SGML]] の [[DTD]] だけでなく、 [[XML]] の [[DTD]] でも使うことができます。ただし [[XML]] の仕様書では「[[出現標識]]」という用語は使われていません。 * 仕様書 [REFS[ - [6] [CITE@EN[Extensible Markup Language (XML) 1.0 (Fifth Edition)]] ([TIME[2013-05-28 20:49:56 +09:00]] 版) ]REFS] * SGML の場合 [REFS[ -[1] [CODE(ABNF)[[DFN[出現標識]] := [CODE(SGML)[[[opt]]]] / [CODE(SGML)[[[plus]]]] / [CODE(SGML)[[[rep]]]] ;; [[JIS X 4151]]‐1992 (132)]] ]REFS] [2] [DFN[出現標識]]は、 [[内容モデル]]で使用して、 標識の付けられた構成要素 ([[要素]]または[[モデル群]]または[[データタグ群]]) が出現できる回数を指定します。 ,出現標識 ,[[規格参照区切子]],最低,最大 ,なし ,なし,1 ,1 ,[CODE(SGML)[opt]] ,[CODE(SGML)[?]],0 ,1 ,[CODE(SGML)[plus]],[CODE(SGML)[+]],1 ,∞ ,[CODE(SGML)[rep]] ,[CODE(SGML)[*]],0 ,∞ (JIS X 4151‐1992 10.2.4.2 参照。) [3] 出現標識は[[正規表現]]や [[BNF]] などで同じような意味に使われる修飾子とよく似ています。 数は 0, 1, +∞ しか用意されていませんが、 他の数もべた書きで実現できます。たとえば [SAMP(SGMLe)[e]] 要素を 3〜∞ 個認める時には [SAMP(SGML)[([SAMP(SGMLe)[e]], [SAMP(SGMLe)[e]], [SAMP(SGMLe)[e]]+)]] などと書けます。 [[#comment]] * 最外モデル群の出現標識の認知 [2] 内容モデルの一番外側のモデル群についての出現標識 (例: [SAMP(SGML)[]]) が、 規格に厳密に従うとすると認知できなくなってしまいまして、 規格のミスではないかとの疑いが持たれています。 詳しくは''出現標識の認知 - 2003年12月 - マーク付けノート'' を参照してください。 * 引数実体参照 [4] [[XML]] では[[マーク付け宣言]]中の[[引数]]の部分に現れる[[引数実体参照]]が展開されるときに[[置換文]]の前後に [CODE(XML)@en[[[S]]]] があるかのように処理されます。 [[出現標識]]の前には [CODE(XML)@en[[[S]]]] を挿入することができません。 ですから、[[出現標識]]だけを[[引数実体]]に入れることはできません。 ;; [5] [[実体値]]の[[引数実体参照]]なら暗黙の [CODE(XML)@en[[[S]]]] の挿入が行われないので、一旦別の[[引数実体]]を使って間接的に[[出現標識]]だけを[[引数実体]]にすることはできます。