Re: [xsl] Bug in Saxon?

Subject: Re: [xsl] Bug in Saxon?
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 7 Aug 2024 12:30:02 -0000
On 07/08/2024 14:16, Roger L Costello costello@xxxxxxxxx wrote:
Hi Folks,

I have an XSLT program with this template rule:

<xsl:template match="/">
     <arcRadius>
         <xsl:variable name="legacy-ARINC-elmt-name" select="'ARC_Radius'"
as="xs:string"/>
<xsl:variable name="legacy-ARINC-elmt-value" select="' '"
as="xs:string"/>
<xsl:variable name="whole-part"
select="substring($legacy-ARINC-elmt-value,1,3)"/>
<xsl:variable name="fraction-part"
select="substring($legacy-ARINC-elmt-value,4,3)"/>
         <xsl:if test="$whole-part castable as xs:integer">
             <xsl:value-of
select="concat(xs:string(xs:integer($whole-part)),'.',$fraction-part)"/>
         </xsl:if>
     </arcRadius>
</xsl:template>

When I run the program using saxon-ee-10.1.jar the program behaves as
expected, without error.

When I run the program using saxon-ee-12.4.jar this message is produced:


Warning at char 29 in xsl:value-of/@select on line 15 column 103 of
test.xsl:
SXWN9027 Evaluation will always throw a dynamic error: Cannot convert
zero-length string
to an integer

I believe this is a bug in the Saxon 12.4

Do you agree? If yes, is there a way to work around the bug?

Latest version is 12.5 so consider to test with that for bug reports.

And if you want us to relate an error message with line numbers to the
code you need to post a complete, minimal XSLT stylesheet.

As for not getting a warning, there is a setting to turn warnings off I
believe.

Current Thread