gpt4 book ai didi

xml - XSD - 两个不同属性的唯一值

转载 作者:数据小太阳 更新时间:2023-10-29 02:26:29 24 4
gpt4 key购买 nike

有可能在模式级别强制两个具有不同名称的属性的唯一值吗?

<xs:complexType name="exampleType">
<xs:attribute name="first" type="xs:integer" use="required"/>
<xs:attribute name="second" type="xs:integer"/>
</xs:complexType>

如果 first 为 1,则 second 需要为其他值。

编辑:我正在使用 xsd 1.0。

最佳答案

正如我在评论中所说,这仅在 firstsecond 是元素(而非属性)时有效。 | xpath 运算符就像节点的联合。

<xs:element name="exampleElement" type="exampleType">
<xs:unique name="firstAndSecondDifferent">
<xs:selector xpath="first | second" />
<xs:field xpath="." />
</xs:unique>
</xs:element>

<xs:complexType name="exampleType">
<xs:sequence>
<xs:element name="first" type="xs:integer" />
<xs:element name="second" type="xs:integer" minOccurs="0" />
</xs:sequence>
</xs:complexType>

以下元素是有效的(firstsecond 有不同的值):

<exampleElement>
<first>1</first>
<second>5</second>
</exampleElement>

以下元素有效(不存在 second 元素):

<exampleElement>
<first>1</first>
</exampleElement>

以下元素无效(firstsecond 具有相同的值):

<exampleElement>
<first>1</first>
<second>1</second>
</exampleElement>

这不能用属性完成,因为 selector xpath 不允许使用属性,所以 "@first | @second" 它不是选择器的 xpath 属性。

关于xml - XSD - 两个不同属性的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25054526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com