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

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

From: Dare Obasanjo <dareo@microsoft.com>
Date: Tue, 29 Oct 2002 11:28:15 -0800
Message-ID: <B885BEDCB3664E4AB1C72F1D85CB29F804104DD4@RED-MSG-10.redmond.corp.microsoft.com>
To: "Stefan Wachter" <Stefan.Wachter@gmx.de>, <xmlschema-dev@w3.org>

The definition of equality is in the W3C XML Schema Datatypes
recommendation at http://www.w3.org/TR/xmlschema-2/#equal and states 

"* for any a and b in the *value space*, either a is equal to b, denoted
a = b, or a is not equal to b, denoted a != b 
* there is no pair a and b from the *value space* such that both a = b
and a != b 
* for all a in the *value space*, a = a 
* for any a and b in the *value space*, a = b if and only if b = a 
* for any a, b and c in the *value space*, if a = b and b = c, then a =
* for any a and b in the *value space* if a = b, then a and b cannot be
distinguished (i.e., equality is identity) 

Note that a consequence of the above is that, given *value space*  A and
*value space*  B where A and B are not related by *restriction* or
*union*, for every pair of values a from A and b from B, a != b."

The last sentence seems to imply that in your example both types are

When in doubt, ignore it.                

This posting is provided "AS IS" with no warranties, and confers no

> -----Original Message-----
> From: Stefan Wachter [mailto:Stefan.Wachter@gmx.de] 
> Sent: Tuesday, October 29, 2002 11:20 AM
> To: xmlschema-dev@w3.org
> Hi all.
> The current discussion on types states that
>   <isbn xsi:type="xsd:decimal">1234.0</isbn>
>   <isbn>1234</isbn>
> are not equal because they have different types.
> If I define two new simple types
> <simpleType name="b">
>   <restriction base="xsd:decimal">
>     <enumeration value="123"/>
>   </restriction>
> </simpleType>
> and 
> <simpleType name="r">
>   <restriction base="b"/>
> </simpleType>
> then the values
> <v1 xsi:type="b">123</v1>
> <v2 xsi:type="r">123</v2>
> are also not equal because they have different types, right? 
> But both values are valid because they are equal to the 
> enumerated value. Therefore both values must be equal!
> Where is my mistake?
> --Stefan
> PS: Until now I assumed that simple values are equal iff
> 1. they have the same type or the type of one value is a base 
> type of the type of the other value and 2. the values are 
> equal with respect to their common type or the base type, 
> respectively.
Received on Tuesday, 29 October 2002 14:28:47 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 14:55:58 UTC