фиксировать ошибку только потому, что шаблон содержит элемент расширения, реализация которого оказалась недоступна.
Если XSLT процессору доступна реализация конкретного элемента расширения, то в ответ на имя этого элемента функция element- available должна возвращать true.
14.2 Функции расширения
Если FunctionName в выражении FunctionCall не является NCName (например, содержит двоеточие), то оно обрабатывается как вызов функции расширения. FunctionName приводится к расширенному имени с помощью деклараций пространства имён, извлеченных из контекста обработки.
Если XSLT процессору недоступна реализация функции расширения с указанным именем, то тогда функция function-available в ответ на это имя должна возвращать false. Если в выражении была найдена такая функция расширения и действительно был сделан вызов этой функции расширения, то XSLT процессор должен фиксировать ошибку. Однако XSLT процессор не должен сигнализировать об ошибке только потому, что некое выражение содержит функцию расширения, для которой нет доступной реализации.
Если реализация функции расширения с указанным именем доступна XSLT процессору, функция function-available для этого имени должна возвращать true. Если сделан вызов такого расширения, XSLT процессор должен вызвать данную реализацию, передав ей аргументы вызова этой функции. Результат, полученный от вызова реализации, передается как результат вызова функции.
15 Откат
<!– Category: instruction ->
<xsl:fallback>
<!– Content: template ->
</xsl:fallback>
Обычно обработка элемента
Приведенные далее функции могут быть использованы с инструкциями
Аргумент функции должен обрабатываться как строка, соответствующая QName. QName преобразуется в расширенное имя с помощью деклараций пространства имён из области видимости данного выражения. Функция element- available возвращает true тогда и только тогда, когда это расширенное имя является названием инструкции. Если URI пространства имён в расширенном имени равно URI пространства имён XSLT, то это имя относится к элементу, объявленному в XSLT. В противном случае расширенное имя относится к элементу расширения. Если расширенное имя имеет нулевой URI пространства имён, функция element-available будет возвращать false.
Аргумент функции должен обрабатываться как строка, соответствующая QName. QName приводится к расширенному имени с помощью деклараций пространства имён в области видимости данного выражения. Функция function- available возвращает true тогда и только тогда, когда расширенное имя является названием некой функции из библиотеки функций. Если расширенное имя имеет ненулевой URI пространства имён, то оно относится к функции расширения. В противном случае имя относится к функции, определенной в XPath или XSLT.
16 Вывод
<!– Category: top-level-element ->
<xsl:output
method = «xml» | «html» | «text» | qname-but-not-ncname
version = nmtoken
encoding = string
omit-xml-declaration = «yes» | «no»
standalone = «yes» | «no»
doctype-public = string
doctype-system = string
cdata-section-elements = qnames
indent = «yes» | «no»
media-type = string />
XSLT процессор может выводить конечное дерево в виде последовательности байтов, хотя и не