- From: Mukul Gandhi <gandhi.mukul@gmail.com>
- Date: Thu, 26 Jul 2012 22:33:23 +0100
- To: Florent Georges <lists@fgeorges.org>
- Cc: "xmlschema-dev@w3.org" <xmlschema-dev@w3.org>
Hi Florent,
Related to this use-case, here's a different way of thinking about
XSD type inheritance in XSD 1.1 world.
<xs:complexType name="working-days">
<xs:simpleContent>
<xs:extension base="week-days">
<xs:assert test="not($value = ('saturday', 'sunday'))"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="week-days">
<xs:restriction base="xs:string">
<xs:enumeration value="monday"/>
<xs:enumeration value="tuesday"/>
<xs:enumeration value="wednesday"/>
<xs:enumeration value="thursday"/>
<xs:enumeration value="friday"/>
<xs:enumeration value="saturday"/>
<xs:enumeration value="sunday"/>
</xs:restriction>
</xs:simpleType>
These set of XSD types, doesn't exactly model XSD components as per
your modeling recommendations (i.e, a simpleType should extend another
simpleType). But this allows us, to reuse the specification of value
space of one XSD type ("week-days") within another type definition
("working-days"). In this example, the derived type is using an
<assert> to constrain the value space of the base type.
Does this look somewhat ok?
On Wed, Jul 25, 2012 at 11:02 AM, Florent Georges <lists@fgeorges.org> wrote:
> Hi,
>
> I struggle with a simple problem. I have two simple types,
> both are enumerations, one is a subset of the other. Lets' say:
>
> working-days:
> - monday, tuesday, wednesday, thursday, friday
> week-days:
> - { working-days }, saturday, sunday
>
> I would like to have "week-days" defined as an extension of
> "working-days". Sounds sensible, doesn't it? But I cannot find
> how to do it...
>
> Any idea?
>
> Regards,
>
> --
> Florent Georges
> http://fgeorges.org/
> http://h2oconsulting.be/
>
--
Regards,
Mukul Gandhi
Received on Thursday, 26 July 2012 21:34:12 UTC