- From: <bugzilla@jessica.w3.org>
- Date: Thu, 24 Apr 2014 17:24:27 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=25444 Bug ID: 25444 Summary: [XP3.1] Replace pseudo-type "numeric" with a union type Product: XPath / XQuery / XSLT Version: Last Call drafts Hardware: PC OS: All Status: NEW Severity: normal Priority: P2 Component: XPath 3.1 Assignee: jonathan.robie@gmail.com Reporter: mike@saxonica.com QA Contact: public-qt-comments@w3.org We have a number of functions whose signature includes the pseudo-type "numeric", and explain this by saying that there are actually multiple function signatures with different types (decimal, double, float, numeric). We say in section 1.4 that fn:abs(numeric) is actually four different functions with different signatures, but in XQuery ยง3.1.6 we say "fn:abs#1 references the fn:abs function" as if there were only one. This is a fudge and a mess, and it is quite unnecessary now that we support union types. We should define these functions with a signature that expects a supplied type of union(decimal, float, double), and returns the same as its result type, and all the problems go away. In addition, if we do it using a union type, then user-defined functions on numeric values can adopt the same approach (well, actually, they already can). The only complications are how to introduce a new built-in union type. Rather than make all the effort to decide what name and namespace such a type should have, I propose that we make it anonymous, and allow anonymous plain union types to be declared using ItemType syntax at the point of use: "union" "(" QName ("," QName)* ")" We then not only solve the "numeric" problem, but also provide a powerful capability for users at the same time, being able to declare union types and use them freely without pre-declaration in a schema, e.g. <xsl:variable name="d" select="@timestamp cast as union(xs:gYearMonth, xs:date)"/> -- You are receiving this mail because: You are the QA Contact for the bug.
Received on Thursday, 24 April 2014 17:24:30 UTC