XSLT | страница 52



:

• >match (необязательный). Задает шаблон, выбирающий обрабатываемые узлы. Устанавливается в допустимый шаблон;

• >name (необязательный). Содержит имя шаблона, что разрешает его вызов. Если вы не используете этот атрибут, вы должны использовать атрибут >match. Принимает значение типа >QName;

• >priority (необязательный). Положительное или отрицательное целое или действительное число, задающее приоритет шаблона. Используется, когда один и тот же узел удовлетворяет нескольким шаблонам. Устанавливается в число;

• >mode (необязательный). Если вы применяете > к множеству узлов, будут использоваться только шаблоны с совпадающим режимом (mode). Принимает значение типа >QName.

Каждый такой элемент > называется правилом (rule). В общем случае элемент > может содержать ноль или более элементов > (как мы увидим в главе 9), за которыми следует тело шаблона, задающего способ осуществления преобразования.

Тела шаблонов

Шаблоны формируются по жестко заданным правилам. Они способны содержать элементы >, за которыми следует тело шаблона; в последнем могут содержаться данные >PCDATA, инструкции XSLT, элементы расширения и элементы буквального результата.

Инструкции XSLT

В теле шаблона может присутствовать ряд элементов XSLT, называемых инструкциями:

>;

>;

>;

>;

>;

>;

>;

>;

>;

>;

>;

>;

>;

>;

>;

>;

>;

>.

В теле шаблона больше никакие элементы XSLT непосредственно появиться не могут. Как вы увидите в главе 9, элемент > может появиться в шаблоне перед телом, но он не называется инструкцией XSLT. В шаблонах могут также появляться и другие элементы XSLT, такие как >, > и >, но только в определенных местах, поэтому W3C не называет их инструкциями. Далее в книге мы рассмотрим, как использовать каждую из этих инструкций.

Элементы расширения

Элементы расширения рассматриваются в главе 5; эти элементы, расширяющие XSLT, определяются пользователем или процессором XSLT. Во многих процессорах XSLT были определены собственные расширения — и это стало одной из причин, по которым W3C представил рабочий проект XSLT 1.1, где механизм расширений был более регламентирован. Вероятно, эта функциональность будет включена в XSLT 2.0.