Lists Home |
Date Index |
> I have a stock element. This element has several child elements eg
> Currency, number and name. My problem is that I want (if possible to
> allow a choice re the type_of_stock. I want to limit it to either
> Equity or Bond - I have found two ways of doing this - either using
> enumeration or patterns. I have no preference as to which.
You should prefer enumeration. Schema editors/processors can't inspect
a pattern to work out what the possible values are, but they *can*
inspect an enumeration to do so. If you have a choice between using a
pattern and using one of the other facets to express a constraint, you
should always the other facet.
> However if they select BOND I want to force the user to input
> further elements eg the Interest_rate.
I *think* that what you might be trying to do is make the Bond element
be present if the type_of_equity element has the value of 'BOND' and
the Equity element be present if the type_of_equity element has the
value 'EQUITY'. If so, then you can't do that in W3C XML Schema unless
you supplement it with Schematron; or you can use RELAX NG of course.
If you just want to say that the type_of_stock element can either
contain an Equity element or a Bond element, then, as Andrew said, use
<xs:choice> to give a choice between Bond or Equity elements.