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

Reply via email to