следующим образом: xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
Приведем пример простого преобразования, в котором объявлено пространство имен XSLT.
<xsl:stylesheet
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
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
может содержать уникальный идентификатор данного преобразования. Этот атрибут используется в тех случаях, когда преобразование включено в преобразуемый документ для его идентификации внутри этого документа.
Если преобразование, включенное в преобразуемый документ, будет иметь вид
...
<xsl:stylesheet
version='1.0'
id='trans'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
...
</xsl:stylesheet>
...