Декларация xsl:template
Элемент xsl:template определяет шаблонное правило преобразования. Своим атрибутом match он задает образец для отбора узлов, подлежащих преобразованию, а в теле содержит конструктор последовательности узлов и атомарных значений, которая и будет результатом преобразования отобранных по образцу узлов.
<xsl: template match=" Образец" name="Имя">Конструктор</хsl:template>
Каждый из атрибутов match и name не обязателен, но хотя бы один из них должен присутствовать.
Атрибут match содержит образец для отбора преобразуемых узлов.
Атрибут name определяет имя шаблона. Имя шаблона - это обычное уточненное имя XML типа QName. Шаблон можно вызвать по имени элементом xsl:call-template, а если он не содержит атрибута match, то такой вызов обязателен, поскольку неизвестны узлы, к которым его надо применить, и он не будут применяться автоматически. Очень часто именованный шаблон содержит параметры, заданные элементами xsl:param, и вызывается с различным параметрами совсем как обычная функция.
У элемента xsl: template могут быть дополнительные атрибуты mode, as, priority.
Атрибут mode определяет режим обработки.
Атрибут as указывает желаемый тип результата (полученная последовательность будет приведена к этому типу).
Атрибут priority назначает правилу приоритет, который будет учитываться при отборе правил, применимых к некоторому узлу.
При вызове именованного шаблона элементов xsl:call-template атрибуты match, mode и priority игнарируются.
Если у именованного шаблона нет атрибута match, то у него не должно быть и атрибутов mode и priority, в них просто нет никакого смысла.