gpt4 book ai didi

xml - 如何使用条件类型分配使类型取决于属性值

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

我有一个这样的 XML 文件

<listOfA>
<a type="1">
<name></name>
<surname></surname>
</a>
<a type="2">
<name></name>
<id></id>
</a>
</listOfA>

我想制作一个 XSD,这样如果属性“type”的值为 1,则 name 和 surname 元素必须存在,而当它为 2 时,name 和 id 必须存在。我试图在 XSD schema generator 中生成 XSD ,但它使姓氏和 ID 元素 minOccurs=0。我怎样才能让它发挥作用?

最佳答案

您可以使用 XSD 1.1 的 Conditional Type Assignment 执行此操作:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
elementFormDefault="qualified"
vc:minVersion="1.1">
<xs:element name="listOfA">
<xs:complexType>
<xs:sequence>
<xs:element name="a" maxOccurs="unbounded">
<xs:alternative test="@type = 1" type="a1Type"/>
<xs:alternative test="@type = 2" type="a2Type"/>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="a1Type">
<xs:sequence>
<xs:element name="name"/>
<xs:element name="surname"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="a2Type">
<xs:sequence>
<xs:element name="name"/>
<xs:element name="id"/>
</xs:sequence>
</xs:complexType>
</xs:schema>

关于xml - 如何使用条件类型分配使类型取决于属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27878402/

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