Hi Jeffrey,

The content model of a complex type derived by extension (see {content 
type} under the section "Complex Type Definition with complex content 
Schema Component" [1]) consists of a sequence of the content from the base 
type followed by the effective content [2] from the type you're declaring.

Given the composition rules, you've effectively declared this (which isn't 
valid [3]):

<xs:complexType name="OutputColumn">
 <xs:complexContent>
  <xs:sequence>
   <xs:all>
    <xs:element name="name" type="xs:string"/>
   </xs:all>
   <xs:all>
    <xs:element name="tolerance" type="xs:decimal"/>
   </xs:all>
  </xs:sequence>
 </xs:complexContent>
</xs:complexType>

and not

<xs:complexType name="OutputColumn">
 <xs:complexContent>
  <xs:all>
   <xs:element name="name" type="xs:string"/>
   <xs:element name="tolerance" type="xs:decimal"/>
  </xs:all>
 </xs:complexContent>
</xs:complexType>

which seems to be what you wanted. You can't use type derivation to 
achieve this with XML Schema 1.0, though I think XML Schema 1.1 might be 
changing the rules a bit to allow it.

Thanks.

[1] http://www.w3.org/TR/xmlschema-1/#declare-type
[2] http://www.w3.org/TR/xmlschema-1/#key-exg
[3] http://www.w3.org/TR/xmlschema-1/#cos-all-limited

Michael Glavassevich
XML Parser Development
IBM Toronto Lab
E-mail: [EMAIL PROTECTED]
E-mail: [EMAIL PROTECTED]

Jeffrey A Lage <[EMAIL PROTECTED]> wrote on 08/14/2007 
12:03:53 PM:

> All,
> 
> It seems to me that this should be a valid XSD:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <xs:schema xmlns="http://schemas.fundevs.com/1/asgard"; 
>         xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
>         targetNamespace="http://schemas.fundevs.com/1/asgard"; 
>         elementFormDefault="qualified" 
>         attributeFormDefault="unqualified" 
>         id="TestSuite">
> 
>     <xs:complexType name="Column">
>         <xs:all>
>             <xs:element name="name" type="xs:string"/>
>         </xs:all>
>     </xs:complexType>
>     
>     <xs:complexType name="OutputColumn">
>         <xs:complexContent>
>             <xs:extension base="Column">
>                 <xs:all>
>                     <xs:element name="tolerance" type="xs:decimal"/>
>                 </xs:all>
>             </xs:extension>
>         </xs:complexContent>
>     </xs:complexType>
> 
> </xs:schema>
> 
> But I am receiving the following error from the parser:
> 
> cos-all-limited.1.2: An 'all' model group must appear in a particle 
> with {min occurs} = {max occurs} = 1, and that particle must be part
> of a pair which constitutes the {content type} of a complex type 
definition.
> 
> Can someone explain to me why this is incorrect?
> 
> Jeffrey A. Lage | Fund Development Services                         
>                                                                     
>                                                        
> 440 Park Avenue South | 14th Floor | New York | NY | 10016 | email: 
> [EMAIL PROTECTED] | office: 212.920.3527 | mobile: 
> 917.536.1767

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

Reply via email to