Язык преобразований XSL

       

Элементы расширения


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

Замечание: Поскольку элемент, являющийся непосредственным потомком элемента xsl:stylesheet, в шаблон не попадает, то не-XSLT элементы не относятся к описываемым здесь элементам расширения, не применяется к ним и ни одно из указаний, данных в этой главе.

Пространство имен объявляется пространством имен расширения с помощью атрибута extension-element-prefixes в элементе xsl:stylesheet, либо атрибута xsl:extension-element-prefixes в фиксированном конечном элементе или элементе расширения. Значением обоих этих атрибутов является перечень (через пробельный символ) префиксов пространства имен. Пространство имен, связанное с каждым из представленных префиксов, рассматривается как пространство имен расширения. Если пространство имен, привязанное к префиксу в элементе, имеющем атрибут extension-element-prefixes или xsl:extension-element-prefixes, отсутствует, фиксируется ошибка. Пространство имен по умолчанию (декларируемое с помощью xmlns) также может быть объявлено как пространство имен расширений если в описываемый перечень префиксов пространства имен включить #default. Объявление пространства имен в качестве пространства имен расширений действительно в стиле в пределах поддерева, начинающегося с того элемента, которому принадлежит атрибут extension-element-prefixes или xsl:extension-element-prefixes. Поддерево, начинающееся с элемента xsl:stylesheet, не включает каких-либо стилей, импортированных или включенных непосредственными потомками этого элемента xsl:stylesheet.

Если XSLT процессору недоступна реализация определенного элемента расширения, функция в ответ на имя этого элемента должна возвращать false. Когда подобный элемент расширения обрабатывается, XSLT процессор должен выполнить для этого элемента откат, как описано в главе . При этом XSLT процессор не должен фиксировать ошибку только потому, что шаблон содержит элемент расширения, реализация которого оказалась недоступна.

Если XSLT процессору доступна реализация конкретного элемента расширения, то в ответ на имя этого элемента функция должна возвращать true.



Содержание раздела