PHP 4 на практике


Определение типа документа (DTD) - часть 3


<!ELEMENT ingredients (ingredient+)>

В соответствии с определением элемент ingredients содержит один или несколько тегов с именем ingredient. Обратитесь к листингу 14.1, и вы все поймете.

<! ELEMENT ingredient (#PCDATA)>

Поскольку элемент ingredient соответствует отдельному ингредиенту, вполне логично, что этот элемент содержит простые символьные данные.

<! ELEMENT process (step+)>

Элемент process содержит один или несколько экземпляров элемента step. 

<! ELEMENT step (#PCDATA)>

Элемент step, как и элемент ingredient, соответствует отдельному пункту в списке более высокого уровня. Следовательно, он должен содержать символьные данные.

<!ATTLIST recipe category CDATA #REQUIRED>

Обратите внимание: элемент recipe в листинге 14.1 содержит атрибут. Этот атрибут, category, определяет общую категорию, к которой относится рецепт — в приведенном примере это категория «итальянская кухня» (Italian). В определении ATTLIST указывается как имя элемента, так и имя атрибута. Кроме того, отнесение каждого рецепта к определенной категории упрощает классификацию, поэтому атрибут объявляется обязательным (#REQUIRED).

]>

Последняя строка просто завершает определение DTD. Определение всегда должно быть должным образом завершено, иначе произойдет ошибка.

В завершение этого раздела я приведу сводку основных компонентов типичного DTD-файла:

  • объявления типов элементов;
  • объявления атрибутов;
  • ID, IDREF и IDREFS;
  • объявления сущностей.
  • Некоторые из этих компонентов уже встречались нам в описании листинга 14.2. Далее каждый компонент будет описан более подробно.

    Объявления элементов

    Все элементы, используемые в документе XML, должны быть определены в DTD, прилагаемом к документу. Мы уже встречались с двумя распространенными разновидностями определений: для элемента, содержащего другие элементы, и элемента, содержащего символьные данные. Данное определение свидетельствует, что элемент содержит только символьные данные: 

    <! ELEMENT описание (#РСDАТА)>




    - Начало -  - Назад -  - Вперед -



    Книжный магазин