是否可以将元素值的出现限制在指定的次数? e.g:
<sample>
<values>
<value>SAMPLE1</value>
<value>SAMPLE1</value>
</values>
</sample>
可能的值为“SAMPLE1”,“SAMPLE2”,“SAMPLE3”。最多可以发生三次,但每个值必须是唯一的。
在示例中,“SAMPLE1”出现两次,这是不正确的。是否可以在XSD中对此进行限制?
答案 0 :(得分:0)
您可以使<value>
在特定范围内具有唯一性(例如在<values>
中)。这是一个例子:
<xs:element name="sample" type="SampleType">
<xs:unique name="valueKey">
<xs:selector xpath="*/values"/>
<xs:field xpath="value"/>
</xs:unique>
</xs:element>
使用selector
元素定义范围,并使用field
定义范围内哪个元素应该是唯一的。
有关详细信息,请参阅documentation。
答案 1 :(得分:0)
如果数字为0或1,您可以将值限制为“指定的次数”:使用Oleg所描述的xs:unique。如果你想要一个不同的数字,你需要xs:assert来自XSD 1.1。