2011-01-28 137 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。