W3C home > Mailing lists > Public > xmlschema-dev@w3.org > October 2002

Re: Equality of simple values - Where is my mistake?

From: Stefan Wachter <Stefan.Wachter@gmx.de>
Date: Wed, 30 Oct 2002 11:19:37 +0100 (MET)
To: ht@cogsci.ed.ac.uk;xmlschema-dev@w3.org; (Henry S. Thompson);
Message-ID: <16290.1035973177@www16.gmx.net>

> ht writes:
> 
> I was too brief -- two simple values can only be equal if they are
> derived from the same primitive builtin type.  decimal and aST are not
> the same (previous examples) but decimal and decimal are the same
> (your example), so you're OK.  The WG is trying to clarify the wording
> on this.  I should have said two _incompatible_ types, or some such.
> 
> ht  

Ok. I understand. 

But why do we need this artificial distinction between built-in primitive
types and derived types? It seems to me that the term what is built-in
primitive should be implementation dependent. For example the xsd:decimal type is
naturally mapped to java.math.BigDecimal, xsd:integer to java.math.BigInteger,
and xsd:byte to the primitive type byte, respectively.

Comparing values can be reduced to comparing their canonical forms because
their is a one to one mapping of values to their canonical forms. This
principle can be extended to xsd:anySimpleType by having the canonical form of a
value of type xsd:anySimpleType to be its lexical form.

The advantage of using such a definition of equality, would be that
xsd:anySimpleType becomes more like a normal type with less special treatments (e.g.
one could apply enumeration and pattern facets on it). The xsd:anySimpleType
is not seen as a nebulous union of all built-in primitive types but as a real
type that is the base type of all simple types.

--Stefan
Received on Wednesday, 30 October 2002 05:19:39 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:14:34 GMT