xsl-list
[Top] [All Lists]

Re: [xsl] How do I determine that an item is a numeric atomic value?

2010-10-04 02:55:22
From Roger:
How do I determine that the value of $exp is a numeric atomic value?

In EXSLT:
exslt:object-type($x) = 'number'

This is better than "number($x) = number($x)" because boolean and string
result in false (see comments from Michael below).


From Michael for XPath 2.0:
$x instance of xs:double or $x instance of xs:float or $x instance of
xs:decimal


From Dimitre for XPath 1.0 (with comments from Michael below):
number($x) = number($x)


From David:)
The xpath/xquery specs
essentially informally use such a type to

http://www.w3.org/TR/xpath20/#dt-numeric

but because it isn't really a type there have to be special XDM
type promotion rules.


Mit besten Gruessen / Best wishes,

Hermann Stamm-Wilbrandt
Developer, XML Compiler, L3
Fixpack team lead
WebSphere DataPower SOA Appliances
----------------------------------------------------------------------
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter
Geschaeftsfuehrung: Dirk Wittkopp
Sitz der Gesellschaft: Boeblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294


From:       Michael Kay <mike(_at_)saxonica(_dot_)com>
To:         xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Date:       10/02/2010 11:55 PM
Subject:    Re: [xsl] How do I determine that an item is a numeric atomic
            value?




In XPath 1.0:
==========

number($x) = number($x)

That would also return true if $x is a string or boolean or a node that
can be converted to a number, for example the string "12" or the boolean
true() or an attribute containing the value "12". In fact I think that's
the closest you can get in XPath 1.0 - and it's good enough, because you
don't really want to know whether it IS a number, you want to know
whether it can be used in a context where a number is required.

Michael Kay
Saxonica

In XPath 2.0
==========
Either the above, or:

$x instance of xs:double or $x instance of xs:decimal





--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--