- From: Henry S. Thompson <ht@inf.ed.ac.uk>
- Date: Tue, 12 Jun 2007 10:10:05 +0100
- To: "Eliot Kimber" <ekimber@innodata-isogen.com>
- Cc: <xmlschema-dev@w3c.org>
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Eliot Kimber writes: > In XML DTDs, one can override the declaration of an attribute declared > in an external declaration set by declaring the overriding version > earlier, . . . > I don't see an obvious way to do with with XSD using redefine. Depends on the types of the attribute involved. If the new type is a restriction of the old, then this is straightforward: baseAR.xsd: <xs:schema> <xs:complexType name="b"> <xs:attribute name="a" type="xs:string"/> </xs:complexType> </xs:schema> 1AR.xsd: <xs:schema> <xs:redefine schemaLocation="baseAR.xsd"> <xs:complexType name="b"> <xs:complexContent> <xs:restriction base="b"> <xs:attribute name="a" type="xs:token"/> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:redefine> </xs:schema> If the new type is _not_ a restriction of the old type, _and_ it's optional in the base, you can cheat. This is against the spirit of the REC, but in practice allowed (I believe): First we get rid of the attribute: 2AR.xsd: <xs:schema> <xs:redefine schemaLocation="baseAR.xsd"> <xs:complexType name="b"> <xs:complexContent> <xs:restriction base="b"> <xs:attribute name="a" use="prohibited"/> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:redefine> </xs:schema> Then we add it back with the desired type: 3AR.xsd: <xs:schema> <xs:redefine schemaLocation="2AR.xsd"> <xs:complexType name="b"> <xs:complexContent> <xs:extension base="b"> <xs:attribute name="a" type="xs:integer"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:redefine> </xs:schema> If this helps, hold your nose and go for it! 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) iD8DBQFGbmLtkjnJixAXWBoRAhgDAJ42zqyJXnxDDd563PERQF+OzuLYWwCdFHef oObEhzbTgejT4ykMLo+a2fs= =BG5E -----END PGP SIGNATURE-----
Received on Tuesday, 12 June 2007 09:10:23 UTC