- From: Dare Obasanjo <dareo@microsoft.com>
- Date: Tue, 2 Apr 2002 19:35:20 -0800
- To: <Simon.Cox@csiro.au>, "Priya Lakshminarayanan" <priyal@microsoft.com>, <jeni@jenitennison.com>
- Cc: <xmlschema-dev@w3.org>, <John.Herring@oracle.com>, <portele@interactive-instruments.de>
We've investigated this and believe it is a bug in MSXML. For now, I suggest using the XmlValidatingReader in the .NET framework which currently correctly validates the target schemas. -- PITHY WORDS OF WISDOM People never like to discuss a lack of communication. This posting is provided "AS IS" with no warranties, and confers no rights. You assume all risk for your use. (c) 2002 Microsoft Corporation. All rights reserved. > -----Original Message----- > From: Simon.Cox@csiro.au [mailto:Simon.Cox@csiro.au] > Sent: Sunday, March 24, 2002 11:03 PM > To: Priya Lakshminarayanan; jeni@jenitennison.com; Dare Obasanjo > Cc: xmlschema-dev@w3.org; John.Herring@oracle.com; > portele@interactive-instruments.de > Subject: RE: [RESEND] Derivation by restriction > > > Priya - thanks for attaching the old mail thread. > > This is directly relevant as I am working with the > initiative which triggered the issue > - Geography Markup Language (from OpenGIS Consortium). > > We are now ridding our schemas of cases where the type > of a substitution group member extended the type of the > substitution group head, while the container type was > derived by restriction. > > **However**, we are not out of the woods yet, in regards > to MSXML's rigorous implementation of derivation-by-restriction. > > In our schemas we have a /lot/ of cases following a general pattern: > > 1. Declare an element to act as head of substitition group; > 2. Declare non-abstract elements in the substitution group, > with a type derived from the type of the head by restriction; > 3. Define a complex type which contains the abstract head > element; 4. Define a restriction of the container which > specifies that > a particular concrete member element is present. > > This appears to be pretty much how substitution groups were > designed to be used. > > *** However, both the cases here run afowl of the MSXML > parser. *** ("Invalid particle derivation by restriction"). > Is MSXML wrong here, or am I missing something else? > > N.B. In the first case Member1Type is a restriction of Head1Type > by having a defined content model *** compared with an anyType ***. > In the second case Member2Type is a restriction of Head2Type > by restricting the cardinality of the content. > > > > ============ > > <?xml version="1.0" encoding="UTF-8"?> > <schema targetNamespace="http://xmml.ned.dem.csiro.au/my" > xmlns:my="http://xmml.ned.dem.csiro.au/my" > xmlns="http://www.w3.org/2001/XMLSchema" > elementFormDefault="qualified" attributeFormDefault="unqualified"> > <!-- --> > <element name="_Head1" abstract="true"/> > <!-- --> > <complexType name="Member1Type"> > <sequence> > <element name="foo" type="string"/> > </sequence> > </complexType> > <!-- --> > <element name="Member1" type="my:Member1Type" > substitutionGroup="my:_Head1"/> > <!-- --> > <complexType name="ContainHead1Type" abstract="true"> > <sequence> > <element ref="my:_Head1"/> > </sequence> > </complexType> > <!-- --> > <complexType name="ContainMember1Type"> > <complexContent> > <restriction base="my:ContainHead1Type"> > <sequence> > <element ref="my:Member1"/> > </sequence> > </restriction> > </complexContent> > </complexType> > </schema> > > ============ > > <?xml version="1.0" encoding="UTF-8"?> > <schema targetNamespace="http://xmml.ned.dem.csiro.au/my" > xmlns:my="http://xmml.ned.dem.csiro.au/my" > xmlns="http://www.w3.org/2001/XMLSchema" > elementFormDefault="qualified" attributeFormDefault="unqualified"> > <!-- --> > <complexType name="Head2Type"> > <sequence> > <element name="foo" type="string" maxOccurs="unbounded"/> > </sequence> > </complexType> > <!-- --> > <element name="_Head2" type="my:Head2Type" abstract="true"/> > <!-- --> > <complexType name="Member2Type"> > <complexContent> > <restriction base="my:Head2Type"> > <sequence> > <element name="foo" type="string"/> > </sequence> > </restriction> > </complexContent> > </complexType> > <!-- --> > <element name="Member2" type="my:Member2Type" > substitutionGroup="my:_Head2"/> > <!-- --> > <complexType name="ContainHead2Type" abstract="true"> > <sequence> > <element ref="my:_Head2"/> > </sequence> > </complexType> > <!-- --> > <complexType name="ContainMember2Type"> > <complexContent> > <restriction base="my:ContainHead2Type"> > <sequence> > <element ref="my:Member2"/> > </sequence> > </restriction> > </complexContent> > </complexType> > <!-- --> > </schema> > > ========= > _____ > [This mail represents part of a discussion of work in progress > and should not be used for any purpose without my permission.] > _____ > 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 > > > -----Original Message----- > > From: Priya Lakshminarayanan [mailto:priyal@microsoft.com] > > Sent: Tuesday, 19 March 2002 4:03 AM > > To: Jeni Tennison; Dare Obasanjo > > Cc: Xmlschema-Dev (E-mail) > > Subject: RE: [RESEND] Derivation by restriction > > > > > > Yes, the primer is in error. Attached is the mail thread > regarding the > > discussion. This was supposed to raised as an errata against the > > primer. > > > > > > Thanks, > > Priya > > > > -----Original Message----- > > From: Jeni Tennison [mailto:jeni@jenitennison.com] > > Sent: Saturday, March 16, 2002 3:22 AM > > To: Dare Obasanjo > > Cc: Xmlschema-Dev (E-mail) > > Subject: Re: [RESEND] Derivation by restriction > > > > Hi Dare, > > > > > NOTE: The above constraint on {type definition} > > > <http://www.w3.org/TR/xmlschema-1/#type_definition> means that in > > > deriving a type by restriction, any contained type > definitions must > > > themselves be explicitly derived by restriction from the > > > corresponding type definitions in the base definition. > > > > > > However this runs contrary to both the text in 'Essential > XML Quick > > > Reference' on XML Schema xs:restriction (p. 337) and the > example in > > > the XML Schema Primer[1] which imply that simply defining the > > > contained type again in a derived type without the contained type > > > deriving by restriction is allowable. XML Spy also validates both > > > schemas. > > > > > > So are we interpreting the recommendation correctly or not? > > > > For what it's worth, I think that you are, and that the > Primer is in > > error. > > > > Cheers, > > > > Jeni > > > > --- > > Jeni Tennison > > http://www.jenitennison.com/ > > > > >
Received on Tuesday, 2 April 2002 22:35:37 UTC