Синтаксически незаконно вкладывать определение шаблона в другое .
Согласно спецификации W3C XSLT (как 1.0, так и 2.0), xsl:template
должен быть дочерним элементом верхнего элемента xsl:stylesheet
.
Это означает, что все шаблоны в модуле таблицы стилейдолжны быть братьями и сестрами.
Способ вызова именованного шаблона состоит в использовании команды xsl:call-template
, подобной этой :
<xsl:call-template name="someTemplateName">
<!-- Possibly place one or more `xsl:with-param` elements here -->
</xsl:call-template>
Однако, имейте ввиду, что :
Это хороший стиль и больше в духе XSLT для использования неназванных шаблонов (которые имеют атрибут match
)и выбрать наиболее подходящий шаблон с инструкцией xsl:apply-templates
.
. Большинство ответов на вопросы SO XSLT демонстрируют использование xsl:apply-templates
.
.