- From: Zac Harvey <zachary.harvey@gmail.com>
- Date: Fri, 5 Dec 2008 12:11:10 -0500
- To: xmlschema-dev@w3.org
- Message-ID: <72032db40812050911y661f3807n5f788194f7ec337a@mail.gmail.com>
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 UTC