- From: <Simon.Cox@csiro.au>
- Date: Tue, 12 Mar 2002 16:19:49 +0800
- To: xmlschema-dev@w3.org
- Cc: dareo@microsoft.com
Yetanother issue raised by MSXML: * Is it OK to restrict the members of a substitution group by explicitly enumerating them in a <choice> group? * Does a substitution group include 2nd generation substitutions? In the schema below, first I set up a couple of substitution groups - one is headed by an anyType element e4, and includes a string element e5, an integer element e6 and a date element e7; - the other is headed by the integer element e6, and includes a negativeInteger element e8 and a positiveInteger element e9. Then I define a complex type e4Container that merely contains an optional e4. Then I define 2 complex types derived by restriction, in which I try to restrict the mebership of the e4 substitution group: e6pContainer only allows e8 and e9 e4pContainer only allows e5, e7 and e8 MSXML says e6pContainer is OK, so it appears that second generation substitutions are given the OK; but says e4pContainer has an "invalid particle derivation by restriction". This baffles me. Here's the schema: ======================== <?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="http://xmml.ned.dem.csiro.au/my" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:my="http://xmml.ned.dem.csiro.au/my" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- --> <element name="e4" abstract="true"/> <element name="e5" type="string" substitutionGroup="my:e4"/> <element name="e6" type="integer" substitutionGroup="my:e4"/> <element name="e7" type="date" substitutionGroup="my:e4"/> <element name="e8" type="negativeInteger" substitutionGroup="my:e6"/> <element name="e9" type="positiveInteger" substitutionGroup="my:e6"/> <!-- --> <complexType name="e4Container" abstract="true"> <sequence> <element ref="my:e4" minOccurs="0"/> </sequence> </complexType> <complexType name="e6pContainer"> <complexContent> <restriction base="my:e4Container"> <sequence> <choice minOccurs="0"> <element ref="my:e8"/> <element ref="my:e9"/> </choice> </sequence> </restriction> </complexContent> </complexType> <element name="e6pC" type="my:e6pContainer"/> <complexType name="e4pContainer"> <complexContent> <restriction base="my:e4Container"> <sequence> <choice minOccurs="0"> <element ref="my:e5"/> <element ref="my:e7"/> <element ref="my:e8"/> </choice> </sequence> </restriction> </complexContent> </complexType> <element name="e4pC" type="my:e4pContainer"/><!-- --> <!-- --> </schema> _____ Simon.Cox@csiro.au CSIRO Exploration & Mining 26 Dick Perry Avenue, Kensington WA 6151 PO Box 1130, Bentley WA 6102 AUSTRALIA T: +61 (8) 6436 8639 F: +61 (8) 6436 8555 C: +61 (4) 0330 2672 http://www.csiro.au/page.asp?type=resume&id=CoxSimon
Received on Tuesday, 12 March 2002 03:30:59 UTC