Xml 将元素的值限制为在同一XPath下的元素中唯一
考虑一下这个XML-Xml 将元素的值限制为在同一XPath下的元素中唯一,xml,xsd,Xml,Xsd,考虑一下这个XML- <Root> <Foo> <UniqueValue>A100</UniqueValue> </Foo> <Foo> <UniqueValue>A101</UniqueValue> </Foo> <Foo> <UniqueValue>B102</UniqueValue> </Foo
<Root>
<Foo>
<UniqueValue>A100</UniqueValue>
</Foo>
<Foo>
<UniqueValue>A101</UniqueValue>
</Foo>
<Foo>
<UniqueValue>B102</UniqueValue>
</Foo>
<Foo>
<UniqueValue>A101</UniqueValue> <!-- This should be an error -->
</Foo>
<Foo>
<UniqueValue> A101 </UniqueValue> <!-- This should be an error but not critical for now -->
</Foo>
</Root>
A100
A101
B102
A101
A101
如何限制简单类型元素
,使其值唯一?
也不是说我不想限制为数字。尝试在“根”上设置唯一性约束。请注意,这需要是元素定义,而不是类型定义:
<xsd:element name="Root" type="RootType">
<xsd:unique name="uniqueValues">
<xsd:selector xpath="Foo"/>
<xsd:field xpath="UniqueValue"/>
</xsd:unique>
</xsd:element>
根据您使用的解析器的不同,您可能需要打开其他选项来验证该语法(例如“完整模式验证”、标识约束验证等)