我有这个Xml文件:
<objects>
<object name="ID1" />
<object name="ID2" />
<object name="ID2" color="green" />
<object name="ID3" color="green" />
<objects>
Run Code Online (Sandbox Code Playgroud)
我想验证这一点对一个XSD架构,使之间的组合name,并color在文档中是唯一的.
问题是,如果我使用:
<xs:unique name="UniqueObjectNameColor">
<xs:selector xpath="./object" />
<xs:field xpath="@name" />
<xs:field xpath="@color" />
</xs:unique>
Run Code Online (Sandbox Code Playgroud)
...规则将忽略object没有可选color属性的元素.以下验证正确,但不应该.
<object name="ID2" />
<object name="ID2" />
Run Code Online (Sandbox Code Playgroud)
你能告诉我如何指定一个强制执行唯一name和color组合的规则,当color元素中没有该属性时object,它会检查name?