DTD示例12
IDREF
屬性的值必須與文檔中某些ID
屬性的值匹配。 IDREFS
屬性的值可以包含對具有以空格分隔的ID
屬性的元素的多個引用。
DTD聲明
屬性id
和mark
唯一地確定元素。 屬性ref
引用這些元素:
<!ELEMENT XXX (AAA+ , BBB+, CCC+, DDD+)>
<!ELEMENT AAA (#PCDATA)>
<!ELEMENT BBB (#PCDATA)>
<!ELEMENT CCC (#PCDATA)>
<!ELEMENT DDD (#PCDATA)>
<!ATTLIST AAA
mark ID #REQUIRED>
<!ATTLIST BBB
id ID #REQUIRED>
<!ATTLIST CCC
ref IDREF #REQUIRED>
<!ATTLIST DDD
ref IDREFS #REQUIRED>
有效的文檔
所有ID
值都是唯一的,所有IDREF
和IDREFS
都指向具有相關ID的元素:
<!DOCTYPE XXX SYSTEM "tutorial.dtd">
<XXX>
<AAA mark="a1"/>
<AAA mark="a2"/>
<AAA mark="a3"/>
<BBB id="b001" />
<CCC ref="a3" />
<DDD ref="a1 b001 a2" />
</XXX>
無效的文檔
沒有ID
屬性,帶有引用a3
或b001
屬性:
<!DOCTYPE XXX SYSTEM "tutorial.dtd">
<XXX>
<AAA mark="a1"/>
<AAA mark="a2"/>
<BBB id="b01" />
<CCC ref="a3" />
<DDD ref="a1 b001 a2" />
</XXX>
元素CCC
中的屬性ref
的類型爲IDREF
。 它只能包含一個引用:
<!DOCTYPE XXX SYSTEM "tutorial.dtd">
<XXX>
<AAA mark="a1"/>
<AAA mark="a2"/>
<AAA mark="a3"/>
<BBB id="b001" />
<CCC ref="a1 b001 a2" />
<DDD ref="a1 b001 a2" />
</XXX>