<xsl:fallback> XSLT

Элемент xsl:fallback включается в “критическую” инструкцию, то есть в элемент, который может быть неизвестен процессору.

В случае, если критическая инструкция отрабатывается нормально, содержимое xsl:fallback попросту игнорируется. Иначе, если процессор в силу некоторых причин не может выполнить критическую инструкцию, вместо нее он будет выполнять содержимое дочернего элемента xsl:fallback.

Не поддерживается браузером Mozilla Firefox.

Синтаксис

XSLT 1.0, XSLT 2.0 и XSLT 3.0

<xsl:fallback>
    <!-- Content: sequence-constructor -->
</xsl:fallback>

Спецификация

Описание и примеры

Пример

На тот случай, если процессор не сможет выполнить наш элемент расширения ext:date, мы можем “подстраховать” его следующим образом:

<ext:date pattern="HH:mm">
    <xsl:fallback>unknown time</xsl:fallback>
</ext:date>

В этом случае шаблон

<xsl:template match="/">
    <!-- ... -->
    <p>This page was generated at 
        <ext:date pattern="HH:yy">
            <xsl:fallback>unknown time</xsl:fallback>
        </ext:date>
        .
    </p>
</xsl:template>

в случае невозможности выполнить ext:date выведет

<p>This page was generated at unknown time.</p>

Заметим, что xsl:fallback применим не только для обработки исключительных ситуаций, связанных с элементами расширения. Наборы доступных процессору элементов XSLT будут также меняться от версии к версии, и xsl:fallback вполне пригодится для обеспечения обратной совместимости. Например, если в версии XSLT 2.0 будет определен элемент xsl:for-each-group, то xsl:fallback можно использовать при создании альтернативного варианта для процессоров, которые еще не поддерживают новую версию:

<xsl:for-each-group select="item" group-by="@number">
    <!-- ... -->
    <xsl:fallback>
        <xsl:for-each select="item[generate-id(.)=
        generate-id(key('item', @number))]">
            <!-- ... -->
        </xsl:for-each>
    </xsl:fallback>
</xsl:for-each>

См. также

  • element-available() — служит для проверки доступности в преобразовании того или иного элемента.
  • function-available() — проверяет доступность функции.

Ссылки

MDN xsl:fallback на MDN
MSDN xsl:fallback на MSDN