- From: Jeni Tennison <jeni@jenitennison.com>
- Date: Fri, 26 Apr 2002 10:27:18 +0100
- To: xmlschema-dev@w3.org
Simon Cox asked:
> Is it possible to derive a simpleType by restriction from a union
> simple type, such that the derived type selects just one of the
> primitivetypes from the union?
[snip]
> Why would I want to do this, you may ask? I want to put various
> versions of "duration" into a single substitution group.
I thought of another possibility here -- creating a complex type with
simple content being the union type, and then deriving another complex
type from that whose simple content is of type 'duration':
<xs:simpleType name="TMDurationType">
<xs:union memberTypes="xs:duration xs:positiveInteger xs:double"/>
</xs:simpleType>
<xs:complexType name="TMDurationTypeBase">
<xs:simpleContent>
<xs:extension base="gml:TMDurationType" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="TMPeriodDurationType">
<xs:simpleContent>
<xs:restriction base="gml:TMDurationTypeBase">
<xs:simpleType>
<xs:restriction base="xs:duration" />
</xs:simpleType>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
This doesn't feel as if it should work, on the principal that whenever
you derive by restriction the resulting content should be valid
against the base type. However, I can't see a constraint in the XML
Schema Rec that says that the content type of a complex type with
simple content has to be derived from the content type of its base
type, and both XSV and Xerces say it's valid (MSXML doesn't, though).
Have I missed something in the Rec?
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
Received on Friday, 26 April 2002 05:27:19 UTC