. В нашем случае будет включено только определение переменной
date
. Преобразование
b.xsl
можно переписать в следующем виде: .
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="date" select="'16.07.2001'"/>
<xsl:template match="/">
<content>
<xsl:text>Today is </xsl:text>
<xsl:value-of select="$date"/>
<xsl:text>.</xsl:text>
</content>
</xsl:template>
</xsl:stylesheet>
При включении внешних преобразований при помощи
xsl:include
следует учитывать некоторые особенности использования этого элемента.
Все ссылки и относительные идентификаторы ресурсов (URI), используемые во включаемом преобразовании, вычисляются относительно его базового адреса.
Пример
Предположим, что URI нашего преобразования имеет вид:
http://www.xsltdev.ru/examples/a.xsl
В этом случае элемент
<xsl:include href="#"/>
будет включать преобразование с URI
http://www.xsltdev.ru/examples/b.xsl
Нет никаких проблем и с включением преобразований по абсолютным идентификаторам. Например, если преобразование
identity.xsl
находится по адресу
http://www.xsltdev.ru/stylesheets/identity.xsl
то включить его можно элементом
<xsl:include href="#"/>
Естественно, включаемые модули должны быть доступны процессору во время выполнения преобразования, поэтому если они находятся на других серверах, то всегда будет существовать возможность невыполнения преобразования.
В XSLT элементы
xsl:import
всегда должны быть первыми дочерними элементами головного элемента
xsl:stylesheet
. Поэтому элементы
xsl:import
внешнего преобразования включаются сразу после элементов
xsl:import
основного преобразования. Если в основном преобразовании элементов
xsl:import
нет, то включаемые элементы
xsl:import
становятся первыми дочерними элементами
xsl:stylesheet
основного преобразования.
Пример
Предположим, что в основное преобразование мы импортируем файл
a.xsl
и включаем файл
b.xsl
.
Листинг 4.8. Основное преобразование
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="#"/>
<xsl:variable name="a"/>
<xsl:include href="#"/>
<!-- Содержимое основного преобразования -->
</xsl:stylesheet>
Листинг 4.9. Преобразование b.xsl
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="#"/>
<!-- Содержимое преобразования b.xsl -->
</xsl:stylesheet>
Тогда основное преобразование может быть переписано следующим образом.
Листинг 4.10. Основное преобразование после включения b.xsl
можно использовать и для включения преобразований с упрощенным синтаксисом. Преобразования такого рода будут включаться как эквивалентные им преобразования стандартного синтаксиса — то есть с корневым элементом
xsl:stylesheet
и единственным шаблоном, соответствующим корневому узлу.
Пример
Предположим, что мы используем преобразование упрощенного синтаксиса