- From: James Taylor <JTaylor@nextance.com>
- Date: Fri, 28 Jan 2005 17:13:23 -0800
- To: <xmlschema-dev@w3.org>
- Message-ID: <9F5ED6009B16CE47B2C02694103CFBE30B5866@mail-1.nextance.com>
Hi All, I'm getting conflicting results from different tools regarding the validity of a redefine scenario and was hoping you could clear things up. Can a type be redefined within the scope of a schema if the schema defining the type also indirectly includes the type through a sibling include statement? Here's an example: Company.xsd redefines the Address type from Location.xsd which includes Address.xsd Company.xsd includes Employee.xsd which also 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? Thanks, 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 Saturday, 29 January 2005 01:14:29 UTC