- From: Axel Polleres <axel.polleres@deri.org>
- Date: Tue, 12 May 2009 23:48:11 +0100
- To: public-qt-comments@w3.org
- CC: RIF WG Chairs <team-rif-chairs@w3.org>
I would kindly ask for advice on the following questions regarding
implicit casts and type promotions in XPath/XQuery functions
1) For instance, fn:year-from-dateTime
(http://www.w3.org/TR/xpath-functions/#func-year-from-dateTime)
does not mention any implicit casts in its definition.
Does that imply a type error if I call
fn:year-from-dateTime(s)
with an xs:string value s as parameter, even if s is in the lexical
space of xs:dateTime or is a cast here implicit?
On the other hand, fn:years-from-duration
(http://www.w3.org/TR/xpath-functions/#func-year-from-dateTime)
mentions explicitly casting in its definition:
"The result is obtained by casting $arg to an xs:yearMonthDuration (see
17.1.4 Casting to duration types) and then computing the years component
as described in 10.3.1.3 Canonical representation."
Would that imply that fn:years-from-duration(s)
would accept an xs:string s castable to xs:yearMonthDuration
as argument?
In this case is this different treatment of the extraction functions
for years from dateTime and duration intended?
2) Similarly,
op:divide-yearMonthDuration
(http://www.w3.org/TR/xpath-functions/#func-divide-yearMonthDuration)
accepts as second argument xs:double.
Again the question is whether casting here is implicit, as e.g. the
example suggests:
op:divide-yearMonthDuration(xs:yearMonthDuration("P2Y11M"), 1.5)
where 1.5 is a decimal value, isn't it?
In general, I would like to find where in the spec I would find hints on
whether conversions in functions and operators are meant to be implicit
or not, and, if they are, then why in some cases, e.g.
fn:years-from-duration
casting is mentioned explicitly?
Thanks for clarification,
Axel Polleres
--
Dr. Axel Polleres
Digital Enterprise Research Institute, National University of Ireland,
Galway
email: axel.polleres@deri.org url: http://www.polleres.net/
Received on Tuesday, 12 May 2009 22:48:55 UTC