- From: Henry S. Thompson <ht@inf.ed.ac.uk>
- Date: Tue, 19 Sep 2006 17:19:07 +0100
- To: Danny Vint <dvint@sack.dreamhost.com>
- Cc: xmlschema-dev@w3.org, xml-dev@lists.xml.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Danny Vint writes: > [not happy depending on optionality of following 'schemaLocation' hint] Let's go back to your requirements. Here is a minimal example of your (1) -- (3): (1) ACORD.xsd: <xs:schema targetNamespace="http://www.example.com/ACORD"> <xs:complexType name="ACType"> <xs:sequence> <xs:element name="AElt1"/> <xs:element name="AElt2"/> </xs:sequence> </xs:complexType> <xs:simpleType name="ASType"> <xs:restriction base="xs:token"> <xs:enumeration value="red"/> <xs:enumeration value="white"/> <xs:enumeration value="blue"/> </xs:restriction> </xs:simpleType> </xs:schema> (2) ACME.xsd: <xs:schema xmlns:ac="http://www.example.com/ACORD" targetNamespace="http://www.example.com/ACME"> <xs:import namespace="http://www.example.com/ACORD" schemaLocation="ACORD.xsd"/> <xs:element name="MyE" type="ac:ASType"/> </xs:schema> (3) AA.xsd: <xs:schema targetNamespace="http://www.example.com/ACORD" xmlns:ac="http://www.example.com/ACORD" xmlns:my="http://www.example.com/ACME"> <xs:import namespace="http://www.example.com/ACME" schemaLocation="ACME.xsd"/> <xs:redefine schemaLocation="ACORD.xsd"> <xs:complexType name="ACType"> <xs:complexContent> <xs:extension base="ac:ACType"> <xs:sequence> <xs:element ref="my:MyE"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:redefine> </xs:schema> So, as you already observed, this works with XSV, but not with all tools. The problem arises when ACORD.xsd is processed twice, producing two conflicting definitions of ACType. So, to fix this, we want to prevent the double processing. Proposed solution (I don't have access to the tool you're having trouble with): remove the offending hint. That is, change ACME.xsd: <xs:schema xmlns:ac="http://www.example.com/ACORD" targetNamespace="http://www.example.com/ACME"> <xs:import namespace="http://www.example.com/ACORD"/> <xs:element name="MyE" type="ac:ASType"/> </xs:schema> This is still a valid schema document. And now processing AA.xsd should not provoke any conflicts, as only the redefined type definition will be created. Hope this helps, ht - -- Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh Half-time member of W3C Team 2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440 Fax: (44) 131 650-4587, e-mail: ht@inf.ed.ac.uk URL: http://www.ltg.ed.ac.uk/~ht/ [mail really from me _always_ has this .sig -- mail without it is forged spam] -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.6 (GNU/Linux) iD8DBQFFEBh8kjnJixAXWBoRAtPMAJ4yRcZAcS9gGluHBa1L2lvbpftpZQCfUB+H uq5THzzXuL83hDTdyPv7lv4= =trT+ -----END PGP SIGNATURE-----
Received on Tuesday, 19 September 2006 16:19:29 UTC