xsl:apply-imports
Searches for a template that matches the current node and that is defined in a stylesheet that was imported (directly or indirectly) from the stylesheet containing the current template, and whose mode matches the current mode. If there is such a template, it is activated using the current node. If not, the built-in template for the kind of node is activated.
Category: instruction
Content: xsl:with-param*
Permitted parent elements:
any XSLT element whose content model is
sequence-constructor; any literal result element
Element has no attributes
Saxon availability
Available in XSLT 1.0 and later versions. Available in all Saxon editions. Available for all platforms.
Notes on the Saxon implementation
In XSLT 4.0, the xsl:apply-imports and
xsl:next-match instructions automatically pass supplied
parameters to the overridden template rule. This feature is not yet implemented
in Saxon.
Details
At run-time, there must be a current template. A current template is established when a template is activated as a result of a call on xsl:apply-templates. Calling xsl:call-template does not change the current template. Calling xsl:for-each or xsl:for-each-group causes the current template to become null.
The xsl:apply-imports element is used in conjunction with imported
stylesheets. The effect is to search for a template that matches the current
node and that is defined in a stylesheet that was imported (directly or
indirectly, possibly via xsl:include) from the stylesheet containing the current template, and
whose mode matches the current mode. If there is such a template, it is
activated using the current node. If not, the built-in template for the kind of
node is activated.
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 tunnel="yes",
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
also specifies 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 xsl:param
element specifies tunnel="no" (explicitly or by defaulting the
attribute).