2013-07-25 85 views
1

我有下面的XML。驗證基於其他屬性值的XML屬性

<?xml version="1.0" encoding="utf-8" ?> 
<Items> 
    <Item type="none" attNone1="test" attNone2="test3" /> 
    <Item type="action" attAction1="test" attAction2="test2" /> 
</Items> 

我需要建立基於某些規則的XSD:

1)屬性 「類型」 是必需的。

2)如果該屬性值應爲「none」或「操作」

3)如果屬性值是「無」我應該有兩個其他必需的屬性,「attNone1」和「attNone2」。我不應該接受「attAction1」或「attAction2」

4)如果屬性值是「動作」,我應該有兩個其他必需的屬性,「attAction1」和「attAction2」。我不應該接受「attNone1」或「attNone2」

任何想法如何做到這一點XSD?

由於提前,

問候,

回答

1

XSD 1.0不允許「同現的限制」,其中一個屬性的類型取決於另一個值。

在XSD 1.1中,您可以使用爲此目的而發明的「條件類型分配」。 Xerces和Saxon目前支持XSD 1.1。