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

Объявления атрибутов. Типы атрибутов, значения по умолчанию.

Объявление списка атрибутов определяет имена атрибутов, устанавливает тип для каждого атрибута и задаёт востребованность для каждого атрибута, в частности, может задавать значение атрибута по умолчанию. Объявление списка атрибутов имеет следующую форму записи:  <!ATTLIST Имя ОпрАтр> 

Здесь "Имя" - имя элемента, для которого задаются атрибуты. "ОпрАтр" - это одно или несколько определений атрибутов. Определение атрибута имеет следующую форму записи:  Имя ОпрАтр ОбъявУмолч 

Здесь "Имя" - имя атрибута. ОпрАтр представляет собой тип атрибута. ОбъявУмолч - это объявление значения по умолчанию, которое указывает на востребованность атрибута и содержит некоторую дополнительную информацию. Пример объявления:  <!ATTLIST PRODUCT Retail CDATA "retail" Title CDATA #REQUIRED> 

Вышеприведённое объявление означает, что вы можете присвоить атрибуту Retail любую строку в кавычках (ключевое слово CDATA); если этот атрибут опущен, ему будет присвоено значение по умолчанию "retail". Вы можете присвоить атрибуту Title любую строку в кавычках; этот атрибут должен быть обязательно задан для каждого элемента PRODUCT (ключевое слово #REQUIRED) и не имеет значения по умолчанию.

Объявления атрибутов просто включаются в DTD наряду с объявлениями типов элементов, например:  ... <!ELEMENT PRODUCT (#PCDATA)> <!ATTLIST PRODUCT Retail CDATA "retail" Title CDATA #REQUIRED> ...

Вы можете задавать тип атрибута тремя различными способами:

  • Строковый тип (ключевое слово CDATA, что означает символьные данные, Character Data).

  • Маркерный тип.

  • Нумерованный тип.

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

ID

  Для каждого элемента атрибут должен иметь уникальное значение. Элемент может иметь только один атрибут типа ID. В объявлении значения по умолчанию такого атрибута должно фигурировать #REQUIRED или #IMPLIED.

IDREF

  Значение такого атрибута является ссылкой на атрибут типа ID другого элемента .

IDREFS

  Этот тип атрибута похож на IDREF, но его значение может включать ссылки на несколько идентификаторов - разделённых пробелами - внутри строки в кавычках.

ENTITY

  Значение атрибута должно совпадать с именем примитива, объявленного в DTD. Такой примитив ссылается на внешний файл, обычно содержащий не XML-данные. Таким способом, например, определяют путь к файлу, содержащему графические данные (рисунок).

ENTITIES

  Этот тип атрибута похож на ENTITY, но его значение может включать ссылки на несколько идентификаторов, разделённых пробелами - внутри строки в кавычках. Таким способом, например, определяют пути к файлам, содержащим графические данные (рисунки) в альтернативных форматах.

NMTOKEN

  Элементарное имя.

NMTOKENS

  Этот тип атрибута похож на NMTOKEN, но его значение может включать несколько элементарных имён, разделённых пробелами - внутри строки в кавычках..

Два способа, которые вы можете использовать в определении нумерованных типов атрибутов:

  • Если вы хотите ограничить значение атрибута "Mass" словами "net" и "gross", вы можете написать следующее:  <!ATTLIST PRODUCT Mass (net | gross) "net"> 

  • Нумерованный тип можно определить с помощью ключевого слова NOTATION. Каждая из указанных нотаций должна точно соответствовать имени нотации, объявленному в DTD. Нотация описывает формат данных или идентифицирует программу, применяемую для обработки определённого формата данных:  <!ATTLIST PRODUCT Description NOTATION (HTML | SGML | RTF) #REQUIRED> 

Объявление значения атрибута по умолчанию может иметь четыре формы: 

#REQUIRED

  Вы должны задать значение атрибута для каждого элемента.

#IMPLIED

  Вы можете опустить атрибут, но никакое значение по умолчанию назначено не будет.

AttValue

  Собственно значение по умолчанию. Вы можете опустить атрибут, и ему будет назначено это значение по умолчанию.

#FIXED AttValue

  Вы можете опустить атрибут, и ему будет назначено это значение по умолчанию (AttValue). Если вы не опускаете атрибут, вы обязаны назначить ему это значение по умолчанию. При таком объявлении указывать атрибут в элементе имеет смысл только для того, чтобы сделать документ более понятным для восприятия.