<xsl:otherwise>

<html>

<head>

<title>XSLT 1.1 required</title> </head>

<body>

<p>Sorry, this stylesheet requires XSLT 1.1.</p>

</body>

</html>

</xsl:otherwise>

</xsl:choose>

</xsl:template>

</xsl:stylesheet>

Замечание: Если стиль опосредованно зависит от элемента верхнего уровня, объявленного в XSL более старшей версии чем 1.0, то тогда в этом стиле можно использовать элемент xsl:message с атрибутом terminate='yes' (см. [13 Сообщения]) чтобы гарантировать, что XSLT процессоры, реализующие более ранние версии XSL, не будут втихую игнорировать указанный элемент верхнего уровня. Например,

<xsl:stylesheet version='1.5' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:important-new-1.1-declaration/>

<xsl:template match='/'> <xsl:choose>

<xsl:when test='system-property('xsl:version') &lt; 1.1'>

<xsl:message terminate='yes'>

<xsl:text>Sorry, this stylesheet requires XSLT 1.1.</xsl:text>

</xsl:message>

</xsl:when>

<xsl:otherwise> … </xsl:otherwise>

</xsl:choose>

</xsl:template>

</xsl:stylesheet>

Если выражение встретилось в атрибуте, который обрабатывается в режиме совместимости со следующими версиями, то ошибки XSLT процессор должен обрабатывать следующим образом:

– если выражение не соответствует синтаксису, заданному грамматикой XPath, то ошибка не должна фиксироваться до тех пор, пока реально не будет затребована обработка этого выражения;

– если выражение вызывает функцию с названием без префикса, которая не является частью библиотеки XSLT, то ошибка не должна фиксироваться до тех пор, пока данная функция не будет действительно вызвана;

– если выражение вызывает функцию с недопустимым с точки зрения XSLT набором аргументов или с аргументом недопустимого в XSLT типа, ошибка не фиксируется до тех пор, пока эта функция действительно не будет вызвана.

2.6 Комбинированные стили

Язык XSLT предоставляет два механизма для комбинирования стилей:

механизм включения (include), позволяющий объединять стили без изменения семантики комбинированных стилей, и

механизм импорта (import), который позволяет стилям переписывать друг друга.

2.6.1 Включение стилей

<!– Category: top-level-element ->

<xsl:include href = uri-reference />

С помощью элемента xsl:include один стиль XSLT может включить в себя другой стиль XSLT. Элемент xsl:include имеет атрибут href, значением которого является ссылка URI, идентифицирующая включаемый стиль. Относительная ссылка URI обрабатывается относительно базового URI элемента xsl:include (см. [3.2 Базовый URI]).

Элемент xsl:include можно использовать лишь в качестве элемента верхнего уровня.

Включение оперирует деревьями XML. Ресурс, на который указывает атрибут href, обрабатывается как документ XML и обнаруженные в нем непосредственные потомки элемента xsl:stylesheet замещают элемент xsl:include во включающем документе. Тот факт, что те или иные правила шаблона или определения были получены включением, на то как они затем обрабатываются не влияет.

Во включаемом стиле может использоваться упрощенный синтаксис, описанный в главе [2.3 Фиксированный конечный элемент как стиль]. Включаемый стиль обрабатывается точно так же как эквивалентный ему элемент xsl:stylesheet.

Если стиль прямо или опосредовано включает сам себя, фиксируется ошибка.

Замечание: Многократное включение стиля может привести к ошибкам вследствие дублирования деклараций. Такие множественные включения не столь очевидны, если являются косвенными. Например, если стиль B включает стиль A, стиль C включает стиль A, а стиль D включает оба стиля B и C, то A опосредованно включено в D дважды. Если все указанные стили B, C и D являются независимыми, то ошибки можно избежать, если в B выделить все, что не относится к включенному A, в отдельный стиль B' и поменять B так чтобы он просто включал эти B' и A, затем аналогично поступить с C, и, наконец, переписать D так чтобы он включал A, B' и C'.

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату
×