gpt4 book ai didi

XML XSD 架构 - 在架构中实现唯一属性值

转载 作者:数据小太阳 更新时间:2023-10-29 01:37:18 28 4
gpt4 key购买 nike

假设我有一个定义以下 XML 的架构:

<Values>
<Add Key="Key1">Value 1</Add>
<Add Key="Key2">Value 2</Add>
<Add Key="Key3">Value 3</Add>
<Add Key="Key4">Value 4</Add>
</Values>

我希望在架构级别能够强制 Key 属性的值是唯一的,即上面的示例有效,但以下示例无效:

<Values>
<Add Key="Key1">Value 1</Add>
<Add Key="Key2">Value 2</Add>
<Add Key="Key2">Value 3</Add>
<Add Key="Key3">Value 4</Add>
</Values>

请注意,有两个 Add 元素的 KeyKey2

此处供引用的是简单架构:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="Values">
<xs:complexType>
<xs:sequence>
<xs:element name="Add" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Key" type="xs:token" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

我的印象是这在架构级别是不可能的,但我洗耳恭听。

最佳答案

@BatteryBackupUnit 有正确的想法,但语法更像是:

<xs:element name="Values">
<xs:complexType>
<xs:sequence>
<xs:element ref="Add" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:unique name="UniqueAddKey">
<xs:selector xpath="Add" />
<xs:field xpath="@Key" />
</xs:unique>
</xs:element>

关于XML XSD 架构 - 在架构中实现唯一属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5541305/

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