- From: Lemmin, Harald <Harald.Lemmin@softwareag.com>
- Date: Wed, 9 Jan 2002 19:32:49 +0100
- To: "'xmlschema-dev@w3.org'" <xmlschema-dev@w3.org>
Hi, you extend by a change in the occurrences: your base definition is: ... <xs:element ref="phx:Shipment" minOccurs="0"/> ... but the "restricted" one is: ... <xs:element ref="phx:Shipment" maxOccurs="unbounded"/> ... That means the base type permits 0..1 Shipment, whereas the restricted type permits 1..unbounded Shipment and that is not a valid restriction. Rgrds, Harald -----Original Message----- From: Dare Obasanjo [mailto:kpako@yahoo.com] Sent: Mittwoch, 9. Januar 2002 22:10 To: xmlschema-dev@w3.org Subject: Problems with xs:complexType restriction involving xs:choice The attached schema gives the following error ERROR: Invalid particle derivation by restriction. when validated with MSFT .NET's XmlValidatingReader but works fine with XSV (and XML Spy). So is there a bug in the .NET XmlValidatingReader or is the derivation invalid? I assume the relevant parts of the XML Schema: Structures recommendation is section 3.4.6 (Constraints on Complex Type Definition Schema Components) and Schema Component Constraint: Particle Valid (Restriction) [0] and Schema Component Constraint: Particle Derivation OK (Choice:Choice -- RecurseLax) [1] but it wasn't readily obvious if there was any problem with the schema _except_ if the part 2 of the (Choice:Choice -- RecurseLax) section mentioned above requires that for each particle in the Base type,B, there must be a corresponding particle in the Derived type, D. [0] http://www.w3.org/TR/xmlschema-1/#cd-model-restriction [1] http://www.w3.org/TR/xmlschema-1/#rcase-RecurseLax <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:phx="urn:foo" targetNamespace="urn:foo"> <xs:element name="Manifest" type="xs:string" /> <xs:element name="Shipment" type="xs:string" /> <xs:element name="Package" type="xs:string" /> <xs:simpleType name="CarrierSpecialService_t"> <xs:restriction base="xs:positiveInteger"> <xs:maxExclusive value="100"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="Carrier_t"> <xs:restriction base="xs:positiveInteger"> <xs:maxExclusive value="100"/> </xs:restriction> </xs:simpleType> <xs:complexType name="RequestPayload_t"> <xs:choice maxOccurs="unbounded"> <xs:element ref="phx:Manifest" minOccurs="0"/> <xs:element ref="phx:Shipment" minOccurs="0"/> <xs:element ref="phx:Package" minOccurs="0"/> <xs:element name="CarrierSpSvc" type="phx:CarrierSpecialService_t" minOccurs="0"/> <xs:element name="Carrier" type="phx:Carrier_t" minOccurs="0"/> </xs:choice> </xs:complexType> <xs:complexType name="storeShipmentPayload_t"> <xs:complexContent> <xs:restriction base="phx:RequestPayload_t"> <xs:choice maxOccurs="unbounded"> <! -- ERROR OCCURS HERE --> <xs:element ref="phx:Shipment" maxOccurs="unbounded"/> </xs:choice> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:schema> -- THINGS TO DO IF I BECOME AN EVIL OVERLORD #71 If I decide to test a lieutenant's loyalty and see if he/she should be made a trusted lieutenant, I will have a crack squad of marksmen standing by in case the answer is no. _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com
Received on Wednesday, 9 January 2002 13:32:53 UTC