Thanks. So with XML Schema 1.0, is there any way to have type
derivation and an unordered (all) set of children elements?
On Aug 14, 2007, at 1:34 PM, Michael Glavassevich wrote:
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]
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