XML Schema:基于子元素类型的属性值?

时间:2011-01-28 15:54:48

标签: xml xsd xsd-1.0

我正在尝试创建一个模式,其中元素的类型由父元素的值决定。特别是,我想要做的就是这个

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

其中应强制参数的值以符合浮点值。因此,value元素的类型是argument元素的属性定义的类型。

现在,我找到了一个older post on the topic,其中指出这不能在XML-Schema 1.0中完成。

所以我的问题是; 是否有建议的替代方法?我能想到的最接近的是允许像

这样的东西
<argument name="foo">
    <float>5.6</float>
</argument>

argument包含type类型的元素,然后让floattype派生。

1 个答案:

答案 0 :(得分:2)

取决于“替代方式”的含义。您可以更改文档设计(例如使用xsi:type),可以使用不同的验证方法(例如RelaxNG或Schematron),也可以转到XSD 1.1。