Валиков Алексей Н.
Шрифт:
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:element name="root"/>
</xsl:template>
</xsl:stylesheet>
В некоторых случаях исходный текст намного упрощается, если пространство имен XSLT объявляется по умолчанию:
<stylesheet
version="1.0"
xmlns="http://www.w3.org/1999/XSL/Transform">
<template match="/">
<element name="root"/>
</template>
</stylesheet>
Кроме этого, пространство имен по умолчанию можно снова обнулить:
<stylesheet
version="1.0"
xmlns="http://www.w3.org/1999/XSL/Transform">
<template match="root">
<root xmlns=""/>
</template>
</stylesheet>
В последнем случае элемент
root
будет принадлежать нулевому пространству имен. Результат всех трех преобразований одинаков: <root/>
Элементы XSLT могут содержать атрибуты, принадлежащие другим, но обязательно ненулевым, пространствам имен. Такие атрибуты могут содержать дополнительную информацию, но поскольку они не относятся к XSLT, обрабатываться процессором в общем случае они не будут.
Пример
Если мы определим в преобразовании элемент вида
<xsl:template match="a" xsldoc:text="Processes all a elements"
xmlns:xsldoc="http://www.a.com/XSL/doc">
...
</xsl:template>
то в общем случае атрибут
xsldoc:text
будет проигнорирован. Однако процессор, которому знакомо пространство имен с URI http://www.a.com/XSL/doc
сможет понять, что этот атрибут применен для документирования преобразования и будет использовать его в своих целях. Корневые элементы преобразования
За исключением случаев упрощенных преобразований, корневым элементом XSLT-документа всегда является элемент
xsl:stylesheet
или его синоним xsl:transform
. Эти элементы полностью идентичны и различаются только именами, поэтому мы будем описывать семантику и пользоваться только элементом xsl:stylesheet
. Элементы xsl:stylesheet и xsl:transform
<xsl:stylesheet
id="идентификатор"
extension-element-prefixes="префиксы"
exclude-result-prefixes="префиксы"
version="число">
<!--
Содержимое: несколько элементов xsl:import, элементы верхнего уровня
-->
</xsl:stylesheet>
<xsl:transform id="идентификатор"
extension-element-prefixes="префиксы"
exclude-result-prefixes="префиксы"
version="число">
<!--
Содержимое: несколько элементов xsl:import, элементы верхнего уровня
-->
</xsl:transform>
Элемент
xsl:stylesheet
имеет обязательный атрибут version
, в котором указывается версия языка, использованная при создании этого преобразования. Текущей версией языка является версия 1.0, поэтому все преобразования, которые мы будем приводить в качестве примеров, будут начинаться следующим тегом: <xsl:stylesheet version="1.0" ... >
Необязательный атрибут
id
может содержать уникальный идентификатор данного преобразования. Этот атрибут используется в тех случаях, когда преобразование включено в преобразуемый документ для его идентификации внутри этого документа.