1

我的 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。

4

1 回答 1

2

你很近。尝试使用多个 xs:field 子元素定义 xs:unique。组合中的每个值对应一个。

<xs:unique name="optionValuesMustBeUnique">
    <xs:Selector xpath="option" />
    <xs:field xpath="option_value1" />
    <xs:field xpath="option_value2" />
</xs:unique>
于 2013-10-29T22:36:22.483 回答