Книга: Технология XSLT
Элемент xsl:fallback
Элемент xsl:fallback
Другим способом обработки исключительных ситуаций, связанных с невозможностью выполнить тот или иной элемент преобразования, является использование элемента xsl:fallback
. Синтаксическая конструкция этого элемента следующая:
<xsl:fallback>
<!-- Содержимое: шаблон -->
</xsl:fallback>
Элемент xsl:fallback
включается в "критическую" инструкцию, то есть в элемент, который может быть неизвестен процессору. В случае, если критическая инструкция отрабатывается нормально, содержимое xsl:fallback
попросту игнорируется. Иначе, если процессор в силу некоторых причин не может выполнить критическую инструкцию, вместо нее он будет выполнять содержимое дочернего элемента 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>
- Элемент xsl:number
- Элемент
- Создание свободно позиционируемых элементов
- 6.4. Рабочий лист Excel и его структурные элементы
- Использование отдельных процессоров XSLT
- Письма с элементами графики и вложениями
- Элемент STYLE
- 4.4. Логические элементы и синтез логических схем
- 4.7 Структурные элементы SAN
- Добавление, изменение и удаление элементов списка
- Восстановление элементов списка из Корзины
- Вложение файлов в элементы списков