xsl-list
[Top] [All Lists]

RE: testing for string and number in XSLT 2.0 was Re: [xsl] Test For Numeric Values?

2005-04-08 04:55:05

What will really be useful is a function with an argument of item(),
that returns the real type of the argument.

This would be trivial to achieve if same-arity function 
overloading was allowed.

Does anybody know of another way?

You can write

<xsl:choose>
<xsl:when test="$arg instanceof xs:boolean">boolean</xsl:when>
<xsl:when test="$arg instanceof xs:string">string</xsl:when>
etc.


Or shall we propose an exslt:type-of()  ?


The WGs decided not to provide such a function mainly because it inhibits
substitutability. For example, a function that is declared to return an
xs:decimal might actually (on some or all occasions) return an xs:integer,
or perhaps an oracle:binary-coded-decimal-integer. The result of an
xx:type-of() function would therefore differ from one implementation to
another. People would tend to write

if (exslt:type-of($x) = 'decimal')

which would fail on some implementations and succeed on others. By contrast,
writing "$x instance of xs:decimal" is portable, because it also matches
subtypes.

(Saxon does provide such a function, but I advise its use only for
diagnostics.)

Michael Kay
http://www.saxonica.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>
--~--



<Prev in Thread] Current Thread [Next in Thread>