Для того чтобы создавать таблицы стилей XSLT, вы должны хорошо знать элементы XSLT, такие как и . Эти элементы поддерживают большое число атрибутов, и W3C выработал ряд формальных определений типов данных, которые можно присваивать этим атрибутам. Вот ряд определений XSLT; их необходимо знать:
• NCNameChar
. Буква, цифра, точка, дефис или символ подчеркивания;
• NCName
. Буква или символ подчеркивания, за которым (не обязательно) следуют данные типа NCNameChars
. То есть это имя XML, не содержащее двоеточий (определение имен XML приводится в главе 1);
• QName
. Полностью определенное (qualified) имя. Оно формируется из префикса (должен принадлежать к типу NCName
), за которым следуют двоеточие и локальная часть (которая также должна быть типа NCName
);
• NameTest
. Имя (например, «book») или обобщенное имя с символами подстановки (как, например, «book*» или «*»).
Теперь можно начать создавать таблицы стилей XSLT. Первым элементом будет элемент для связывания таблиц стилей с документами XML .
Когда у нас есть таблица стилей XSL, которую нужно применить к документу XML, требуется каким-то образом связать эту таблицу стилей с документом, — для чего часто используется инструкция обработки . У этой инструкции есть несколько возможных атрибутов:
• href
(обязательный). URI таблицы стилей. Может быть полный URI, либо фрагмент из #new_style
. Устанавливается в URI;
• type
(обязательный). Тип MIME таблицы стилей. Обычно «text/xml» или «application/xml». Для Internet Explorer используйте «text/xsl». Устанавливается в допустимый тип MIME;
• title
(необязательный). Заголовок позволяет различить несколько различных элементов . Некоторые разборщики XML позволяют задать, какой из них использовать. Устанавливается в строковое значение;
• media
(необязательный). Описание средств вывода, например «print» или «aural» (звуковой). Устанавливается в одно из значений, перечисленных в спецификации W3C HTML 4.0;
• charset
(необязательный). Устанавливает кодировку символов. Заметьте, что таблицы стилей XSLT устанавливают свои собственные кодировки, поскольку они являются документами XML, так что практической пользы этот атрибут не имеет. Устанавливается в кодировку символов — например в «UTF-8»;
• alternate
(необязательный). Принимает либо значение «yes» (да), которое является признаком альтернативной таблицы стилей, либо «no» (нет), означающее предпочитаемую таблицу стилей.
Инструкция обработки добавляется в документ XML, а не в таблицу стилей, и указывает процессору XSLT, какую таблицу стилей применять к данному документу.
На практике используется главным образом с браузерами, поскольку для отдельных процессоров таблица стилей, как правило, задается непосредственно — как, например, при использовании процессора XSLT Oracle:
C:\planets>java oracle.xml.parser.v2.oraxsl planets.xml planets.xsi planets.html
Возможно, вас это удивит, но не является частью рекомендации XSLT. У этой инструкции обработки существует своя собственная рекомендация только для нее одной, которую можно найти по адресу www.w3c.org/TR/xml-stylesheet. Помимо прочего, это означает, что процессоры XSLT не обязаны поддерживать данную инструкцию обработки, и большинство отдельных процессоров не поддерживают ее.
Ниже приведен пример. В главе 1 мы рассмотрели файл planets.xml
— хорошо сформированный документ XML, содержащий данные о трех планетах: Меркурии, Венере и Земле. Можно применить инструкцию обработки к planets.xml
для задания используемой таблицы стилей XSLT. В инструкции следует установить тип атрибута в «text/xml» (W3C также позволяет «application/xml», a Internet Explorer требует «text/xsl») и атрибут href — в URI таблицы стилей XSLT, например planets.xsl
:
Листинг 2.1. planets.xml
Mercury
.0553
58.65
1516
.983
43.4
Venus
.815
116.75
3716
.943
66.8
Earth
1
1
2107
1
128.4
Вот как следует работать с элементом ; теперь можно начинать писать саму таблицу стилей. Я сделаю это, создав файл planets.xsl
.
Таблицы стилей XSL начинаются с объявления XML, так как они являются хорошо сформированными документами XML, — поэтому planets.xsl
начинается с такого же объявления:
.
.
.
Однако объявление XML немедленно исключается процессором XSLT, и мы не будем на нем останавливаться в нашем обсуждении XSLT. Первый только XSL-элемент таблицы стилей XSL — это элемент (не путайте его с инструкцией обработки из XML документа). Встречались и возражения против такого названия элемента: обычно он используется в преобразованиях XSLT, поэтому W3C позволяет в то же время ссылаться на этот элемент как на .
Читать дальше