  | |  | Cannot validate restricted complex type in schema | Cannot validate restricted complex type in schema 2004-02-10 - By Kornél Esti
Hi all,
I'm having a problem with restricted complex types using Xerces-J 2.6.1.
I have tried to validate the complex type restriction example from the Schema primer: http://www.w3.org/TR/2001/REC-xmlschema-0-20010502/#DerivByRestrict using the supplied sample xni.XMLGrammarBuilder.
Running `java xni.XMLGrammarBuilder -f -a ipo_test.xsd` gives me: [Error] ipo_test.xsd:56:37: rcase-NameAndTypeOK.7: The type of element 'item', 'null', is not derived from the type of the base element, 'null'. [Error] ipo_test.xsd:56:37: derivation-ok-restriction.5.4.2: Error for type 'ConfirmedItems'. The particle of the type is not a valid restriction of the particle of the base.
See the files used below.
Am I doing something wrong?
Greetings,
Kornel
--------
file "ipo_test.xsd": ===============================
<schema targetNamespace="http://www.example.com/IPO" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ipo="http://www.example.com/IPO">
<annotation> <documentation xml:lang="en"> International Purchase order schema for Example.com Copyright 2000 Example.com. All rights reserved. </documentation> </annotation>
<!-- include address constructs --> <!--include schemaLocation="http://www.example.com/schemas/address.xsd"/-->
<include schemaLocation="ipo_address.xsd"/>
<element name="purchaseOrder" type="ipo:PurchaseOrderType"/>
<element name="comment" type="string"/>
<complexType name="PurchaseOrderType"> <sequence> <element name="shipTo" type="ipo:Address"/> <element name="billTo" type="ipo:Address"/> <element ref="ipo:comment" minOccurs="0"/> <element name="items" type="ipo:Items"/> </sequence> <attribute name="orderDate" type="date"/> </complexType>
<complexType name="Items"> <sequence> <element name="item" minOccurs="0" maxOccurs="unbounded"> <complexType> <sequence> <element name="productName" type="string"/> <element name="quantity"> <simpleType> <restriction base="positiveInteger"> <maxExclusive value="100"/> </restriction> </simpleType> </element> <element name="USPrice" type="decimal"/> <element ref="ipo:comment" minOccurs="0"/> <element name="shipDate" type="date" minOccurs="0"/> </sequence> <attribute name="partNum" type="ipo:SKU" use="required"/> </complexType> </element> </sequence> </complexType>
<complexType name="ConfirmedItems"> <complexContent> <restriction base="ipo:Items"> <sequence>
<!-- item element is different than in Items --> <element name="item" minOccurs="1" maxOccurs="unbounded">
<!-- remainder of definition is same as Items --> <complexType> <sequence> <element name="productName" type="string"/> <element name="quantity"> <simpleType> <restriction base="positiveInteger"> <maxExclusive value="100"/> </restriction> </simpleType> </element> <element name="USPrice" type="decimal"/> <element ref="ipo:comment" minOccurs="0"/> <element name="shipDate" type="date" minOccurs="0"/> </sequence> <attribute name="partNum" type="ipo:SKU" use="required"/> </complexType> </element>
</sequence> </restriction> </complexContent> </complexType>
<simpleType name="SKU"> <restriction base="string"> <pattern value="\d{3}-[A-Z]{2}"/> </restriction> </simpleType>
</schema>
file "ipo_address.xsd": ===============================
<schema targetNamespace="http://www.example.com/IPO" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ipo="http://www.example.com/IPO">
<annotation> <documentation xml:lang="en"> Addresses for International Purchase order schema Copyright 2000 Example.com. All rights reserved. </documentation> </annotation>
<complexType name="Address"> <sequence> <element name="name" type="string"/> <element name="street" type="string"/> <element name="city" type="string"/> </sequence> </complexType>
<complexType name="USAddress"> <complexContent> <extension base="ipo:Address"> <sequence> <element name="state" type="ipo:USState"/> <element name="zip" type="positiveInteger"/> </sequence> </extension> </complexContent> </complexType>
<complexType name="UKAddress"> <complexContent> <extension base="ipo:Address"> <sequence> <element name="postcode" type="ipo:UKPostcode"/> </sequence> <attribute name="exportCode" type="positiveInteger" fixed="1"/> </extension> </complexContent> </complexType>
<!-- other Address derivations for more countries -->
<simpleType name="USState"> <restriction base="string"> <enumeration value="AK"/> <enumeration value="AL"/> <enumeration value="AR"/> <!-- and so on ... --> </restriction> </simpleType>
<!-- simple type definition for UKPostcode --> <simpleType name="Postcode"> <restriction base="string"> <length value="7" fixed="true"/> </restriction> </simpleType>
<simpleType name="UKPostcode"> <restriction base="ipo:Postcode"> <pattern value="[A-Z]{2}\d\s\d[A-Z]{2}"/> </restriction> </simpleType>
</schema>
_________________________________________________________________ STOP MORE SPAM with the new MSN 8 and get 2 months FREE* http://join.msn.com/?page=features/junkmail
--------------------------------------------------------------------- To unsubscribe, e-mail: xerces-j-user-unsubscribe@(protected) For additional commands, e-mail: xerces-j-user-help@(protected)
|
|
 |