- From: Henry S. Thompson <ht@cogsci.ed.ac.uk>
- Date: 02 Feb 2001 12:22:12 +0000
- To: John Britton <johnb@peakaudio.com>
- Cc: "'xmlschema-dev@w3.org'" <xmlschema-dev@w3.org>
John Britton <johnb@peakaudio.com> writes: > I've run into a problem in attempting to define a schema for the following > sample XML instance document: > > <Settings> > <setting name="Number of FooDaddies" value="3"/> > <setting name="FooDaddies are In the House" value="true"/> > </Settings> > > The name values may contain white space, and thus aren't suitable as element > names. The value of the value attributes are different in each setting > element - i.e. I'm using anonymous type definitions to allow elements having > the same name to have different content. XML Schema specifically dis-allows this [1] -- the basic reasoning being that the element<->type association should be stable within a particular complex type. If you really don't want to use different element names, define an abstract type, use it <setting>, derive specialised types from it and use xsi:type to signal which one you're using, e.g. <element name="setting" type="my:stype"/> <complexType name="stype"> <attribute name="name" type="token"/> <attribute name="value"/> </complexType> <complexType name="s-int"> <complexContent> <restriction base="my:stype"> <attribute name="value" type="integer"/> </restriction </complexContent> </complexType> <complexType name="s-bool"> <complexContent> <restriction base="my:stype"> <attribute name="value" type="boolean"/> </restriction </complexContent> </complexType> <Settings> <setting name="Number of FooDaddies" xsi:type="s-int" value="3"/> <setting name="FooDaddies are In the House" xsi:type="s-bool" value="true"/> </Settings> ht -- Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh W3C Fellow 1999--2001, part-time member of W3C Team 2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440 Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk URL: http://www.ltg.ed.ac.uk/~ht/
Received on Friday, 2 February 2001 07:22:16 UTC