Книга: Технология XSLT
Определение шаблонного правила
Элемент xsl:template
Синтаксис этого элемента приведен ниже:
<xsl:template
match="пaттерн"
name="имя"
priority="число"
mode="имя">
<!-- Содержимое: несколько элементов xsl:param, тело шаблона -->
</xsl:template>
Элемент верхнего уровня xsl:template
определяет в преобразовании шаблонное правило, или просто шаблон. Элемент xsl:template
имеет всего четыре атрибута, смысл которых мы кратко опишем ниже.
Атрибут match
задает паттерн — образец узлов дерева, для преобразования которых следует применять этот шаблон.
Пример
<xsl:template match="bold">
<b><xsl:value-of select="."/></b>
</xsl:template>
В этом правиле атрибут match
говорит о том, что оно должно использоваться для обработки элементов bold
— в данном случае они будут заменяться на элементы b. Шаблоны, в которых определен атрибут match
, вызываются при помощи инструкции xsl:apply-templates
.
Шаблон также может иметь имя, определяемое атрибутом name
. Шаблон, в котором задано имя, называется именованным шаблоном. Именованные шаблоны могут вызываться вне зависимости от текущего контекста, и даже вести себя как функции — принимать на вход параметры и возвращать некоторые значения.
Пример
<xsl:template name="bold">
<b><xsl:value-of select="."/></b>
</xsl:template>
В отличие от предыдущего примера, это правило не будет обрабатывать какие-либо определенные узлы. Вызвать его можно будет только по имени посредством элемента xsl:call-template
.
При определении шаблона нужно обязательно указать хотя бы один из атрибутов match
или name
, причем эти атрибуты могут присутствовать в xsl:template
одновременно.
Атрибут mode
определяет режим данного шаблонного правила. Режимы позволяют задавать различные преобразования для одних и тех же частей документа (о них мы поговорим позже).
Атрибут priority
используется для определения значения, которое называется приоритетом шаблонного правила. Это значение используется для разрешения конфликтов шаблонов в случае, когда один узел может быть обработан различными правилами.
Атрибуты шаблонного правила не влияют на выполнение его содержимого. Они используются элементами xsl:apply-templates
и xsl:call-template
при выборе шаблонов. Правила, которые были импортированы в преобразование, вызываются элементом xsl:apply-imports
.
- Глава 5 Шаблонные правила
- Правила творческой лени
- 1.2. Определение количества информации. Единицы измерения количества информации
- 1.3. Правила подключения к компьютеру внешних устройств
- Определение версии клиента
- Определение пользовательского формата числовых данных
- Определение целей. Построение цепочек
- Правила именования файлов
- 2. Правила вывода Армстронга
- 3. Производные правила вывода
- Определение необходимого системного вызова
- Раздел 1 Лояльность: определение и ключевые факторы