Определения модели содержимого
Модель содержимого описывает, что может содержаться в экземпляре типа элемента. Определения модели содержимого могут включать:
Модель содержимого элемента указывается с использованием следующего синтаксиса:
( ... )
Разделяет группы. A | B
Происходит A или B, но не оба. A , B
Происходят A и B в указанном порядке. A & B
Происходят A и B в любом порядке. A?
A происходит ноль или один раз. A*
A происходит ноль или более раз. A+
A происходит один или несколько раз.
Вот некоторые примеры HTML DTD:
<!ELEMENT UL - - (LI)+>
Элемент должен содержать один или несколько элементов .
<!ELEMENT DL - - (DT|DD)+>
Элемент должен содержать один или несколько элементов или в любом порядке.
<!ELEMENT OPTION - O (#PCDATA)>
Элемент может содержать только текст и такие entities как & -- это определяется типом данных SGML #PCDATA.
Некоторые типы элементов HTML используют дополнительную функцию SGML для исключения элементов из модели содержимого. Исключенным элементам предшествует символ переноса. Явные исключения имеют приоритет по отношению к допустимым элементам.
В этом примере -(A) означает, что элемент не может находиться в другом элементе (то есть ссылки не могут быть вложенными).
<!ELEMENT A - - (%inline;)* -(A)>
Помните, что тип элемента является частью DTD комбинации параметров "%inline;", но явно исключается выражением -(A).
Точно так же следующее объявление типа элемента запрещает вложенные формы:
<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM)>