то ассоциироваться с документом оно будет следующей инструкцией:
<?xml-stylesheet type='text/xsl' href='#trans'?>
Необязательный атрибут extension-element-prefixes
перечисляет префиксы пространств имен, которые определяют элементы расширения. Об использовании этого атрибута мы расскажем
Необязательный атрибут exclude-result-prefixes
перечисляет префиксы пространств имен, определения которых не нужно включать в выходящий документ. Использование этого атрибута подробно описано
Элемент 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.
<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
. Поскольку пространство имен этого элемента ненулевое, такое объявление является корректным.
Упрощенные преобразования
Многие простые преобразования состоят из единственного правила, которое обрабатывает корневой узел входящего документа. Общий вид такого рода преобразований показан в следующем листинге.
<xsl:stylesheet
version='1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match='/'>
<result>
<!-- Шаблон -->
</result>
</xsl:template>
</xsl:stylesheet>
XSLT позволяет упрощать запись таких преобразований, опуская элементы xsl:stylesheet
и xsl:template
и оставляя только шаблон, создающий выходящий документ.
Корневой элемент упрощенной записи должен содержать атрибут xsl:version
, указывающий версию языка XSLT, использованного в шаблоне. Как правило, этот элемент также содержит объявление пространства имен XSLT, хотя оно может быть определено и в другом месте.
Преобразование, приведенное в листинге 4.2, можно переписать в упрощенном виде следующим образом.
<result
xsl:version='1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<!-- Шаблон -->
</result >
Приведем еще один простой пример упрощенной записи преобразования, генерирующего простейшую HTML-страницу.
<html xsl:version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<head>
<title>
<xsl:value-of select='page/name'/>
</title>
</head>
<body>
<xsl:value-of select='page/content'/>