Invokes a named template.
Permitted parent elements: any XSLT element whose content model is sequence-constructor; any literal result element
Name of the called template, must match the name defined on an xsl:template element.
Available in XSLT 1.0 and later versions. Available in all Saxon editions. Available for all platforms.
Notes on the Saxon implementation
Until 9.6, Saxon supported an alternative instruction
saxon:call-template, but this has now been dropped. This had
the same effect as
xsl:call-template, except that it allowed
name attribute may be written as an attribute value template,
allowing the called template to be decided at run-time. In place of this
facility, XSLT 3.0 offers higher-order functions.
To supply parameters to the called template, one or more xsl:with-param elements may be included. The values
of these parameters are available to the called template. If the
xsl:with-param element specifies
then the parameter is passed transparently through to templates called at any
depth, but it can only be referenced by an
xsl:param element that
tunnel="yes". If the default value,
tunnel="no" is used, then the parameter value is available only
in the immediately called template, and only if the
tunnel="no" (explicitly or by defaulting the
The context of the called template (for example the current node and current node list) is the same as that for the calling template; however the variables defined in the calling template are not accessible in the called template.