Union types derived by restriction

In Schema Part 1 (PER 18 Mar 2004), section 3.14.6, Schema Component
Constraint: Derivation Valid (Restriction, Simple), is the rule:

3.3.2.3 The {member type definitions}, in order, must be validly derived
from the corresponding type definitions in the {base type definition}'s
{member type definitions} given the empty set, as defined in ...

However, I'm having trouble seeing how one can define a union as a
restriction of another union in which the member type definitions differ in
any way from those of the base type definition. <xs:restriction> only allows
me to change the pattern and enumeration facets, not the member types.

For example:

(a) if the base type is a union of decimal and string, can I make the
derived type be a union of integer and string? Unless I'm missing something,
I think not.

(b) if the base type is a union of dateTime, date, and time, can I make the
derived type be a union of dateTime and date? Again, I think not.

So what does rule 3.3.2.3 mean? My suspicion is that it is vacuous.

Michael Kay

Received on Monday, 20 September 2004 09:45:53 UTC