This may be bad design, so if it is, then I guess what I'm looking for is an elegant alternative solution. However I don't believe the following to be a product of poor design, and so the following question should apply: I want a particular element, <*widget*> to force the user to define a *foo*attribute, which will be an enum type of three potential values: *me*, *you* or *us*. For example: <widget foo="me" /> <widget foo="you" /> <widget foo="us" /> Would all be legal <widget> instantiations. And so I have the following so far in my XSD: *<xs:element name="widget" minOccurs="1" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="foo" type="xs:string" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> ** **<xs:enumeration value="me" /> ** **<xs:enumeration value="you" /> ** **<xs:enumeration value="us" /> ** **</xs:restriction> ** **</xs:simpleType> </xs:attribute> ** **<xs:sequence> <!-- No definition yet ... --> ** **</xs:sequence> </xs:complexType> </xs:element> * What I am looking for is the ability to define <widget>'s sequence based on the value of foo. If foo="me" I want it to contain, say, an <apple> element. Else if it is "you" or "us" I want it to contain an <orange> child element. So for example: <widget foo="me"> <apple>Hello!</apple> </widget> <widget foo="us"> <orange>XSD!</orange> </widget> I have been pouring through the tutorials and cannot find a way to include this conditional functionality...Received on Friday, 5 December 2008 17:31:50 GMT
This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 16 March 2009 11:13:43 GMT