我有一个简单的XML结构:
<foo>
<bar row="42" column="2"></bar>
<bar row="42" column="3"></bar>
</foo>
我希望row
的{{1}}和column
在一起是唯一的。所以上面的例子验证了,而以下没有:
bar
我一直在尝试为以下架构添加密钥,但我还没有找到解决方案。
<foo>
<bar row="42" column="2"></bar>
<bar row="42" column="3"></bar>
<bar row="42" column="3"></bar>
</foo>
答案 0 :(得分:10)
我希望以下内容能够做到。
<xsd:element name="foo">
...
<xsd:unique name="rowcol">
<xsd:selector xpath="bar"/>
<xsd:field xpath="@row"/>
<xsd:field xpath="@column"/>
</xsd:unique>
</xsd:element>
唯一性约束在唯一性范围的元素声明中,我推测是foo
。如果你的结构实际上更像是:
<root>
<foo> ... </foo>
<foo> ... </foo>
</root>
并且您希望唯一性是全局的,那么约束应该继续root
。