RE: Restricting child elements in a schema

Let me describe my problem little more in detail.
We are using acord schema as our base. We have no control over changing 
the acord schema.
We defined our own schema and we imported acord schema so that we could 
resuse acord elements.
We used <xs:restrction> for some complex types and used <xs:extension> for 
others. 
We used <xs:extension> for complex types coz we have following 
requirements
        1) Use some elements within the complex type as it is
        2) Redefine some elements to make them required as they were not 
required in acord schema 
        3) Add more elements to the extended complex type
The problem we are facing is while doing step # 3.
Here is an snippet,

Parent Acord schema 
<xs:complexType name="ContractType">
                <xs:sequence>
                        <xs:element ref="ContractName" minOccurs="0"/>
                        <xs:element ref="ContractType" minOccurs="0"/>
                        <xs:element ref="BrokerReference" minOccurs="0"/> 
(Optional)
                </xs:sequence>
</xs:complexType>

Our schema

<xs:import namespace="
http://www.ACORD.org/standards/Jv-Ins-Reinsurance/2004-1" schemaLocation="
Jv-Ins-Reinsurance-2004-1.xsd"/>
<xs:complexType name="GCContractType">
                <xs:complexContent>
                        <xs:extension base="acord:ContractType">
                                <xs:sequence>
                                        <xs:element ref="
acord:BrokerReference" substitutionGroup="acord:BrokerReference"/> (Change 
the element  defined in parent as required and use all the other elements 
as it is and add a new element 'GCContractVersion')
                                        <xs:element ref="GCContractVersion
"/>
                                </xs:sequence>
                        </xs:extension>
                </xs:complexContent>
</xs:complexType>

Above, worked with xmlspy 2004 but with xmlspy 2005 we get an error saying 
substitutionGroup cannot be uused with xs:element as it is local.I read 
the docs and i beleive that substitutionGroup can be used only directly 
under <xs:schema>.
Is there an alernate way of handling this so that  all 3 requirements are 
met?


Thanks
Dilpa

Received on Thursday, 2 December 2004 15:55:38 UTC