ELEMENT
Инструкция ELEMENT применяется для объявления каждого элемента, который используется внутри типа документа, определенного в DTD. Сначала инструкция объявляет имя элемента, а затем определяет, какое содержимое допустимо в элементе.
Синтаксис
<!ELEMENT name content >
Параметры
name
Имя элемента. Необходимо точно воспроизвести регистр.content
Допустимая модель содержимого для элемента может быть одной из следующих.ANY - внутри элемента допускается любое содержимое. При использовании в объявлении элемента, это ключевое слово разрешает открытие неограниченной модели содержимого для элементов и всех дочерних узлов.
EMPTY - в элементе не допускается содержимое, он должен оставаться пустым.
Объявленное правило для содержимого - в этом случае требуется написать правило для содержимого, заключенное в круглые скобки.
В следующей таблице показаны зарезервированные ключевые слова и символы пунктуации, которые могут быть использованы вместе с именами других элементов, объявленных в DTD, для конструирования правила для содержимого элемента.
Символы
Описание
#PCDATA
Содержимое элемента может быть анализируемыми символьными данными.
name
Имя элемента. Имя определяемого элемента или других элементов, определенных в DTD, заданное с помощью дополнительных объявлений ELEMENT.
Если в правиле для содержимого нет других символов или знаков пунктуации, то допускается и требуется только одно вхождение именнованного элемента.
()
В объявлении модели содержимого для элемента требуются как минимум одни круглые скобки (можно вкладывать дополнительные скобки). Дополнительные скобки могут понадобится для уточнения более сложной модели содержимого для элемента.
|
Вертикальная черта используется для отделения двух именнованных элементов. При использовании она указывает, что любой из элементов (до или после вертикальной черты) может отображаться как дочерний элемент.
,
Запятая используется для отделения двух именнованных элементов или вложенных правил. При использовании она указывает на порядок отображения элементов или правил.
?
Вопросительный знак используется в качестве суфикса или операнда. При использовании указывает, что предыдущий элемент или правило является необязательным. Может использоваться только один раз в данном фрагменте структуры XML-документа.
+
Знак плюс используется в качестве суфикса или операнда. При использовании указывает, что предыдущий элемент или правило является обязательным. Может использоваться более одного раза в данном фрагменте структуры XML-документа.
*
Звездочка используется в качестве суфикса или операнда. При использовании указывает, что предыдущий элемент или правило является необязательным. Может использоваться более одного раза в данном фрагменте структуры XML-документа.
Примеры
Объявляет элемент <test>, который может содержать любое содержимое.
<!ELEMENT test ANY >
Объявляет элемент <Image> , который должен быть пустым (т. е. не может иметь содержимого):
<!ELEMENT Image EMPTY >
Объявляет элемент <title>, который может содержать только символьные данные (и никакой другой разметки).
<!ELEMENT title (#PCDATA) >
Объявляет элемент <fruit>, содержащий элемент <apple> или элемент <orange>.
<!ELEMENT fruit (apple|orange) >
Объявляет элемент <book>, который должен содержать элемент <author>, за которым следует элемент <title>.
<!ELEMENT book (author,title) >
Объявляет элемент <memo>, который должен содержать элемент <body>, за которым необязательно должен следовать элемент <postscript>.
<!ELEMENT memo (body,postscript?) >
Объявляет элемент <catalog>, который должен содержать один или более элемент <book>.
<!ELEMENT catalog (book+) >
Объявляет элемент <table>, который может быть пустым, либо содержать элементы <rowset>.
<!ELEMENT table (rowset*) >