[Bug 19504] [QT3TS] instanceof139


--- Comment #6 from Michael Kay <mike@saxonica.com> ---
There are plenty of other cases where the extent of a type P is clearly a
subset of the extent of another type S, but P is not substitutable for S. For
example, the pair (P=xs:unsignedByte, S=xs:int), or the pair
(P=string(length<5), S=string(length<10)) Agreed, this situation is undesirable
(and in the case of the integer subtypes, makes them fairly unusable), but it's
a consequence of the original decision to go with "named typing" and I think we
have to live with it.

In fact, as XSD 1.1 part 2 notes (in section Type Derivation OK
(Simple)), the fact that A is substitutable for union(A, B, C) is a little
anomalous; it's a rare concession towards structural rather than named typing.

I'm not sure that anything would break if we recognized union(A,B) as a subtype
of union(A,B,C). I think we have to recognize subtype relationships that XSD
recognizes, but the converse is not necessary. But it would certainly create an
unnecessary incompatibility.

You are receiving this mail because:
You are the QA Contact for the bug.

Received on Friday, 12 October 2012 21:01:06 UTC