Hi Roger,
I don't know why Saxon doesn't determine that the xs:integer() branch will only be reached when normalize-space($test) has a length > 0.
Interestingly, there is no warning (only a dynamic error when executing) for
$test ! xs:integer(.) div 10
Maybe generate the following expression, it won't cause a warning either, and it will give the same result as your code (with an additional check that $test is actually castable as xs:integer):
$test[. castable as xs:integer] ! xs:integer(.) div 10
or for XPath 2.0
for $t in $test[. castable as xs:integer] return xs:integer($t) div 10
Gerrit
On 31.03.2024 09:56, Roger L Costello costello@xxxxxxxxx wrote:
Hi Folks,
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? This:
xs:integer($test) div 10
will never be executed because of this:
if (normalize-space($test) eq '') then ()
So I don't understand why I am getting the Warning message.
How can the XSLT code be written so that, when executed, it doesn't produce a Warning message? Note: recall that I have a program that generates the XSLT code. Sometimes the program generates $test with a blank value, other times the program generates $test with a numeric value. The generated XSLT code needs to work with both cases.
/Roger
--
Gerrit Imsieke
GeschC$ftsfC<hrer / Managing Director
le-tex publishing services GmbH
Weissenfelser Str. 84, 04229 Leipzig, Germany
Phone +49 341 355356 110, Fax +49 341 355356 510
gerrit.imsieke@xxxxxxxxx, http://www.le-tex.de
Registergericht / Commercial Register: Amtsgericht Leipzig
Registernummer / Registration Number: HRB 24930
GeschC$ftsfC<hrer / Managing Directors:
Gerrit Imsieke, Svea Jelonek, Thomas Schmidt
|