</xsl:template>
Результат будет получен в виде:
<а href='/images/rose.jpg'><img src='/images/th_rose.jpg'/></a>
<a href='/images/orchide.gif'><img src='/images/th_orchide.gif'/></a>
<a href='/images/primul. gif'><img src='/images/th_primul.gif'/></a>
Для того чтобы использовать в значении атрибута левые и правые фигурные скобки в качестве простых символов, нужно удваивать их количество, то есть указывать '{{' вместо каждой левой и '}}' вместо каждой правой фигурной скобки соответственно.
Элемент, определенный как
<input name='login' type='text'
value='{{{{{{Enter your login here}}}}}}'/>
будет преобразован в выходящем документе к виду
<input name='login' type='text' value='{{{Enter your login here}}}'/>
Фигурные скобки нельзя использовать рекурсивно для вычисления внутри выражений. К примеру, в качестве значения атрибута name, определенного как
<story name='{/h{1 + 2}/p}'/>
не будет использовано вычисленное значение выражения /h3/p. Вместо этого процессор выдаст ошибку.
Фигурные скобки могут быть спокойно использованы внутри выражения в литералах — в этом случае они не будут задавать значений атрибутов.
Элемент, определенный как
<page numbers='{concat ('{', ' 1,2,3', '}') }'/>
будет преобразован к виду
<page numbers='{1,2,3}'/>
Шаблоны значений могут быть использованы далеко не везде. К примеру, не могут содержать шаблонов следующие типы атрибутов.
□ Атрибуты, значениями которых являются выражения.
□ Атрибуты, значениями которых являются паттерны.
□ Атрибуты элементов верхнего уровня.
□ Атрибуты пространств имен (xmlns).
Шаблоны значений могут содержаться в любых атрибутах литеральных элементов, что уже несколько раз было продемонстрировано выше. Например, в литеральном элементе
<img src='{../@dir}/th_{@filename}'/>
атрибут src содержит ни что иное, как два шаблона значений.
Что же касается атрибутов элементов XSLT, то как очевидно из табл. 4.4, лишь малая их часть может содержать шаблоны значений.
| Элемент | Атрибуты | Описание |
|---|---|---|
xsl:element | name | Имя создаваемого элемента |
namespace | Пространство имен создаваемого элемента | |
xsl:attribute | name | Имя создаваемого атрибута |
namespace | Пространство имен создаваемого атрибута | |
xsl:processing-instruction | name | Имя целевого приложения инструкции по обработке |
xsl:number | format | Формат номера |
lang | Языковой контекст номера | |
letter-value | Традиционная или алфавитная буквенная нумерация | |
grouping-separator | Символ-разделитель групп цифр номера | |
grouping-size | Размер группы цифр номера | |
xsl:sort | lang | Языковой контекст сортировки |
