gpt4 book ai didi

xsd - 如何在 ? 中使项目可选

转载 作者:行者123 更新时间:2023-12-04 01:47:50 27 4
gpt4 key购买 nike

我有这样的xsd。这些所有字段都可以存在或不存在,并且顺序不可预测。

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

<xs:element name="request">
<xs:complexType>
<xs:all minOccurs="0">
<xs:element ref="field1"/>
<xs:element ref="field2"/>
<xs:element ref="field3"/>
<xs:element ref="field4"/>
<xs:element ref="field5"/>
</xs:all>
</xs:complexType>
</xs:element>

</xs:schema>

field4 在 xml 中不存在,验证器说他正在等待 field4,但他不应该这样说。那么有什么问题呢?

w3cschools.com
<xs:element name="person">
<xs:complexType>
<xs:all minOccurs="0">
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>

上面的例子表明“firstname”和“lastname”元素可以以任何顺序出现,每个元素可以出现零次或一次!

最佳答案

你需要把minOccurs在单个元素上,而不是 <xs:all> ,即

<xs:all>
<xs:element ref="field1" minOccurs="0"/>
<xs:element ref="field2" minOccurs="0"/>
<xs:element ref="field3" minOccurs="0"/>
<xs:element ref="field4" minOccurs="0"/>
<xs:element ref="field5" minOccurs="0"/>
</xs:all>

推杆 minOccurs="0"<xs:all>是说可以省略整个组,而不是单个元素。

XML Schema docs .

关于xsd - 如何在 <xs :all>? 中使项目可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5677154/

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