W3C home > Mailing lists > Public > xmlschema-dev@w3.org > July 2012

Re: Extending an enumeration

From: Mukul Gandhi <gandhi.mukul@gmail.com>
Date: Thu, 26 Jul 2012 22:33:23 +0100
Message-ID: <CABuuzNMTL5OjT94qaO_EX-Owc4T9hP3fF-etBKzR-UeTPT5hUw@mail.gmail.com>
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:extension base="week-days">
	     <xs:assert test="not($value = ('saturday', 'sunday'))"/>
<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"/>

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/

Mukul Gandhi
Received on Thursday, 26 July 2012 21:34:12 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 14:56:20 UTC