[1] SGML 一般体系のID 即時参照要素型 (ireftype
) 属性形式を使うと、
ID 参照の直接の参照先の要素型を制御できます。
この属性形式ではID 即時参照要素型 (ireftype
) 属性だけが定義されています。
[2] 仕様書:
ireftype
ireftype
CDATA
(("#ALL", (GI | modelgroup | "#ANY"))?, (ATTORCON, (GI | modelgroup | "#ANY"))*)
(ある ATTNAME
や #CONTENT
は一度のみ使用可能)#ALL #ANY
[4] 属性値は、制約の適用対象である ID 参照を書く場所と制約の組の並びを記述します。
ここで ID 参照とは IDREF
や
IDREFS
で宣言された属性か、
字句型制約によって ID 参照を含んでいると宣言された属性やデータ内容です。
属性の場合は属性名を指定します。内容の場合は #CONTENT
と指定します。 #ALL
を指定するとそれらすべてを意味します。
なお、属性名や #CONTENT
は高々1回しか使えません。
制約は参照される側の要素型を指定します。
要素型は、共通識別子1つか、共通識別子による模型群か、
何でもよいことを表す #ANY
を指定します。
(共通識別子1つの後には出現標識がついていても構いません。)
一般体系の選択肢 irefmodel
(一般体系宣言の項を参照。)
に対応していれば、
模型群として任意の妥当な SGML 模型群を記述できます。
出現標識なしの共通識別子だけの指定や繰り返し OR
群以外の模型群が指定された場合は、参照先が指定された要素型のどれか1つに限られます。
対応していない時には、共通識別子だけの指定
(繰り返し可能でも構いません。) か繰り返し可能・繰り返し不能の
OR
群しか指定できません。
[5] #ALL
による指定は、他の指定によって上書きできます。
[6] 要素型の制約は直接の参照対象にのみ適用されます。 参照が位置経路の場合は、制約は経路全体によって番地付けされる物体ではなく、 経路中の最初の位置番地にのみ適用されます。