Атрибут

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

атрибут='значение'

Например, в записи гипертекстовой ссылки

<а href='http://www.xsltdev.ru'>Заходите к нам!</а>

элемент а имеет атрибут href, которому присвоено значение 'http://www.xsltdev.ru'.

В языке XML атрибуты всегда должны иметь значения. Например, атрибут selected в записи элемента

<option selected>

 выбранный элемент

</option>

будет задан с точки зрения XML некорректно, поскольку ему не присвоено значение. Заметим, что в HTML такое определение является вполне нормальным. Такую ошибку легко исправить следующим образом:

<option selected='selected'>

 выбранный элемент

</option>

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

<option selected='selected'>

 выбранный элемент

</option>

На практике часто бывает необходимым использовать в значениях атрибутов кавычки (например, для записи литералов). Следующий пример иллюстрирует, как это можно делать:

<auth login=''scott'' password=''tiger''/>

Атрибуту login присвоено значение 'scott' (включая двойные кавычки), атрибуту password — значение 'tiger' (включая одинарные кавычки).

В XML один элемент не может иметь атрибуты с одинаковыми именами.

Определение атрибута состоит из имени, за которым следует знак равенства, а затем, значение атрибута:

[41] Attribute ::= Name Eq Attribute

[25] Eq ::= S? '=' S?

[10] AttValue ::= ''' ([^<&'] | Reference)* '''

                  | ''' ([^<&'] | Reference)* '''

Значение атрибута записывается в одинарных или двойных кавычках, причем оно не может содержать символов '<' и '&', которые используются в XML как управляющие символы (< открывает тег элемента, а & — сущность). Вместе с тем, значение атрибута может содержать сущность (нетерминал Reference) — специальную конструкцию, о которой мы поговорим чуть позже.

Инструкция по обработке

В XML-документы могут быть включены не относящиеся к содержимому документа инструкции, несущие информацию для приложения, которое будет этот документ обрабатывать. Инструкции по обработке имеют вид:

<?приложение содержимое?>

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

Примером инструкции по обработке может послужить следующая запись:

<?serv cache-document?>

В данном случае целевое приложение имеет имя 'serv', а сама инструкция может быть интерпретирована как указание серверу на то, что документ нужно сохранить в кэше. Естественно, инструкции по обработке имеют смысл только для тех приложений, которым они адресуются.

Продукции инструкций по обработке имеют следующий вид:

[16] PI ::= '<?' PITarget

            (S (Char* - (Char* '?>' Char*)))? '?>'

В этом правиле выражение (S (Char* - (Char* '?>' Char*)))? означает, что приложение и содержимое инструкции по обработке разделены пробельными символами, причем содержимое состоит из любых символов, кроме последовательности '?>', которая обозначает конец инструкции.

Целевое приложение может иметь любое имя (кроме 'xml' в любом регистре символов). Имя целевого приложения определяется EBNF-правилом PITarget:

[17] PITarget ::= Name - (('X' | 'х') ('М' | 'm') ('L' | 'l'))

В XML определена особая конструкция, называемая ХМL-декларацией (XML declaration). Она имеет вид:

<?xml version='версия' encoding='кодировка' standalone='yes | no'/>

Несмотря на то, что XML-декларация очень похожа на инструкцию по обработке, с точки зрения стандарта она таковой не является. Если же подходить менее строго, то смысл XML-декларации полностью соответствует смыслу инструкции по обработке: она сообщает обрабатывающему данный документ программному обеспечению информацию о некоторых свойствах этого документа. XML-декларация может содержать псевдоатрибуты version, encoding и standalone, которые мы рассмотрим ниже.

Замечание

В отличие от элементов, XML-декларация, как и инструкции по обработке не могут иметь атрибутов. Однако их содержимое очень часто образуется в форме имя='значение' — такие объявления и называются псевдоатрибутами.

Псевдоатрибут version содержит информацию о версии XML, в соответствии с которой был создан этот документ. Текущей версией языка XML является 1.0, поэтому в большинстве случаев указывается version='1.0'.

Пример

<?xml version='1.0'?>

Псевдоатрибут encoding сообщает, в какой кодировке создан данный документ. По умолчанию выбрана Unicode-кодировка UTF-8 (подробнее см. 'Использование Unicode'), но точно так же может быть использована и любая другая кодировка, лишь бы только ее поддерживало программное обеспечение, обрабатывающее документ.

Пример
Вы читаете Технология XSLT
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату