Технология XSLT (Валиков) - страница 28

Определение списка атрибутов

Список атрибутов некоторого элемента задается следующим образом:

>элемент

> атрибут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, за которым следует значение, заключенное в кавычки — это задает атрибут, который всегда должен иметь одно и то же фиксированное значение;