Элемент <xsl:fallback>

Элемент <xsl:fallback> предназначен для обработки элементов XSLT, которые не могут быть обработаны средством синтаксического анализа (например, элементов, являющихся частью обновления или нераспознанного расширения). Элемент <xsl:fallback> вызывает содержимое шаблона, которое может служить обоснованной заменой для поведения нового элемента.

<xsl:fallback>
</xsl:fallback>

Атрибуты

Нет

Сведения об элементе

Количество вхождений

Без ограничений

Родительские элементы

xsl:attribute, xsl:comment, xsl:copy, xsl:element, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:otherwise, xsl:param, xsl:processing-instruction, xsl:template, xsl:variable, xsl:when, xsl:with-param, элементы вывода

Дочерние элементы

xsl:apply-templates, xsl:attribute, xsl:call-template, xsl:choose, xsl:comment, xsl:copy, xsl:copy-of, xsl:element, xsl:for-each, xsl:if, xsl:processing-instruction, xsl:text, xsl:value-of, xsl:variable, элементы вывода

Заметки

При первой загрузке документа XSLT предварительный синтаксический анализатор XSLT выполняет проверку всех элементов XSLT. Если версия, переданная в элементе <xsl:stylesheet>, превышает номер версии, поддерживаемой синтаксическим анализатором, он выполнит дочерние элементы <xsl:fallback> всех встретившихся ему незнакомых элементов. Если у элемента <xsl:fallback> нет содержимого, синтаксический анализатор не выполняет никаких действий. Если элемент поддерживается, шаблоны в его дочерних элементах <xsl:fallback> никогда не будут обработаны. Если версия, заданная в таблице стилей, совпадает с версией, которую поддерживает браузер, будет сформирована ошибка.

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

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

Чтобы гарантировать интерпретацию расширения во время работы XSLT, нужно настроить атрибут extension-element-prefixes в элементе <xsl:stylesheet>, чтобы он содержал имя префикса, которое надо интерпретировать. Кроме того, следует объявить пространство имен для этого префикса.

В следующем разделе приводится пример <xsl:fallback>.