The xsl:apply-imports
element is used in conjunction with imported stylesheets. There
are no attributes. The element may contain zero or more xsl:with-param
elements (as permitted
in XSLT 2.0).
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 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 call on
xsl:apply-imports
has no effect.
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).