如何为 xs:唯一限制指定"composite key"?

  • 本文关键字:composite key xs 唯一 xml xsd
  • 更新时间 :
  • 英文 :


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

最新更新