gpt4 book ai didi

xml - 如何在 XML Schema 定义中选择一个且仅一个元素

转载 作者:行者123 更新时间:2023-12-04 06:31:27 26 4
gpt4 key购买 nike

抱歉,如果之前有人问过这个问题,但我已经搜索了该网站...

无论如何,我一直在努力研究如何在 XML Schema 中强制选择一个且仅一个元素。

例如,假设您只需要在苹果、橙子或香蕉元素之间进行选择,但不能没有苹果、橙子或香蕉元素。

现在我试过这个:

<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://tempuri.org/Fruit"
xmlns="http://tempuri.org/Fruit"
elementFormDefault="qualified">

<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="1">
<xsd:element name="banana" type="xsd:string"/>
<xsd:element name="apple" type="xsd:string"/>
<xsd:element name="orange" type="xsd:string"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType mixed="true">

</xsd:schema>

现在这很棒,但是 <choice>不是一而且只有一,但实际上是零或只有一。我将如何强制基数在 XML 架构定义文件中为一且仅一?

最佳答案

通过这种方式:

<xsd:choice minOccurs="1" maxOccurs="1">

修改后的架构:我添加了 Fruit - root 并将 xsd 更改为 xs
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">

<xs:element name="Fruit">
<xs:complexType mixed="true">
<xs:sequence>
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element name="banana" type="xs:string"/>
<xs:element name="apple" type="xs:string"/>
<xs:element name="orange" type="xs:string"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

关于xml - 如何在 XML Schema 定义中选择一个且仅一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5363002/

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