gpt4 book ai didi

使用 XSD : how to avoid caring about the sequence of the elements? 进行 XML 验证

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

我有以下 XSD 代码:

<xsd:complexType name="questions">
<xsd:sequence>
<xsd:element name="location" type="location"/>
<xsd:element name="multipleChoiceInput" type="multipleChoiceInput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="textInput" type="textInput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="pictureInput" type="pictureInput" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>

这里的问题是:元素 location、multipleChoiceInput 等必须按照声明的相同顺序出现。我不希望发生这种情况,我希望在验证过程中顺序不相关。我怎样才能做到这一点?

我尝试过的另一种可能性是:

<xsd:complexType name="questions">

<xsd:choice maxOccurs="unbounded">
<xsd:element name="location" type="location"/>
<xsd:element name="multipleChoiceInput" type="multipleChoiceInput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="textInput" type="textInput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="pictureInput" type="pictureInput" minOccurs="0" maxOccurs="1"/>
</xsd:choice>

</xsd:complexType>

在这个例子中,序列真的不再重要了,我可以有我想要的元素(“全部”不允许我做的)。但我仍然有 min- 和 maxOccurs 的问题。在这个例子中,我可以有尽可能多的“pictureInput”,这又是我想要 0 或 1 的约束。

非常感谢您的帮助!

最佳答案

<xsd:complexType name="questions">
<xsd:all>
<xsd:element name="location" type="location"/>
<xsd:element name="multipleChoiceInput" type="multipleChoiceInput"/>
<xsd:element name="textInput" type="textInput"/>
<xsd:element name="pictureInput" type="pictureInput"/>
</xsd:all>
</xsd:complexType>

注意:我已经将“sequence”改为“all”

序列强制顺序(定义)。如果顺序无关紧要,则全部使用。

如果元素出现不止一次,那么可以使用 xsd:any。

<xsd:complexType name="questions">
<xsd:sequence>
<xsd:any minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>

您可以在以下链接中找到 xsd:any 的详细信息:

https://www.w3schools.com/xml/schema_complex_any.asp

关于使用 XSD : how to avoid caring about the sequence of the elements? 进行 XML 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3325247/

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