一意の値を持つ属性を参照する
前ページで定義したID属性の値を参照する属性のことをIDREFと呼びます。IDREF属性には、そのXML文書のID属性値を空白(ホワイトスペース)で区切って指定します。
1. <!ATTLIST tag と入力します。
tagの部分には、属性を指定するようその名前を入力します。
2. attribute と入力します。
attributeの部分には、そのタグに追加する情報を識別するための名前を入力します。
3. IDREF と入力します。
この属性には、ほかの属性のID値と一致する値だけをしてできることを示します。
または IDREFS と入力します。
これは、その属性には、ホワイトスペースで区切って複数のID値を指定できることを示します。
4. "default" と入力します。
これは、その要素内でこの単位を好きな数だけ指定でkることを示します。全く指定しないこともできます。
または、#FIXED "default" と入力します。
defaultの部分に規定値を入力します。この属性には必ずこの値を設定することを示します。
または、#REQUIRED と入力します 。
これはmその属性には何らかの値を指定しなければならないことを示します。
または、#IMPLIED と入力します。
これは、属性に規定値がなく、省略することもできることを示します。
5. 要素に含める核属性ごとに 2.~4.を繰り返します。
6. > と入力して属性の宣言を終えます。
・同じDTD内に参照先となるID型の属性がなければ、IDREF型属性を定義しても無意味です。
・同じID値を参照するIDREF型属性を複数指定することもできます。一意でなければならないのはID値だけです。
・IDREFS型属性の中に同じ値を繰り返し指定できないようにする方法はありません。たとえば contents="T143T143T143"という指定はDTDに対して完全に有効です。要素と属性の内容をもっと細かく制御したい場合は、DTDではなくXML Schemaを使わなければなりません。