[xsl] Bug in Saxon?

Subject: [xsl] Bug in Saxon?
From: "Roger L Costello costello@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 7 Aug 2024 12:16:24 -0000
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?

/Roger

Current Thread