late gt; з атрибутом match, що вказує на кореневий елемент. Записується наступним чином: lt; xsl: template match= specification gt; lt;/xsl: template gt ;. Об'єкт specification - це назва кореневого елемента (тега) преутвореного xml-файлу. У тому випадку, якщо в якості першого вузла необхідно вибрати не кореневий елемент, вказується шлях до цього елементу. Приміром, значення атрибута match= specification/table" вказує, що в якості превью вузла обраний тег table. Шлях до елементу вказується через символ /.
Для отримання даних, що відносяться до певного елемента документа формату XML, необхідно іспользовть lt; xsl: value-of gt; з трабутом select, що містить ім'я виділяється елемента, або шлях до німу. Наприклад, select= stamp/@ RAZRABOTAL raquo ;. При цьому не вказується раніше пройдений шлях. Тоесть, якщо тег з ім'ям stamp знаходиться наступним, за ієрархією, за елементом specification, а останній був вибраний за допомогою xsl: template, то в атрибуті select (елементу xsl: value-of), шлях вказується, починаючи з вибраного раніше елемента (в даному випадку specification) НЕ включно. Якщо виділяються дані належать атрибуту елемента, при записі шляху його ім'я вказується зі знаком @ на початку.
Елемент xsl: template і входить у нього шаблон застосовуються тільки по відношенню до кореневого вузла, або до вузла, з якого починається перетворення. Можна також застосовувати шаблон до дочірніх елементам вузла, з яким встановлено відповідність. У цих цілях застосовується елемент lt; xsl: apply-templates gt ;. У що належить йому атрибуті math вказується вузол, з якого необхідно почати обхід дерева.
Приклад використання xsl: apply-templates приведений нижче.
lt;? xml version= 1.0 encoding= utf - 8 ? gt;
lt; xsl: stylesheet version= 1.0 xmlns: xsl= # justify gt; lt; xsl: template match= specification" gt;
lt; xsl: apply-templates select= * / gt;
lt;/xsl: template gt;
lt; xsl: template match= line | section gt;
... .. lt;! - Дані шаблону - gt;
lt;/xsl: template gt;
lt; xsl: stylesheet gt;
Розглянемо наведений код. При перегляді тексту зверху вниз, перші елементи lt; xsl: template match= specification gt; і lt;/xsl: template gt; є початковим і кінцевим елементами шаблону кореневого вузла specification. Елемент xsl: apply-templates, що входить у розглянутий шаблон, вказує на те, що до дочірнім елементам вузла specification буде застосований відповідний шаблон. Атрибут select розглянутого об'єкта містить шлях до дочірнім елементам [1]. В даному випадку select містить символ *, який означає установку відповідності з усіма дочірніми елементами тега specification. У цьому випадку елемент select може бути опущений. Шаблон для цих елементів описаний так:
lt; xsl: template match= line | section gt;
... .. lt;! - Дані шаблону - gt;
lt;/xsl: template gt;
Вміст атрибуту match вказує на вибір тегів з іменами line або section (дочірніх тегу specification). Символ | означає логічний елемент «або» (диз'юнкцію).
У тому випадку, коли елементів xsl: apply-templates кілька (більше одного), а відповідно і шаблонів, вказується назва, яка ідентифікує використовуваний шаблон. Атрибут містить ім'я, називається mode [4]. Демонстраційний приклад xsl-файла приведений нижче.
lt;? xml version= 1.0 encoding= utf - 8 ? gt;
lt; xsl: stylesheet version= 1.0 xmlns: xsl= # justify gt; lt; xsl: template match= specification" gt;
lt; xsl: apply-templates select= * [13 gt; position ()] / gt;
lt; xsl: apply-templates select= * [position () gt; 11] mode= page_B / gt;
lt;/xsl: template gt;
lt; xsl: template match= line | section gt;
... .. lt;! - Дані шаблону - gt;
lt;/xsl: template gt;
lt; xsl: template match= line | section mode= page_B gt;
... .. lt;! - Дані шаблону - gt;
lt;/xsl: template gt;
lt; xsl: stylesheet gt;
У першому, при читанні зверху вниз, елементі xsl: apply-templates не вказується атрибут з ім'ям використовуваного шаблону. Належить йому шаблоном, розміченому за допомогою тегів xsl: template, ім'я не присвоюється. Для другого і наступних об'єктів xsl: apply-templates вказується арібут з ім'ям використовуваного шаблону, якщо не використовується перший шаблон без імені. Бу...