Altova Mailing List Archives>Archive Index >xmlschema-dev Archive Home >Recent entries >Thread Prev - RE: w3-validator >Thread Next - [xmlschema-dev] Conditional Schema ProcessingTo: xmlschema-dev@--.--- Date: 12/5/2008 7:11:00 AM 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...
| ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
