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.