Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 将元素的值限制为在同一XPath下的元素中唯一_Xml_Xsd - Fatal编程技术网

Xml 将元素的值限制为在同一XPath下的元素中唯一

Xml 将元素的值限制为在同一XPath下的元素中唯一,xml,xsd,Xml,Xsd,考虑一下这个XML- <Root> <Foo> <UniqueValue>A100</UniqueValue> </Foo> <Foo> <UniqueValue>A101</UniqueValue> </Foo> <Foo> <UniqueValue>B102</UniqueValue> </Foo

考虑一下这个XML-

<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>

根据您使用的解析器的不同,您可能需要打开其他选项来验证该语法(例如“完整模式验证”、标识约束验证等)