- From: James Taylor <JTaylor@nextance.com>
- Date: Mon, 7 Feb 2005 15:38:26 -0800
- To: <xmlschema-dev@w3.org>
- Message-ID: <9F5ED6009B16CE47B2C02694103CFBE30B5871@mail-1.nextance.com>
Hi All,
Under what circumstances should a type redefinition create an error
condition regarding multiple definitions of the same type? In
particular, if a type is redefined when there is also an include that
indirectly loads the type definition, is this an error condition?
For example:
Company.xsd redefines the Address type from Location.xsd which
includes Address.xsd
Company.xsd also includes Employee.xsd which includes Address.xsd
Should I receive errors about duplicate definitions for the Address
type? If this is not valid, how do I properly redefine the Address type
within the Company.xsd schema?
Regards,
James
Company.xsd
<xs:schema elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:redefine schemaLocation="Location.xsd">
<xs:complexType name="Address">
<xs:complexContent>
<xs:extension base="Address">
<xs:sequence>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:redefine>
<xs:include schemaLocation="Employee.xsd"/>
<xs:element name="company" type="Company"/>
<xs:complexType name="Company">
<xs:sequence>
<xs:element name="location" type="Location"/>
<xs:element name="employee" type="Employee"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Location.xsd
<xs:schema elementFormDefault="unqualified"
attributeFormDefault="unqualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="Address.xsd"/>
<xs:complexType name="Location">
<xs:sequence>
<xs:element name="address" type="Address"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Employee.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema elementFormDefault="qualified"
attributeFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="Address.xsd"/>
<xs:complexType name="Employee">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="address" type="Address"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Address.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema elementFormDefault="unqualified"
attributeFormDefault="unqualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="Address">
<xs:sequence>
<xs:element name="street" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="zipCode" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Received on Monday, 7 February 2005 23:39:35 UTC