Re: [xsl] Why does my XSLT produce a Warning message with never-executed code that divides a blank by 10?

Subject: Re: [xsl] Why does my XSLT produce a Warning message with never-executed code that divides a blank by 10?
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 31 Mar 2024 08:41:31 -0000
Am 31.03.2024 um 09:56 schrieb Roger L Costello costello@xxxxxxxxx:

I have a program that generates this XSLT code:


<xsl:template match="/">
         <xsl:variable name="test" select="'    '" as="xs:string"/>
         <xsl:value-of select="
             if (normalize-space($test) eq '') then ()
             else xs:integer($test) div 10"/>
</xsl:template>

When I execute that XSLT code, I get this warning message:

Warning: SXWN9000 Evaluation will always throw a dynamic error: Cannot
convert zero-length string to an integer

Why am I getting that Warning message?

If you run with -explain then you will see that the variable is inlined and the expression rewritten. But I have never really learned to understand the output of -explain fully so I guess you will have to wait until Michael Kay shows up to tell you why Saxon gives the warning.

Current Thread