XML Schema: Child element type based attribute value?

744 views Asked by At

I am trying to make a schema where the type of an element is determined by the value of a parent's attribute. In particular, want I want to do is this

<argument name="foo" type="float">5.6</argument>

where the value of the argument should be enforced to conform with a floating point value. So that the type of the value element is of the type defined by the attribute of the argument element.

Now, I found an older post on the topic where it was stated that this cannot be done in XML-Schema 1.0.

So my question is; Is there a recommended alternate way to do it? The closest I can think of is allowing something like

<argument name="foo">
    <float>5.6</float>
</argument>

Letting argument contain an element of the type type and then let float be derived from type.

1

There are 1 answers

0
Michael Kay On

Depends what you mean by "an alternate way". You can change your document design (e.g. to use xsi:type), you can use a different validation methodology (e.g. RelaxNG or Schematron), or you can move to XSD 1.1.