English | česky | Español | >> По-русски << | Français | Italiano | Deutsch | MagyarZVON > Tutorials > DTD Tutorial
>> Пример 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>
   

Атрибут ref элемента CCC имеет тип 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>