Определение списка атрибутов
Список атрибутов некоторого элемента задается следующим образом:
>элемент
> атрибут1 тип1 значение1
> атрибут2 тип2 значение2
> и т. д...>
В этом определении >элемент
задает имя элемента, для которого определяется данный список атрибутов, >атрибут
— имя атрибута, >тип
— тип атрибута и >значение
— значение атрибута.
>Имя
атрибута отвечает в XML тем же самым требованиям, что и имя элемента — оно должно начинаться с буквы и может содержать другие буквы, цифры и некоторые знаки препинания.
>Тип
атрибута может быть одним из следующих:
□ >CDATA
— символьные данные;
□ >ID
— уникальный идентификатор;
□ >IDREF
— ссылка на уникальный идентификатор;
□ >IDREFS
— набор ссылок;
□ >ENTITY
— сущность;
□ >ENTITIES
— набор сущностей;
□ >NMTOKEN
— именной токен;
□ >NMTOKENS
— набор именных токенов;
□ >NOTATION
— нотация;
□ перечисление возможных значений атрибута.
Следует поподробнее остановиться на типе >ID
, поскольку атрибуты этого типа играют важную роль в повышении эффективности обработки XML-документов. Атрибуты типа >ID
могут содержать значения, которые однозначным образом идентифицируют элемент в документе. То есть, если тип атрибута объявлен как >ID
, его значение должно быть уникальным внутри документа. Это позволяет создавать для элементов с >ID
-атрибутами индексы по значению атрибута, для более быстрого доступа. Например, в языке XPath, имеется функция >id
, которая по данному строковому параметру возвращает множество, состоящее из элемента, >ID
-атрибут которого совпадает с этим параметром. Естественно, тип >ID
не гарантирует, что доступ к элементам в любом случае будет производиться быстрее — это зависит от реализации обрабатывающих программ. Однако большинство современных XML-процессоров при работе с >ID
-атрибутами используют механизмы оптимизации.
Тип >ID
может быть полезен и при создании кросс-ссылок между элементами в самих XML-документах, для описания информации, структура которой выходит за рамки обычных деревьев. Уникальные значения, заданные в атрибуте >ID
могут использоваться в атрибутах типов >IDREF
(ссылка на идентифицирующее значение) и >IDREFS
(набор таких ссылок).
>Значение
определяет, как и какие значения должны быть присвоены атрибуту. >Значением
может быть:
□ ключевое слово >#REQUIRED
, которое показывает, что этот атрибут должен всегда присутствовать в элементе и иметь некоторое значение;
□ ключевое слово >#IMPLIED
, которое показывает, что атрибут является необязательным и может отсутствовать в элементе;
□ ключевое слово >#FIXED
, за которым следует значение, заключенное в кавычки — это задает атрибут, который всегда должен иметь одно и то же фиксированное значение;