Алексей Валиков - Технология XSLT

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Описание книги "Технология XSLT"
Описание и краткое содержание "Технология XSLT" читать бесплатно онлайн.
Книга посвящена разработке приложений для преобразования XML-документов с использованием XSLT — расширяемого языка стилей для преобразований. Обсуждается применение языков XSLT и XPath в решении практических задач: выводу документов в формате HTML, использованию различных кодировок для интернационализации и, в частности, русификации приложений, вопросам эффективности существующих подходов для решения проблем преобразования. Для иллюстрации материала используется большое количество примеров.
Для начинающих и профессиональных программистов
[40] STag ::= '<' Name (S Attribute)* S? '>'
В ряде случаев атрибуты тега могут отсутствовать.
Перед закрывающей угловой скобкой тега могут также стоять пробельные символы, поэтому вполне корректной будет следующая запись:
<а
href="http://www.xsltdev.ru"
>
В закрывающем теге имени предшествует косая черта ("/") и перед закрывающей угловой скобкой тоже могут стоять пробелы:
[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="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"), но точно так же может быть использована и любая другая кодировка, лишь бы только ее поддерживало программное обеспечение, обрабатывающее документ.
ПримерБольшинство документов, созданных на русском языке, используют кириллические кодировки windows-1251 и KOI8-R; XML-декларации для этих документов будут иметь вид:
<?xml version="1.0" encoding="windows-1251"?>
и
<?xml version="1.0" encoding="KOI8-R"?>
соответственно.
Для документов, в которых использовались только нижние 127 символов ASCII, то есть, символы с кодами, не превышающими #x7F, псевдоатрибут encoding указывать необязательно. В этой области символов кодировка UTF-8 совпадает с ASCII.
Псевдоатрибут standalone говорит о том, использует ли этот документ какие-либо внешние объявления или нет. Как мы узнаем чуть позже, XML-документы могут использовать информацию, которая находится во внешних документах. Опция standalone, имеющая значение "yes", означает, что документ не содержит таких объявлений, и, значит, может быть обработан без обращения к внешним источникам.
Декларации XML соответствует продукция XMLDecl, которая, в свою очередь, использует несколько дочерних правил:
[23] XMLDecl ::= '<?xml' VersionInfo EncodingDecl?
SDDecl? S? '?>'
Продукция VersionInfo определяет синтаксис псевдоатрибута version:
[24] VersionInfo ::= S? 'version' Eq
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "Технология XSLT"
Книги похожие на "Технология XSLT" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Алексей Валиков - Технология XSLT"
Отзывы читателей о книге "Технология XSLT", комментарии и мнения людей о произведении.