- From: Michael Kay <mhk@mhk.me.uk>
- Date: Wed, 11 Aug 2004 09:01:37 +0100
- To: "'Shane Lauf'" <srl01@uow.edu.au>
- Cc: <xmlschema-dev@w3.org>
The following schema is reported as valid by Saxon, MSXML, XSV, and Xerces: <?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:did="did.uri" targetNamespace="did.uri" elementFormDefault="qualified" attributeFormDefault="unqualified"> <element name="AbstractObject" type="did:AbstractObjectType" abstract="true"/> <complexType name="AbstractObjectType"> <complexContent> <extension base="did:AbstractObjectBaseType"> <sequence> <choice minOccurs="0"> <!--***--> <element ref="did:AnotherObjectA"/> <element ref="did:AnotherObjectB"/> </choice> </sequence> </extension> </complexContent> </complexType> <element name="ConcreteObject" substitutionGroup="did:AbstractObject" type="did:ConcreteObjectType"/> <complexType name="ConcreteObjectType"> <complexContent> <restriction base="did:AbstractObjectType"> <sequence> <choice minOccurs="1"> <!--***--> <element ref="did:AnotherObjectA"/> <element ref="did:AnotherObjectB"/> </choice> </sequence> </restriction> </complexContent> </complexType> <element name="AnotherObjectA"/> <element name="AnotherObjectB"/> <complexType name="AbstractObjectBaseType"/> </schema> Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: xmlschema-dev-request@w3.org > [mailto:xmlschema-dev-request@w3.org] On Behalf Of Shane Lauf > Sent: 11 August 2004 07:13 > To: xmlschema-dev@w3.org > Subject: restricting minOccurs on a choice tag > > > For the following part of a schema, which defines an > AbstractObject which > has two possible child elements AnotherObjectA and > AnotherObjectB, is there > a way that I can derive AbstractObject into a concrete > element Object where > the minOccurs="0" is no longer on the choice - i.e. forcing > (restricting) > Object to have *at least one* of the child objects present? I > know I can > derive and restrict when the minOccurs="0" is on a single > element, but not > sure about when it is on a choice. > > <element name="AbstractObject" type="did:AbstractObjectType" > abstract="true"/> > <complexType name="AbstractObjectType"> > <complexContent> > <extension base="did:AbstractObjectBaseType"> > <sequence> > <choice minOccurs="0"> <!--***--> > <element ref="AnotherObjectA"/> > <element ref="AnotherObjectB"/> > </choice> > </sequence> > </extension> > </complexContent> > </complexType> > > Regards, > > Shane > > > >
Received on Wednesday, 11 August 2004 08:02:11 UTC