Книга: Технология XSLT
Встроенные шаблоны
Встроенные шаблоны
Для того чтобы обеспечить рекурсивную обработку документа при преобразовании, в XSLT существуют так называемые встроенные шаблоны. Несмотря на то, что они не описываются в преобразованиях явным образом, встроенные шаблоны применяются процессорами по умолчанию в случаях, когда более подходящих шаблонов нет.
Существуют пять основных шаблонных правил, которые применяются процессорами по умолчанию.
Первое из них обеспечивает рекурсивную обработку дочерних элементов документа, которые находятся как в корне, так и в других элементах. Это правило эквивалентно следующему шаблону:
<xsl:template match="*|/">
<xsl:apply-templates/>
</xsl:template>
Второе встроенное правило преобразования аналогично первому, с той лишь особенностью, что для каждого режима преобразования рекурсивная обработка происходит в том же самом режиме. В XSLT это правило выглядело бы следующим образом:
<xsl:template match="*|/" mode="режим">
<xsl:apply-templates mode="режим"/>
</xsl:template>
В XSLT также определяется встроенное правило для обработки текстовых узлов и атрибутов — это правило просто выводит их текстовые значения. Шаблон такого преобразования может быть записан в виде:
<xsl:template match="text()|@*">
<xsl:value-of select="."/>
</xsl:template>
Четвертое правило касается обработки инструкций по обработке и комментариев. Это правило не делает ничего, то есть инструкции и комментарии просто опускаются в выходящем документе. Шаблон такого преобразования будет иметь вид
<xsl:template match="processing-instruction()|comment()"/>
Последнее, пятое правило определяет обработку узлов пространств имен. Аналогично инструкциям и комментариям, с ними по умолчанию не следует делать ничего, то есть узлы пространств имен просто удаляются.
Встроенные шаблоны имеют наименьший приоритет импорта, а значит, будут использоваться лишь тогда, когда в преобразовании нет другого, более подходящего правила. Иными словами, любой шаблон, определенный в преобразовании, будет иметь больший приоритет, чем у встроенных правил.
Такое положение вещей позволяет переопределять преобразования, применяемые к узлам документа по умолчанию. Например, во многих случаях бывает весьма полезным идентичное преобразование, которое копирует узлы как есть. Мы уже встречались с ним, когда создавали шаблон для генерации таблицы ссылок XHTML-документа; теперь мы чуть более подробно разберем его работу.
- Встроенные правила
- 2.1.1. Встроенные шаблоны отчетов
- Суффиксы и шаблоны правил
- Глава 9 Именованные шаблоны, параметры и переменные
- Часть III. Шаблоны разработки через тестирование
- 8.3 Этап 3: переменные с произвольными именами; встроенные функции
- Шаблоны
- Вы пока не видите поведенческие шаблоны?
- Именованные шаблоны
- 28. Шаблоны зеленой полосы
- Драйверы, встроенные в ядро, и драйверы, реализуемые в виде модулей
- Простые графические шаблоны