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