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

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

Жанры

Холзнер Стивен

Шрифт:

Возможно, вас это удивит, но

<?xsl:stylesheet?>
не является частью рекомендации XSLT. У этой инструкции обработки существует своя собственная рекомендация только для нее одной, которую можно найти по адресу www.w3c.org/TR/xml-stylesheet. Помимо прочего, это означает, что процессоры XSLT не обязаны поддерживать данную инструкцию обработки, и большинство отдельных процессоров не поддерживают ее.

Ниже приведен пример. В главе 1 мы рассмотрели файл

planets.xml
— хорошо сформированный документ XML, содержащий данные о трех планетах: Меркурии, Венере и Земле. Можно применить инструкцию обработки
<?xml-stylesheet?>
к
planets.xml
для задания используемой таблицы стилей XSLT. В инструкции следует установить тип атрибута в «text/xml» (W3C также позволяет «application/xml», a Internet Explorer требует «text/xsl») и атрибут href — в URI таблицы стилей XSLT, например
planets.xsl
:

Листинг 2.1. planets.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xml" href="#"?>

<PLANETS>

 <PLANET>

<NAME>Mercury</NAME>

<MASS UNITS="(Earth = 1)">.0553</MASS>

<DAY UNITS="days">58.65</DAY>

<RADIUS UNITS="miles">1516</RADIUS>

<DENSITY UNITS="(Earth = 1)">.983</DENSITY>

<DISTANCE UNITS="million miles">43.4</DISTANCE><!--B перигелии-->

 </PLANET>

 <PLANET>

<NAME>Venus</NAME>

<MASS UNITS="(Earth = 1)">.815</MASS>

<DAY UNITS="days">116.75</DAY>

<RADIUS UNITS="miles">3716</RADIUS>

<DENSITY UNITS="(Earth = 1)">.943</DENSITY>

<DISTANCE UNITS="million miles">66.8</DISTANCE><!--B перигелии-->

 </PLANET>

 <PLANET>

<NAME>Earth</NAME>

<MASS UNITS="(Earth = 1)">1</MASS>

<DAY UNITS="days">1</DAY>

<RADIUS UNITS="miles">2107</RADIUS>

<DENSITY UNITS="(Earth = 1)">1</DENSITY>

<DISTANCE UNITS="million miles">128.4</DISTANCE><!--B перигелии-->

 </PLANET>

</PLANETS>

Вот как следует работать с элементом

<?xml-stylesheet?>
; теперь можно начинать писать саму таблицу стилей. Я сделаю это, создав файл
planets.xsl
.

Элемент <xsl:stylesheet>

Таблицы стилей XSL начинаются с объявления XML, так как они являются хорошо сформированными документами XML, — поэтому

planets.xsl
начинается с такого же объявления:

<?xml version="1.0"?>

.

.

.

Однако объявление XML немедленно исключается процессором XSLT, и мы не будем на нем останавливаться в нашем обсуждении XSLT. Первый только XSL-элемент таблицы стилей XSL — это элемент

<xsl:stylesheet>
(не путайте его с инструкцией обработки
<?xml-stylesheet?>
из XML документа). Встречались и возражения против такого названия элемента: обычно он используется в преобразованиях XSLT, поэтому W3C позволяет в то же время ссылаться на этот элемент как на
<xsl:transform>
.

Вот пример использования этого элемента:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 .

 .

 .

В следующем списке перечислены атрибуты элемента

<xsl:stylesheet>
:

• 

id
(необязательный). Идентифицирует таблицу стилей. Устанавливается в имя XML;

• 

version
(обязательный). Определяет версию XSLT, необходимую для работы с таблицей стилей. Сейчас это значение обычно равно «1.0». Хотя можно установить это значение и в «1.1»; так как XSLT 1.1 не выйдет из стадии рабочего проекта, это значение, вероятно, не будет «корректным» значением с точки зрения W3C;

• 

extension-element-prefixes
(необязательный). Задает расширения в таблице стилей, используемые для идентификации элементов расширения. Принимает значение списка имен
NCName
, разделенных символами-разделителями;

• 

exclude-result-prefixes
(необязательный). Задает пространства имен таблицы стилей, которые не будут копироваться в выходные данные (если только они явно не используются в выходном документе). Принимает значение списка имен NCName, разделенных символами-разделителями.

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

<xsl:attribute-set>
,
<xsl:decimal-format>
,
<xsl:import>
,
<xsl:include>
,
<xsl:key>
,
<xsl:namespace-alias>
,
<xsl:output>
,
<xsl:param>
,
<xsl:preserve-space>
,
<xsl:strip-space>
,
<xsl:template>
или
<xsl:variable>
. XSLT добавляет к списку
<xsl:script>
.

Заметьте, что атрибут

id
этого элемента можно использовать в том случае, когда требуется сослаться на определенную таблицу стилей (заметьте также, что в этом случае необходим процессор XSLT, который умеет читать объявления DTD или схемы XML).

Атрибут задания версии обязателен, в данный момент его можно установить в «1.0». Можно также установить его в «1.1», определяя рабочий проект XSLT 1.1; однако, так как XSLT 1.1 не собирается выходить из стадии рабочего проекта, значение «1.1», скорее всего, не будет считаться корректным значением этого атрибута в долгосрочной перспективе. Везде в книге я буду устанавливать этот атрибут в значение «1.0», поскольку это текущая рекомендация XSLT W3C, а версия 1.1, видимо, останется только на стадии рабочего проекта. Как говорилось в главе 1, W3C также выпустил требования для XSLT 2.0, которая и будет следующей версией.

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

Наномашины, первоклашка! Том 4

Новиков Николай Васильевич
4. Чего смотришь? Иди книгу читай
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наномашины, первоклашка! Том 4

Кодекс Охотника. Книга XL

Винокуров Юрий
40. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XL

Защитник

Кораблев Родион
11. Другая сторона
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Защитник

Иной. Том 3. Родственные связи

Amazerak
3. Иной в голове
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Иной. Том 3. Родственные связи

Бездна

Кораблев Родион
21. Другая сторона
Фантастика:
боевая фантастика
рпг
уся
попаданцы
5.00
рейтинг книги
Бездна

Князь Андер Арес 2

Грехов Тимофей
2. Андер Арес
Фантастика:
рпг
аниме
фэнтези
фантастика: прочее
5.25
рейтинг книги
Князь Андер Арес 2

Черный Маг Императора 10

Герда Александр
10. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 10

Первый среди равных. Книга III

Бор Жорж
3. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
6.00
рейтинг книги
Первый среди равных. Книга III

Третий

INDIGO
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий

Эволюционер из трущоб. Том 4

Панарин Антон
4. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 4

Рассвет русского царства 3

Грехов Тимофей
3. Новая Русь
Фантастика:
историческое фэнтези
альтернативная история
5.00
рейтинг книги
Рассвет русского царства 3

Газлайтер. Том 27

Володин Григорий Григорьевич
27. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.25
рейтинг книги
Газлайтер. Том 27

Черный Маг Императора 4

Герда Александр
4. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 4

Беглец

Бубела Олег Николаевич
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Беглец