This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Subject: Re: Bug in treating an RTF by Saxon 6.5 and MSXML


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]