2011-01-28 118 views
0

我想制作一个模式,其中元素的类型由父级属性的值确定。特别是,我想要做的是这样的XML架构:基于子元素类型的属性值?

<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的。

+2

` 5.6`? – delnan 2011-01-28 15:58:53

回答

2

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