Чтение онлайн

на главную - закладки

Жанры

Технология XSLT

Валиков Алексей Н.

Шрифт:

[40] STag ::= '<' Name (S Attribute)* S? '>'

В ряде случаев атрибуты тега могут отсутствовать.

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

 href="#"

>

В закрывающем теге имени предшествует косая черта ("

/
") и перед закрывающей угловой скобкой тоже могут стоять пробелы:

[42] ETag ::= '</' Name S? '>'

Имена в открывающем

и закрывающем тегах должны совпадать.

Содержимое элемента может состоять из элементов (нетерминал

element
), сущностей (
Reference
), секций символьных данных (
CDSect
), инструкций по обработке (
PI
) и комментариев (
Comment
), перемешанных с символьными данными (
CharData
):

[43] content ::= CharData?

((element

| Reference

| CDSect

| PI

| Comment) CharData?)*

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

EmptyElemTag
в следующем виде:

[44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>'

Тег пустого элемента выглядит точно так же, как и тег непустого элемента с той лишь разницей, что перед закрывающей угловой скобкой стоит символ косой черты ("

/
"). В этом, кстати, одно из главных отличий синтаксиса языка XML от HTML. Например, вместо
<HR>
в XML следует писать
<HR/>
.

Замечание

Для того чтобы привести синтаксис HTML в соответствие со стандартом XML, был создан язык XHTML. Этот язык полностью соответствует синтаксису XML, что делает возможным обработку XHTML-документов XML-средствами, но при этом набор тегов XHTML идентичен набору тегов языка HTML. К сожалению, далеко не все браузеры поддерживают XHTML. Чаще всего проблемы возникают именно с пустыми элементами (или одиночными тегами в терминах HTML): например, браузеры могут некорректно воспринимать запись вида

<br/>
. В большинстве случаев проблема решается использованием перед косой чертой пробела: запись вида
<br />
, скорее всего, будет обработана корректно.

Атрибут

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

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

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

<а href="#">Заходите к нам!</а>

элемент

а
имеет атрибут
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

Поделиться:
Популярные книги

Доктор 4

Афанасьев Семён
4. Доктор
Фантастика:
альтернативная история
5.00
рейтинг книги
Доктор 4

Чужак

Листратов Валерий
1. Ушедший Род
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Чужак

Кодекс Крови. Книга I

Борзых М.
1. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга I

Ваше Сиятельство 7

Моури Эрли
7. Ваше Сиятельство
Фантастика:
боевая фантастика
аниме
5.00
рейтинг книги
Ваше Сиятельство 7

Ликвидатор на службе Империи. Том 5. Финал

NikL
5. Ликвидатор на службе Империи
Фантастика:
аниме
5.00
рейтинг книги
Ликвидатор на службе Империи. Том 5. Финал

Барон Дубов

Карелин Сергей Витальевич
1. Его Дубейшество
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Барон Дубов

Чехов. Книга 2

Гоблин (MeXXanik)
2. Адвокат Чехов
Фантастика:
фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Чехов. Книга 2

Идеальный мир для Лекаря 2

Сапфир Олег
2. Лекарь
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 2

Воронцов. Перезагрузка. Книга 2

Тарасов Ник
2. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
Воронцов. Перезагрузка. Книга 2

Седьмой Рубеж IV

Бор Жорж
4. 5000 лет темноты
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Седьмой Рубеж IV

Отмороженный 9.0

Гарцевич Евгений Александрович
9. Отмороженный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Отмороженный 9.0

Камень. Книга 4

Минин Станислав
4. Камень
Фантастика:
боевая фантастика
7.77
рейтинг книги
Камень. Книга 4

Отморозок 5

Поповский Андрей Владимирович
5. Отморозок
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Отморозок 5

Камень

Минин Станислав
1. Камень
Фантастика:
боевая фантастика
6.80
рейтинг книги
Камень