Книга: Технология XSLT

Элементы xsl:stylesheet и xsl:transform

Элементы xsl:stylesheet и xsl:transform

<xsl:stylesheet
 id="идентификатор"
 extension-element-prefixes="префиксы"
 exclude-result-prefixes="префиксы"
 version="число">
 <!--
  Содержимое: несколько элементов xsl:import, элементы верхнего уровня
 -->
</xsl:stylesheet>
<xsl:transform
 extension-element-prefixes="префиксы"
 exclude-result-prefixes="префиксы"
 version="число">
 <!--
  Содержимое: несколько элементов xsl:import, элементы верхнего уровня
 -->
</xsl:transform>

Элемент xsl:stylesheet имеет обязательный атрибут version, в котором указывается версия языка, использованная при создании этого преобразования. Текущей версией языка является версия 1.0, поэтому все преобразования, которые мы будем приводить в качестве примеров, будут начинаться следующим тегом:

<xsl:stylesheet version="1.0" ... >

Необязательный атрибут id может содержать уникальный идентификатор данного преобразования. Этот атрибут используется в тех случаях, когда преобразование включено в преобразуемый документ для его идентификации внутри этого документа.

Пример

Если преобразование, включенное в преобразуемый документ, будет иметь вид

...
<xsl:stylesheet
 version="1.0"
 id="trans"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 ...
</xsl:stylesheet>
...

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

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

Необязательный атрибут extension-element-prefixes перечисляет префиксы пространств имен, которые определяют элементы расширения. Об использовании этого атрибута мы расскажем в главе 10, которая посвящена созданию расширений языка XSLT.

Необязательный атрибут exclude-result-prefixes перечисляет префиксы пространств имен, определения которых не нужно включать в выходящий документ. Использование этого атрибута подробно описано в главе 8.

Элемент xsl:stylesheet может включать следующие элементы языка XSLT:

xsl:import;

xsl:include;

xsl:strip-space;

xsl:output;

xsl:key;

xsl:decimal-format;

xsl:namespace-alias;

xsl:attribute-set;

xsl:variable;

xsl:param;

xsl:template.

Эти элементы называются элементами верхнего уровня, поскольку они могут находиться на самом верхнем (не считая уровня корневого элемента) уровне в иерархии элементов документа. Более того, все перечисленные элементы кроме xsl:variable и xsl:param должны находиться только на верхнем уровне. Элементы xsl:variable и xsl:param могут использоваться в шаблонах, определяя локальные переменные и параметры.

Если преобразование импортирует внешние модули, первыми дочерними элементами xsl:stylesheet должны быть элементы xsl:import. Иначе говоря, элементам xsl:import внутри xsl:stylesheet должны предшествовать только другие элементы xsl:import. Порядок всех остальных дочерних элементов xsl:stylesheet не имеет значения.

Помимо элементов верхнего уровня, xsl:stylesheet может содержать элементы других, но обязательно ненулевых пространств имен. Это позволяет включать в преобразования любую сопутствующую информацию, правда спецификация оговаривает, что такого рода элементы не должны изменять поведение элементов и функций самого XSLT.

Пример

Листинг 4.1. Преобразование с элементом верхнего уровня, не принадлежащим XSLT

<xsl:stylesheet
 version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <source xmlns="http://www.a.com/XSL/source">
  Simple stylesheet
 </source>
 <xsl:template match="/">
  <root/>
 </xsl:template>
</xsl:stylesheet>

Выделенный полужирным шрифтом на листинге 4.1 элемент source принадлежит пространству имен с URI http://www.a.com/XSL/source. Поскольку пространство имен этого элемента ненулевое, такое объявление является корректным.

Оглавление книги

Оглавление статьи/книги

Генерация: 1.124. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз