- From: Dare Obasanjo <dareo@microsoft.com>
- Date: Mon, 29 Apr 2002 19:44:55 -0700
- To: "Mark Feblowitz" <mfeblowitz@frictionless.com>
- Cc: "Xmlschema-Dev (E-mail)" <xmlschema-dev@w3.org>
Oops, Should have sent this out sooner. The fix list for MSXML 4.0 SP1 is available as a series of KnowledgeBase articles. Q318886 INFO: List of Issues Fixed in Microsoft XML 4.0 Service Pack 1 (Part 1 of 4) http://support.microsoft.com/default.aspx?scid=kb;en-us;Q318886 Q318887 INFO: List of Issues Fixed in Microsoft XML 4.0 Service Pack 1 (Part 2 of 4) http://support.microsoft.com/default.aspx?scid=kb;en-us;Q318887 Q318889 INFO: List of Issues Fixed in Microsoft XML 4.0 Service Pack 1 (Part 3 of 4) http://support.microsoft.com/default.aspx?scid=kb;en-us;Q318889 Q318890 INFO: List of Issues Fixed in Microsoft XML 4.0 Service Pack 1 (Part 4 of 4) http://support.microsoft.com/default.aspx?scid=kb;en-us;Q318890 -- PITHY WORDS OF WISDOM The bigger they are, the harder they fall. Also the harder they punch, kick and choke. 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: Dare Obasanjo > Sent: Friday, March 15, 2002 6:45 PM > To: Dare Obasanjo; Mark Feblowitz > Cc: Xmlschema-Dev (E-mail) > Subject: [ANN] MSXML 4.0 SP 1 Now Available > > > MSXML SP1 is now available > > http://www.microsoft.com/downloads/release.asp?ReleaseID=37176 > > -- > THINGS TO DO IF I BECOME AN EVIL OVERLORD #27 > I will never build only one of anything important. All > important systems will have redundant control panels and > power supplies. For the same reason I will always carry at > least two fully loaded weapons at all times. > > > > -----Original Message----- > > From: Dare Obasanjo [mailto:dareo@microsoft.com] > > Sent: Wednesday, March 13, 2002 6:59 PM > > To: Mark Feblowitz > > Cc: Xmlschema-Dev (E-mail) > > Subject: RE: MSXML application of substitution groups to > > locally defined elements > > > > > > Yeah, you're right. This is a bug in MSXML which should be > > fixed in the next service pack. > > > > I'll keep you posted as to its availability. > > > > > > -- > > THINGS TO DO IF I BECOME AN EVIL OVERLORD #5 > > The artifact which is the source of my power will not be kept > > on the Mountain of Despair beyond the River of Fire guarded > > by the Dragons of Eternity. It > > will be in my safe-deposit box. The same applies to the > > object which is my > > one weakness. > > > > > > > -----Original Message----- > > > From: Mark Feblowitz [mailto:mfeblowitz@frictionless.com] > > > Sent: Wednesday, March 13, 2002 7:01 AM > > > To: Dare Obasanjo > > > Cc: 'Xmlschema-Dev (E-mail)' > > > Subject: MSXML application of substitution groups to locally > > > defined elements > > > > > > > > > (Re-sending with a corrected Subject line and inlined xsd and xml > > > files). > > > > > > As I understand it, substitution groups don't apply in > the case of > > > locally bound elements. > > > > > > So the complex type > > > > > > <xs:complexType name="OL"> > > > <xs:sequence> > > > <xs:element name="Note" type="Note" minOccurs="0" > > > maxOccurs="unbounded" /> > > > <xs:element name="ShipNote" type="Note" minOccurs="0" > > > maxOccurs="unbounded" /> > > > </xs:sequence> > > > </xs:complexType> > > > > > > Wouldn't even be subject to the conversion to an > equivalent choice > > > group. > > > > > > If, on the other hand, the complex type were defined as > > > > > > <xs:complexType name="OL"> > > > <xs:sequence> > > > <xs:element ref="Note" minOccurs="0" maxOccurs="unbounded" /> > > > <xs:element ref="ShipNote" minOccurs="0" > maxOccurs="unbounded" > > > /> > > > </xs:sequence> > > > </xs:complexType> > > > > > > then there would indeed be a problem - the first Note occurrence > > > would expand to the equivalent choice group, > > > > > > <xs:complexType name="OL"> > > > <xs:sequence> > > > <xs:choice> > > > <xs:element ref="Note" minOccurs="0" maxOccurs="unbounded" /> > > > <xs:element ref="ShipNote" minOccurs="0" > maxOccurs="unbounded" > > > /> > > > </xs:choice> > > > <xs:element ref="ShipNote" minOccurs="0" > > > maxOccurs="unbounded" /> > > > </xs:sequence> > > > </xs:complexType> > > > > > > Thus leading to the nondeterminism. > > > > > > But the case I'm dealing with should suffer from no such problem, > > > since the elements are locally bound. > > > > > > I've CC'ed the Schema Dev list for confirmation of this. > > > > > > Mark > > > > > > -------------------------------------------------------------- > > > -------------- > > > ---- > > > > > > Mark Feblowitz [t] 617.715.7231 > > > Frictionless Commerce Incorporated [f] 617.495.0188 > > > XML Architect [e] > > > mfeblowitz@frictionless.com > > > 400 Technology Square, 9th Floor > > > Cambridge, MA 02139 > > > www.frictionless.com > > > > > > > > > -----Original Message----- > > > From: Dare Obasanjo [mailto:dareo@microsoft.com] > > > Sent: Wednesday, March 13, 2002 1:33 AM > > > To: Mark Feblowitz > > > Subject: RE: Is anySimpleType a real type? > > > > > > Slight correction... > > > > > > > > > > -----Original Message----- > > > > From: Dare Obasanjo > > > > Sent: Tuesday, March 12, 2002 10:24 PM > > > > To: 'Mark Feblowitz' > > > > Subject: RE: Is anySimpleType a real type? > > > > > > > > > > > > On investigation, I believe that MSXML is not in error. > > > > > > > > Your complexType in question is defined as > > > > > > > > <xs:complexType name="OL"> > > > > <xs:sequence> > > > > <xs:element name="Note" type="Note" minOccurs="0" > > > > maxOccurs="unbounded" /> > > > > <xs:element name="ShipNote" type="Note" minOccurs="0" > > > > maxOccurs="unbounded" /> > > > > </xs:sequence> > > > > </xs:complexType> > > > > > > > > which after the substitionGroups are applied becomes > > > > > > > > <xs:complexType name="OL"> > > > > <xs:sequence> > > > > > > > <xs:choice> > > > > <xs:element name="Note" type="Note" minOccurs="0" > > > > maxOccurs="unbounded" /> > > > > <xs:element name="ShipNote" type="ShipNote" > > > > minOccurs="0" maxOccurs="unbounded" /> > > > > </xs:choice> > > > > > > The above should be > > > > > > <xs:choice minOccurs="0" maxOccurs="unbounded"> > > > <xs:element name="Note" type="Note" /> > > > <xs:element name="ShipNote" type="ShipNote" /> > > > </xs:choice> > > > > > > > <xs:element name="ShipNote" type="Note" minOccurs="0" > > > > maxOccurs="unbounded" /> > > > > </xs:sequence> > > > > </xs:complexType> > > > > > > > > Which to me is ambiguous once the user because upon seeing a > > > > <ShipNote> the parser cannot tell if it is the > <ShipNote> that is > > > > part of the <xs:choice> content model or the <ShipNote> > > that comes > > > > immediately after the <xs:choice>. > > > > > > > > -----Original Message----- > > > > > From: Mark Feblowitz [mailto:mfeblowitz@frictionless.com] > > > > > Sent: Tuesday, March 12, 2002 5:20 PM > > > > > To: Dare Obasanjo > > > > > Subject: RE: Is anySimpleType a real type? > > > > > > > > > > > > > > > Dare - > > > > > > > > > > I've attached an xsd and an xml file demonstrating the > > > > > nondeterminism problem. > > > > > > > > > > > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" > > > elementFormDefault="qualified" attributeFormDefault="unqualified"> > > > <xs:element name="OL" type="OL"/> > > > <xs:complexType name="OL"> > > > <xs:sequence> > > > <xs:element name="Note" type="Note" > > > minOccurs="0" maxOccurs="unbounded"/> > > > <xs:element name="ShipNote" type="Note" > > > minOccurs="0" maxOccurs="unbounded"/> > > > </xs:sequence> > > > </xs:complexType> > > > <xs:element name="ShipNote" type="ShipNote" > > > substitutionGroup="Note"/> > > > <xs:complexType name="ShipNote"> > > > <xs:simpleContent> > > > <xs:extension base="Note"/> > > > </xs:simpleContent> > > > </xs:complexType> > > > <xs:element name="Note" type="Note"/> > > > <xs:complexType name="Note"> > > > <xs:simpleContent> > > > <xs:extension base="LingualString"> > > > <xs:attribute name="author" > > > type="xs:string"/> > > > <xs:attribute name="entryDateTime" > > > type="DateTime"/> > > > </xs:extension> > > > </xs:simpleContent> > > > </xs:complexType> > > > <xs:simpleType name="DateTime"> > > > <xs:restriction base="xs:dateTime"> > > > <xs:pattern > > > value="\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d(Z|(\+|-)\d\d:\d\d)"/> > > > </xs:restriction> > > > </xs:simpleType> > > > <xs:complexType name="LingualString"> > > > <xs:simpleContent> > > > <xs:extension base="xs:string"> > > > <xs:attribute name="lang" > > > type="xs:language"/> > > > </xs:extension> > > > </xs:simpleContent> > > > </xs:complexType> > > > </xs:schema> > > > > > > <?xml version="1.0" encoding="UTF-8"?> > > > <OL xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > > xsi:noNamespaceSchemaLocation="MSXMLBug.xsd"> > > > <Note lang="en-us" author="String" > > > entryDateTime="2001-12-17T09:30:47-05:00">String</Note> > > > <ShipNote lang="en-us" author="String" > > > entryDateTime="2001-12-17T09:30:47-05:00">String</ShipNote> > > > </OL> > > > > > > > > > > > > > > Validating the file MSXMLBug.xml as-is results in a > > message about > > > > > the schema being nondeterministic. > > > > > > > > > > When I remove the substitutionGroup="Note" from the ShipNote > > > > > element, the validates completes without errors. > > > > > > > > > > My best guess here is that the validator is treating > the local > > > > > elements Note and ShipNote as global elements. With this > > > being the > > > > > case, the Note substitution group head could contain > > > either a Note > > > > > or a ShipNote element, leading to the nondeterminism. > > > > > > > > > > My understanding of the Schema Rec is that local > elements cannot > > > > > participate in substitution groups. > > > > > > > > > > Is this a known MSXML bug? > > > > > > > > > > Thanks for your help, > > > > > > > > > > Mark > > > > > > > > > > > > > > > >
Received on Monday, 29 April 2002 22:44:58 UTC