Прежде чем использовать элемент в языке разметки, его нужно объявить в секции описаний DTD. Основной синтаксис для объявления элемента выглядит так:
<!ELEMENT name ContentModel>
В этом выражении name определяет имя элемента. Модель содержания есть выражение того, что элемент может содержать. В языках HTML и XHTML некоторые элементы способны включать в себя другие элементы, иные содержать только текст; часть из них ничего не содержит. Такие ограничения, наложенные на содержимое элементов, получили название моделей содержания (content models). Таким образом, языки XML и XHTML имеют четыре типа моделей содержания (табл. 13.1).
Таблица 13.1. Модели содержания, определенные в языке XHTML
Модель содержания Варианты содержательной части для компонентов
EMPTY (пустая) Содержание отсутствует (запрещено). Например, компоненты
img, hr, br
ANY (произвольная) Разрешен любой тип содержания (в языке XHTML 1.0 не опреде-
ляется, в приложениях используется редко)
ELEMENT (элемент) В содержание могут включаться только другие элементы
(например, содержанием для элемента ul могут быть только
элементы li)
MIXED (смешанная) Содержание формируется из данных и элементов (например, эле-
мент р может содержать элементы em и strong, а также текст)
Указание для элемента типа модели содержания EMPTY означает, что в данном элементе содержание может отсутствовать. Самый распространенный пример img. Следует отметить, что описание данного типа модели является наиболее простым. Например, описание элемента img в правилах DTD XHTML 1.0 выглядит так:
<!ELEMENT img EMPTY>
Существуют и более сложные описания. Рассмотрим элемент, представляющий маркированный список (ul), с типом модели содержания ELEMENT:
<[ELEMENT ul (li)+>
Такая модель уже упоминалась при обсуждении формализованной структуры описаний. В объявлении указывается, что элемент ul должен содержать один или несколько экземпляров элемента li.
Символ +, использованный в описании элемента ul, часто называют индикатором возможных появлений (occurrence indicator). В табл. 13.2 показаны три наиболее часто применяемых вида индикаторов.
Таблица 13.2. Типы индикаторов появления в DTD
Индикаторы Описание
возможных вариантов
• Элемент может быть необязательным (его нет, либо он сущест-
вует в единственном числе)
* Элемент может быть необязательным. Допустимо повторить его
ноль и более раз
+ Элемент существует обязательно. Может быть повторен один
и более раз
Модель содержания типа ELEMENT позволяет включать один и более элементов различного вида. Например, элемент tr (строка таблицы) может состоять из одного или нескольких элементов th (заголовок столбца) и td (содержание ячейки). Описание tr принимает следующий вид:
<!ELEMENT tr (th|td)+>
Символ вертикальной черты, разделяющий два элемента, указывает на выбор автором документа одного из них. Индикатор появления + сообщает об обязательном существовании минимум одного экземпляра элемента, хотя возможно его неоднократное повторение.
Примечание Индикатор появления применяется ко всему выражению, заключенному в скобки. Анализ выражения корректнее начинать с самого внешнего элемента, а затем переходить к элементам, указанным в скобках. Например, выражение вида (thltd)+ нужно трактовать следующим образом: «элемент tr должен содержать один или несколько элементов, ими могут быть th и td».
Пример. Когда комбинация элементов усложняется, модель содержания может включать несколько индикаторов, представленных в табл. 13.2. Рассмотрим пример объявления версии XHTML 1.0 Transitional для элемента table:
<!ELEMENT table
(caption?, (col* I colgroup*), thead?, tfoot?, (tbody+ I tr+))>
Проанализируем представленное выражение по частям. Перечень элементов, отделяемых друг от друга запятыми, называется последовательностью (sequence). Любой из элементов, принадлежащих ей, должен появиться внутри элемента, который эту последовательность обобщает. Исключением является случай, когда элемент модифицируется индикатором появления с возможным нулевым значением повторения. В модель содержания элемента table входят: необязательный элемент caption; один или несколько (при необходимости) экземпляров элемента, выбираемого автором из двух возможных (либо col, либо colgroup); необязательные элементы thead и tfoot; и, наконец, один или несколько экземпляров элемента tbody или tr. Если проанализировать данную последовательность, окажется, что единственными обязательными (к тому же на выбор) являются элементы tbody либо tr.
Внимание! В приведенной записи отсутствует элемент t d. Что же было описано: элементы, размещаемые внутри table или обязательно находящиеся там? Непосредственно внутри компонента table элемент td отсутствует, он включен в состав элемента tr (входящего в table). Поскольку он вложен в другой элемент, здесь он не упоминается. В определении описываются только элементы, принадлежащие первому уровню вложенности.
Опубликовал vovan666
April 08 2013 14:58:28 ·
0 Комментариев ·
3219 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.