Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lec_dtd.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
83.46 Кб
Скачать

Более сложные модели содержания

Базовые типы содержания элементов, можно использовать для описания более сложных моделей содержания.

Для элементов с элементным и смешанным содержанием в скобках перечисляются элементы, которые могут вложены в определяемый. Интерпретация зависит от служебных символов, включенных в описание модели.

Например, можно определить, где и сколько раз может появиться тот или иной элемент. Для этого используется специальная система обозначений.

<!ELEMENT chapter (title,summary?,paragraphs+)>

Символ

Имя символа

Описание

Операторы порядка

|

вертикальная черта

играет роль связки "или"

,

запятая

указывает, что элемент, расположенный перед

запятой, должен появляться первым, а за ним

следовать элемент, записанный после запятой

(определяет обязательный порядок элементов)

( )

круглые скобки

служат для группировки элементов с указанием

порядка их появления; все элементы,

расположенные в скобках, должны быть

предварительно определены

Операторы множественности (кардинальности)

?

знак вопроса

указывает, что перечисленные элементы

являются необязательными, но если элемент

указан, то он может использоваться только

один раз (0 – 1)

*

звездочка

указывает, что элемент может перечисляться

любое количество раз или ни разу (ноль или

больше, 0 – )

+

плюс

по крайней мере, должен присутствовать один

элемент, и этот элемент может использоваться

более чем один раз (один или больше, (1 – )

отсутствие

символов

указывает на то, что может использоваться

один и только один из элементов (1)

(cardinal number переводится как "количественное существительное").

Совместно с группировкой моделей элементов или содержания множители позволяют формировать очень сложные структуры. Например,

<!ELEMENT FromBasket (Cherry+, (Apple|Orange)*)>

Атрибуты

Атрибуты обеспечивают дополнительную информацию об элементах XML и их содержании. Если элемент — пустой, то атрибуты могут взять на себя его информационную нагрузку. Если же в элементе есть содержание, то атрибуты, как правило, описывают или дополняют это содержание. Элемент может иметь любое количество связанных с ним атрибутов.

В проверку документа с помощью DTD на состоятельность проводится контроль атрибутов.

Для объявления списка атрибутов элемента в определениях DTD используется инструкция <!ATTLIST>. Декларация ATTLIST состоит из:

а) ключевого слова ATTLIST,

б) имени элемента, для которого определяется список атрибутов,

в) ноля или более определений атрибутов.

Для простоты чтения определение каждого атрибута располагают в отдельной строке. Определение атрибута состоит из трех частей:

1. имени атрибута, которое выбирается по тем же правилам, что и имена элементов,

2. типа принимаемых атрибутом значений,

3. наличия значения по умолчанию и, если оно есть, и декларации его типа.

Атрибут может быть приписан к одному из следующих четырех типов, выбор которых влияет на использование значения по умолчанию.

Параметры атрибута

по умолчанию

Значение

#REQUIRED

Атрибут обязательный, он должен быть включен в каждый экземпляр элемента, поэтому значение по умолчанию не требуется

#IMPLIED

Значение по умолчанию не предполагается

#FIXED +значение

Атрибут всегда должен принимать указанное значение.

Значение в кавычках

Задается значение атрибута по умолчанию

Примером атрибута с фиксированным значением является html-атрибут checked. Если он имеется, то всегда имеет одно и то же значение: checked="checked".

Если задается значение по умолчанию, то оно указывается в кавычках в конце описания атрибута.

<!ELEMENT myElement EMPTY>

<!ATTLIST myElement

name ID #IMPLIED

att2 CDATA #FIXED "A"

att3 CDATA #REQUIRED

is_printable (yes|no) "yes"

>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]