我的XSD中有以下约束:
<xs:unique name="optionValuesMustBeUnique">
<xs:selector xpath="option"/>
<xs:field xpath="option_values"/>
</xs:unique>
这适用于以下示例 XML(不是整个文档,而是相关位):
<Option>
<OptionType>Apparel Inseam</OptionType>
<OptionValue>30</OptionValue>
</Option>
<Option>
<OptionType>Waist Size</OptionType>
<OptionValue>30</OptionValue>
</Option>
这种方法的问题在于这些值一起有效 - 它们具有不同的类型。 但是,由于我是根据选项值进行选择的,因此将它们显示为重复项。
有没有办法在xs:unique
限制下定义"组合键"? 也就是说,通过选择两个字段并在我的 XPATH 选择器中连接它们来定义唯一性?
我仅限于XPATH 1。
你很接近。 尝试使用多个 xs:field 子元素定义 xs:unique。 复合中的每个值一个。
<xs:unique name="optionValuesMustBeUnique">
<xs:Selector xpath="option" />
<xs:field xpath="option_value1" />
<xs:field xpath="option_value2" />
</xs:unique>