RE: [xsl] xslt 2.0 castable as

Subject: RE: [xsl] xslt 2.0 castable as
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Mon, 2 Feb 2004 12:05:23 -0000
> I found, saxon 7.8, that ('non-roman' castable as xs:float) 
> returns true.

Saxon hasn't kept up with the latest specs in this area. The expression
('non-roman' cast as xs:float) will succeed in the current version of
Saxon: it will give you NaN, not an error. Therefore, "castable as"
returns true.

However, the latest specs have aligned casting with XML Schema
validation, which means that ('non-roman' cast as xs:float) should fail,
and "castable as" should therefore return false. I'll update the
software to match. Meanwhile, I suspect that what you really want is
"castable as xs:decimal", which should work OK in the current Saxon.
Alternatively, you could use a regex to test whether the value is
numeric, which might be more efficient anyway ("castable as" in its
current implementation involves throwing and catching an exception,
which is very expensive in Java).

Michael Kay


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread