Subject: Re: testing for string and number in XSLT 2.0 was Re: Test For Numeric Values?
From: James Fuller <jim.fuller@xxxxxxxxxxxxxx>
Date: Fri, 08 Apr 2005 22:02:01 +0200
|
Michael Kay wrote:
>>Until now I was under the impression that the "instance of" operator
>>is usable only if the value has been type-annotated as result of
>>validation against a specific xml schema (as described on page 287 of
>>the XPath 2.0 book), (which may not be the case with a significant
>>part of all transformations written and used in the real world).
>>
>>Is my understanding of the applicability of the "instance of"
>>operator wrong ?
>>
>>
>
>It's incomplete... For atomic values, you can simply do things like
>
>123 instance of xs:boolean => false
>"123" instance of xs:string => true
>
>Also for nodes, you can do
>
>$node instance of comment()
>$node instance of element(para)
>
>
agreed, the missing *thing* here is something like instance of
number()....instance of text() or string().........and all this is
perhaps linked to XPath data model.
I guess what doesnt 'sit' right with me is that there are plenty of
inconsistencies in both XSLT 1.0 and 2.0 that still identify a value as
a number, in the atomic sense w/o resorting to any dependency on 'datatypes'
take for example xsl:sort
<xsl:sort select="." data-type="number"/>
what does 'number' mean here?
and if we are comfortable with this type of ambiguity of identifying
something purely as a 'number'....then why not have some fairly useful
functions such as is-number() and is-string() that exist in this no mans
land.
cheers, Jim Fuller
|