Введение в XML

Символы в DTD


Есть несколько символов, используемых в DTD для индикации того, как часто (или когда) что-либо может появляться в XML-документе. Вот некоторые примеры и их смысл:

  • <!ELEMENT address (name, city, state)>

    Элемент <address> должен содержать элементы <name>, <city> и <state> в таком порядке. Все элементы являются обязательными. Запятая показывает список элементов.

  • <!ELEMENT name (title?, first-name, last-name)>

    Это означает, что элемент <name> содержит необязательный элемент <title>, за которым следуют обязательные элементы <first-name> и <last-name>. Знак вопроса показывает, что элемент является необязательным; он может появляться один раз или не появляться вообще.

  • <!ELEMENT addressbook (address+)>

    Элемент <addressbook> содержит один или более элементов <address>. Вы можете иметь столько элементов <address>, сколько вам нужно, но должен присутствовать хотя бы один. Знак плюс показывает, что элемент появляется хотя бы один раз, но может появляться и сколько угодно раз.

  • <!ELEMENT private-addresses (address*)>

    Элемент <private-addresses> содержит ноль или более элементов <address>. Звездочка показывает, что элемент может появляться сколько угодно раз, включая ноль.

  • <!ELEMENT name (title?, first-name, (middle-initial | middle-name)?, last-name)>

    Элемент <name> содержит необязательный элемент <title>, за которым следует элемент <first-name>, за которым, возможно следует элемент <middle-initial> или элемент <middle-name> , за которым следует элемент <last-name>. Другими словами, оба элемента <middle-initial> и <middle-name> являются необязательными, и вы можете иметь только один из этих двух. Вертикальная черта показывает список вариантов; вы можете выбрать только один элемент из списка. Также заметьте, что этот пример использует скобки для группирования определенных элементов и он использует знак вопроса применительно к группе.

  • <!ELEMENT name ((title?, first-name, last-name) | (surname, mothers-name, given-name))>

    Элемент <name> может содержать одну из двух последовательностей. Необязательный <title>, за которым следуют <first-name> и <last-name>; или <surname>, <mothers-name> и <given-name>.



Содержание раздела