<p>There is a built-in template rule to allow recursive processing to
continue in the absence of a successful pattern match by an explicit template
rule in the stylesheet. This template rule applies to both element nodes and
the root node. The following shows the equivalent of the built-in template
rule:</p>
<xsl:template match="*|/">
<xsl:apply-templates/>
</xsl:template>
<p>There is also a built-in template rule for each mode, which allows
recursive processing to continue in the same mode in the absence of a
successful pattern match by an explicit template rule in the stylesheet.
This template rule applies to both element nodes and the root node. The
following shows the equivalent of the built-in template rule for mode
<code><var>m</var></pre>.</p>
<xsl:template match="*|/" mode="<var>m</var>">
<xsl:apply-templates mode="<var>m</var>"/>
</xsl:template>
<p>There is also a built-in template rule for text and attribute nodes that
copies text through:</p>
<xsl:template match="text()|@*">
<xsl:value-of select="."/>
</xsl:template>
<p>The built-in template rule for processing instructions and comments is to
do nothing.</p>
<xsl:template match="processing-instruction()|comment()"/>
<p>The built-in template rule for namespace nodes is also to do nothing.
There is no pattern that can match a namespace node; so, the built-in
template rule is the only template rule that is applied for namespace
nodes.</p>