This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Subject: Re: Bug in treating an RTF by Saxon 6.5 and MSXML
- From: Joerg Heinicke <joerg dot heinicke at gmx dot de>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Thu, 16 May 2002 20:51:50 +0200
- Subject: Re: Subject: Re: [xsl] Bug in treating an RTF by Saxon 6.5 and MSXML
- References: <20020516052526.1874.qmail@web14502.mail.yahoo.com>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hey Dimitre,
are you a bit indignant? As far as I can see it's possible that the
template is applied either with a node-set or a RTF as param, isn't it?
buggy.xsl:
<xsl:variable name="vResult">
<xsl:call-template name="str-foldl">
...
<xsl:with-param name="pA0" select="vendor:node-set($vrtfParams)"/>
</xsl:call-template>
</xsl:variable>
str-foldl.xsl:
<xsl:variable name="vFunResult">
<xsl:apply-templates select="$pFunc[1]">
...
<xsl:with-param name="arg1" select="$pA0"/>
...
</xsl:apply-templates>
</xsl:variable>
So isn't the template applied with a node-set as Michael claimed?
Even if a few lines later the template is applied with a RTF as param:
<xsl:call-template name="str-foldl">
...
<xsl:with-param name="pA0" select="$vFunResult"/>
</xsl:call-template>
(where $vFunResult is a RTF)
Maybe I'm only too stupid for your stylesheets but they are so complex
and nearly not understandable with always at least 3 parameters and all
possible types to pass ;-)
But please be a bit more patient - nobody attacks you directly, even if
Michael's "who should know better" was not very friendly.
Regards,
Joerg
Dimitre Novatchev schrieb:
> michael.h.kay@ntlworld.com wrote:
>
>
>>Dimitre Novatchev [dnovatchev@yahoo.com], who should know better,
>>claimed that MSXML4 and Saxon exhibit a bug in their handling of
>
> RTFs.
>
>>The quoted lines are all valid, as far as I can see, because $arg1 is
>>not an RTF. (I say "as far as I can see", because I haven't really
>>worked out what arguments are being supplied to this template).
>
>
> Yes, Dimitre Novatchev ***knows better*** -- the value passed in $arg1
> is an RTF.
>
> Here's the template with the offending lines again:
>
> <xsl:template match="str-split2words-func:*">
> <xsl:param name="arg1" select="/.."/>
> <xsl:param name="arg2"/>
>
> <!--Right--> <xsl:copy-of select="vendor:node-set($arg1)/*[1]"/>
> <!--Err--> <xsl:copy-of select="$arg1/word[position() != last()]"/>
>
> <xsl:choose>
> <!--Err--> <xsl:when test="contains($arg1/*[1], $arg2)">
> <!--Err--> <xsl:if test="string($arg1/word[last()])">
> <!--Err--> <xsl:copy-of select="$arg1/word[last()]"/>
> </xsl:if>
> <word/>
> </xsl:when>
> <xsl:otherwise>
> <!--Err--> <word><xsl:value-of
> select="concat($arg1/word[last()], $arg2)"/></word>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:template>
>
>
> Look at the line starting with <!--Right-->
>
> Why do you think I had to add the vendor:node-set() conversion there?
>
> The answer is simple -- because SAXON 6.5 (correctly!) issued an error
> message for this line.
>
> However, after I corrected this line, SAXON6.5 did not issue any errors
> for the following <!--Err--> lines.
>
> Mike, you may try it immediately -- just change this line:
>
> <!--Right--> <xsl:copy-of select="vendor:node-set($arg1)/*[1]"/>
>
> to this:
>
> <!--Err--> <xsl:copy-of select="$arg1/*[1]"/>
>
> and you'll immediately get the correct error message from Saxon.
>
> This proves that the error message must be given for the following
> <!--Err--> lines -- and the bug is that no error message is issued on
> any of them.
>
> And of course, feeding this example to a more conformant XSLT processor
> (in this case XalanJ-2.3) also shows that at all these lines there's an
> illegal manipulation of an RTF as if it were a node-set.
>
>
> So do I still need to know better?
>
> If this bug continues to be there in future versions, I'll be forced to
> use XALAN for development and testing, as it correctly catches more
> errors. This will guarantee for me that something that works on XALAN
> will work on less conformant processors.
>
> Cheers,
> Dimitre Novatchev.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list