Язык преобразований XSL

       

Элемент стиля


<xsl:stylesheet

id = id
  extension-element-prefixes = tokens

  exclude-result-prefixes = tokens

  version = number>

  <!-- Content: (*, top-level-elements) -->

</xsl:stylesheet>

<xsl:transform

  id = id

  extension-element-prefixes = tokens

  exclude-result-prefixes = tokens

  version = number>

  <!-- Content: (*, top-level-elements) -->

</xsl:transform>



В XML документе стиль представлен элементом xsl:stylesheet. В качестве синонима xsl:stylesheet можно использовать xsl:transform.

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

Элемент xsl:stylesheet может содержать следующие типы элементов:

xsl:import

xsl:include

xsl:strip-space

xsl:preserve-space

xsl:output

xsl:key

xsl:decimal-format

xsl:namespace-alias

xsl:attribute-set

xsl:variable

xsl:param

xsl:template

Элемент, оказавшийся непосредственным потомком элемента xsl:stylesheet, называется элементом верхнего уровня.

Следующий пример показывает структуру стиля. Многоточием (...) обозначены те места, где опущено значение атрибута или содержимое. Хотя в этом примере показано по одному элементу для каждого разрешенного типа, стиль может не содержать какой-либо из этих элементов, либо содержать сразу несколько его экземпляров.

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

<xsl:include href="..."/>

<xsl:strip-space elements="..."/>

<xsl:preserve-space elements="..."/>

<xsl:output method="..."/>

<xsl:key name="..." match="..." use="..."/>


<xsl:decimal-format name="..."/>

<xsl:namespace-alias stylesheet-prefix="..." result-prefix="..."/>

<xsl:attribute-set name="..."> ... </xsl:attribute-set>

<xsl:variable name="...">...</xsl:variable>

<xsl:param name="...">...</xsl:param>

<xsl:template match="..."> ... </xsl:template>

<xsl:template name="..."> ... </xsl:template>

</xsl:stylesheet>

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

Кроме этого, элемент xsl:stylesheet может содержать любой элемент не из пространства имен XSLT, при условии что расширенное имя этого элемента содержит ненулевой URI пространства имен. Появление таких элементов верхнего уровня не должно сказываться на поведении элементов и функций XSLT, определенных в данном документе. Например, такой элемент верхнего уровня не может заставить xsl:apply-templates использовать другие правила для разрешения конфликтов. Таким образом, XSLT процессор всегда может свободно игнорировать такие элементы верхнего уровня. Более того, процессор обязан игнорировать элемент верхнего уровня, не инициируя ошибки, если не может распознать в нем URI пространства имен. К примеру, такие элементы могут содержать

информацию, используемую элементами или функциями расширения (см. ),

информацию о том что следует делать с конечным деревом,

информацию о том как получить исходное дерево,

метаданные о представленном стиле,

структурированную документацию для этого стиля.


Содержание раздела