<!--
Category: instruction -->
<xsl:apply-imports />
A template rule that is being used to override a template rule in an
imported stylesheet (see [5.5 Conflict Resolution for
Template Rules]) can use the xsl:apply-imports
element
to invoke the overridden template rule.
At any point in the processing of a
stylesheet, there is a current template rule. Whenever a template
rule is chosen by matching a pattern, the template rule becomes the current
template rule for the instantiation of the rule's template. When an
xsl:for-each
element is instantiated, the current template rule
becomes null for the instantiation of the content of the
xsl:for-each
element.
xsl:apply-imports
processes the current node using only
template rules that were imported into the stylesheet element containing the
current template rule; the node is processed in the current template rule's
mode. It is an error if xsl:apply-imports
is instantiated when
the current template rule is null.
For example, suppose the stylesheet doc.xsl
contains a
template rule for example
elements:
<xsl:template match="example"> <pre><xsl:apply-templates/></pre> </xsl:template>
Another stylesheet could import doc.xsl
and modify the
treatment of example
elements as follows:
<xsl:import href="doc.xsl"/> <xsl:template match="example"> <div style="border: solid red"> <xsl:apply-imports/> </div> </xsl:template>
The combined effect would be to transform an example
into an
element of the form:
<div style="border: solid red"><pre>...</pre></div>