The schema is invalid. If you follow the link to the errata document,
you'll find that E0-21 [1] changed that schema.

[1] http://www.w3.org/2001/05/xmlschema-errata#E0-21

Sandy Gao
Software Developer, IBM Canada
(1-905) 413-3255
[EMAIL PROTECTED]



                                                                       
             "Kornél Esti"                                           
             <[EMAIL PROTECTED]                                         
             com>                                                       To
                                       [EMAIL PROTECTED]    
             02/10/2004 12:21                                           cc
             PM                                                        
                                                                   Subject
                                       Cannot validate restricted complex
             Please respond to         type in schema                  
               xerces-j-user                                           
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       




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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to