DTD範例11


ID型別屬性的值只能包含NMTOKEN允許的字元,並且必須以字母開頭。沒有元素型別可能指定了多個ID屬性。 ID屬性的值在所有ID屬性的所有值之間必須是唯一的。

DTD宣告

屬性idcodeX唯一地確定它們的元素:

<!ELEMENT XXX (AAA+ , BBB+ , CCC+)>
<!ELEMENT AAA (#PCDATA)>
<!ELEMENT BBB (#PCDATA)>
<!ELEMENT CCC (#PCDATA)>
<!ATTLIST AAA 
      id ID #REQUIRED>
<!ATTLIST BBB 
      code ID #IMPLIED
      list NMTOKEN #IMPLIED>      
<!ATTLIST CCC 
      X ID #REQUIRED
      Y NMTOKEN #IMPLIED>

有效文件

所有ID值都是唯一的:

<!DOCTYPE XXX SYSTEM "tutorial.dtd">

<XXX>
   <AAA id="a1"/>
   <AAA id="a2"/>
   <AAA id="a3"/>
   <BBB code="Yiibai-1223-142-6" list="14:5"/>
   <CCC X="zero" Y="16" />
</XXX>

屬性列表和Y的型別為NMTOKEN而不是ID。 因此,它們可以具有與ID屬性相同的值,或者在多個元素中具有相同的值:

<!DOCTYPE XXX SYSTEM "tutorial.dtd">

<XXX>
   <AAA id="L12"/>
   <BBB code="QW" list="L12"/>
   <CCC X="x-0" Y="QW" />
   <CCC X="x-1" Y="QW" />
</XXX>

無效的文件

ID屬性不能以數位開頭或包含NMTOKEN中不允許的字元:

<!DOCTYPE XXX SYSTEM "tutorial.dtd">

<XXX>
   <AAA id="L12"/>
   <BBB code="#QW" list="L12"/>
   <CCC X="12" Y="QW" />
</XXX>

ID屬性必須具有唯一值:

<!DOCTYPE XXX SYSTEM "tutorial.dtd">

<XXX>
   <AAA id="L12"/>
   <BBB code="QW" list="L12"/>
   <CCC X="ZA" Y="QW" />
   <CCC X="ZA" Y="QW" />
</XXX>

ID屬性必須具有唯一值。 idX都是ID型別:

<!DOCTYPE XXX SYSTEM "tutorial.dtd">

<XXX>
   <AAA id="L12"/>
   <BBB code="QW" list="L12"/>
   <CCC X="L12" Y="QW" />
</XXX>