This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: MSXSL ignoring the mode attribute
- From: "Andrew Welch" <awelch at piper-group dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Tue, 2 Jul 2002 11:21:49 +0100
- Subject: RE: [xsl] MSXSL ignoring the mode attribute
- Reply-to: xsl-list at lists dot mulberrytech dot com
MSXML3 and Saxon produce the same (correct) result, MSXML4 fails to
recognise the mode. I would report this as a bug to Microsoft. (the
debug handles follow the correct path, but the output doesnt(!))
I know that some ms techies are on the list, so they may pick this up
cheers
andrew
-----Original Message-----
From: Michael Leditschke [mailto:mike@ammd.com.au]
Sent: 02 July 2002 07:38
To: xsl-list@lists.mulberrytech.com
Subject: [xsl] MSXSL ignoring the mode attribute
I am running saxon 6.5.2 and MSXSL/MSXML 4.0.
I have the following xml file
<HTMLContents>
<table>
<font face="Courier">Some text</font>
</table>
</HTMLContents>
and the following stylesheet
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="HTMLContents">
<root>
<xsl:call-template name="ProcessSection"/>
</root>
</xsl:template>
<xsl:template name="ProcessSection" match="font" mode="Section">
<xsl:choose>
<xsl:when test="@face='Courier'">
<InFont>Section mode</InFont>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates mode="Section"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="font">
<InFont>No mode</InFont>
</xsl:template>
</xsl:stylesheet>
Saxon (I think correctly) produces
<root>
<InFont>Section mode</InFont>
</root>
The default template has been recursively applied
in Section mode until the template matching font
in Section mode is reached, and the output produced.
However, MSXSL produces
<root>
<InFont>No mode</InFont>
</root>
suggesting that the mode has been lost somewhere along
the line.
Is my analysis correct? Is anyone aware of this being a known
bug in MSXML 4.0?
If I change the stylesheet to
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="HTMLContents">
<root>
<xsl:apply-templates mode="Section"/>
</root>
</xsl:template>
<xsl:template match="font" mode="Section">
<InFont>Section mode</InFont>
</xsl:template>
<xsl:template match="font">
<InFont>No mode</InFont>
</xsl:template>
</xsl:stylesheet>
Both produce
<root>
<InFont>Section mode</InFont>
</root>
as expected, so it appears to be tied in with the use of call-template.
Regards
Michael
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.350 / Virus Database: 196 - Release Date: 17/04/2002
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.350 / Virus Database: 196 - Release Date: 17/04/2002
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list