2013-07-25 84 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。