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

Если 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>

Обычно обработка элемента xsl:fallback ничего не меняет. Однако когда XSLT процессор осуществляет откат для элемента инструкции, а этот элемент инструкции имеет один или несколько непосредственных потомков xsl:fallback, должно быть последовательно обработано содержимое каждого из этих потомков xsl:fallback. В противном случае должна фиксироваться ошибка. Содержимое элемента xsl:fallback является шаблоном.

Приведенные далее функции могут быть использованы с инструкциями xsl:choose и xsl:if чтобы явно задавать поведение стиля в случае, если определенные стили или функции будут недоступны.

Функция: boolean element-available(строка)

Аргумент функции должен обрабатываться как строка, соответствующая QName. QName преобразуется в расширенное имя с помощью деклараций пространства имён из области видимости данного выражения. Функция element- available возвращает true тогда и только тогда, когда это расширенное имя является названием инструкции. Если URI пространства имён в расширенном имени равно URI пространства имён XSLT, то это имя относится к элементу, объявленному в XSLT. В противном случае расширенное имя относится к элементу расширения. Если расширенное имя имеет нулевой URI пространства имён, функция element-available будет возвращать false.

Функция: boolean function-available(строка)

Аргумент функции должен обрабатываться как строка, соответствующая 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 процессор может выводить конечное дерево в виде последовательности байтов, хотя и не

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

0

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

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