I believe that Sablotron is right. Although you are correct in that
<xsl:apply-templates/>
equals
<xsl:apply-templates select="./*"/>
... well, actually
<xsl:apply-templates select="./node()"/>
, XSLT has some built in template rules to allow for implicit recursive
processing:
http://www.w3.org/TR/xslt#built-in-rule
In this case, the template:
<xsl:template match="*|/">
<xsl:apply-templates/>
</xsl:template>
is therefore used. So if IE does not do this, it does not do it right (I
guess supplying the presumed built-ins explicitly is a workaround..)
(Hint: turn this off by overruling the built-ins, perhaps conveniently
applying in another mode, to keep the "main mode" clear. See:
http://www.w3.org/TR/xslt#modes
)
regards
Niklas
-----Original Message-----
From: Jan Egil Kristiansen
To: Sablotron Mailing List
Sent: 10/26/00 10:09 AM
Subject: [Sab] Applying templates to all descendants?
It seems to me that in Sablotron, <xsl:apply-templates/> applies
templates
to all descendants of the current node, while IE applies them to the
direct
children only. I think IE is right,
http://www.w3.org/TR/xslt#section-Applying-Template-Rules
In other words, in Sablotron
<xsl:apply-templates/>
equals
<xsl:apply-templates select=".//*"/>
while in IE
<xsl:apply-templates/>
equals
<xsl:apply-templates select="./*"/>
?
Jan Egil Kristiansen
Governmental Bank of the Faroe Islands