W3C home > Mailing lists > Public > www-xml-schema-comments@w3.org > April to June 2002

RE: Questions about "equal" fundamental facet

From: Ashok Malhotra <ashokma@microsoft.com>
Date: Wed, 24 Apr 2002 13:59:21 -0700
Message-ID: <E5B814702B65CB4DA51644580E4853FB01488792@red-msg-12.redmond.corp.microsoft.com>
To: <sandygao@ca.ibm.com>, <www-xml-schema-comments@w3.org>
Sandy, see comments inline.

All the best, Ashok 

-----Original Message-----
From: sandygao@ca.ibm.com [mailto:sandygao@ca.ibm.com] 
Sent: Wednesday, April 24, 2002 11:43 AM
To: www-xml-schema-comments@w3.org
Subject: Questions about "equal" fundamental facet

1. Is it defined on "value spaces", or "types"?

In 4.2.1 of the datatype spec: "Every *value space* supports the notion
equality, ...". So it seems that "equal" is defined on "value spaces".
this imply that two (unconnected) types (with the same value space) can
have equal values? For example, hexBinary and base64Binary have the same
value space ("the set of finite-length sequences of binary octets").
hexBinary value "00" and base64Binary value "AA==" both represent one
of value "0". Then are the two values equal? I would say they are equal,
"equal" is defined on value spaces.

But 3.11.1 of the structure spec says "Values of differing type can only
equal if one type is derived from the other, and the value is in the
space of both". Here it seems to indicate something different. Is this a
[AM] Equality is defined on values.  The values must be in the same
value space. Since derivation by restriction merely narrows the value
space a value of a base type may equal a value of a derived (by
restriction) type.

2. Does the types have to be related by *restriction* or *union*?

If type A restricts "integer" by setting "minInclusive=0", and B
"integer" by setting "maxInclusive=10". Now A and B are not related by
restriction or union. But I still expect value "5" from both types
spaces) to be equal.

(If they have to be related by *restriction* or *union*, doesn't 3.11.1
the structure spec need to be modified to be more strict, instead of
saying "derived from"?)
[AM] By restriction.

My take on these 2 questions:

1. "equal" should be defined on value spaces, because equal values are
equal, no matter how they were lexically represented.
[AM] Correct!

2. Types used to generate equal (actual) values don't need to be
As long as there exist a (primitive) value space to which both values
belong, and the two values are equal in that value space, then they are
equal. This means hexBinary and base64Binary can generate equal values,
can QName and NOTATION. Further on this, maybe the value space of
should (or already is) be a subset of that of "double", so that these
can generate equal values.
[AM] I don't know how to tell if two value spaces are subsets of some
primitive value space.  I only know such a relation exists for types
derived by restriction.

Sandy Gao
Software Developer, IBM Canada
(1-905) 413-3255
Received on Wednesday, 24 April 2002 17:03:17 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 23:08:58 UTC