Wow, thank you very much Michael Kay for your thorough and well-thought
response.
Rumour has it, given your ability to speak-think-and-type, that you must
be a machine!
Regards, Justin Johansson
On 14/04/15 23:35, Michael Kay mike(_at_)saxonica(_dot_)com wrote:
For reasons which I do not claim to fully understand, the XPath/XSD
type system for atomic types is based on the notion of explicit type
labels, rather than being purely predicate-based ...
Having said all that, I think the reasons for making xs:numeric a
union type rather than a base type for xs:double, xs:decimal, and
xs:float were pragmatic: either approach would have worked
technically. Making it a base type would have involved either changes
to XSD, or a divergence between the XSD and XDM type hierarchies, both
of which would have had messy consequences. Introducing a union type,
having done all the groundwork to provide proper support for union
types in general, was much more straightforward.
Michael Kay
Saxonica
mike(_at_)saxonica(_dot_)com <mailto:mike(_at_)saxonica(_dot_)com>
+44 (0) 118 946 5893
On 14 Apr 2015, at 14:25, Justin Johansson procode(_at_)adam(_dot_)com(_dot_)au
<mailto:procode(_at_)adam(_dot_)com(_dot_)au> <xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com
<mailto:xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com>> wrote:
This question has been on my TODO list to ask the folks at
MulberryTech XSL List for quite some time.
I think this came about in XPath DM 3.0 regarding xs:numeric as per
spec ref:
http://www.w3.org/TR/xpath-datamodel-3/#types-hierarchy
In the type hierachy xs:numeric now appears for the first time
spec-wise (I believe) and it's on the right-hand side under "union
types".
Mathematically this seems inconsistent with respect to
xs:anyAtomicType given that it as a diagrammed type itself appears on
the left-hand side of the type hierarchy diagram and so does not
identify itself as a union type. But surely xs:anyAtomicType is in
fact a union type (set-theoretically/type-theoretically speaking). So
with respect to "union/non-union" reasoning which is correct
xs:anyAtomicType or xs:numeric as far as the diagram goes? Or,
rephasing, why is xs:numeric treated somehow differently to
xs:anyAtomicType?
On the other hand, perhaps this is all to do with some practical
reason for injecting xs:numeric into the XPath DM 3.0 type hierarchy
as a union type so as not to disaffect the status quo?
Any thoughts/insight from XSL List community?
Justin Johansson
Twitter: ** *@MartianOdyssey* <https://twitter.com/MartianOdyssey> :
Project Clockwork: My invention of the fastest and most extensible
XPath engine for the JVM (superlatives aspirational).
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--