gpt4 book ai didi

XSD 里面的所有选择

转载 作者:行者123 更新时间:2023-12-04 11:41:32 25 4
gpt4 key购买 nike

您不能将选择标签放在所有标签中。那么,是否有任何解决方法来获得此功能?
例如,我有 <settings>标签如:

<settings>
<logging />
<sending />
<useonly />
</settings>

或者类似的东西
<settings>
<logging />
<notuseonly />
<sending />
</settings>

所以我想阻止 <useonly><notuseonly>一起出现,而顺序并不重要。如果允许,在 XSD 中它看起来像:
  <xs:all>
<xs:element minOccurs="0" maxOccurs="1" ref="sending" />
<xs:element minOccurs="0" maxOccurs="1" ref="logging" />
<xs:choice>
<xs:element minOccurs="0" maxOccurs="1" ref ="useonly" />
<xs:element minOccurs="0" maxOccurs="1" ref ="notuseonly" />
</xs:choice>
</xs:all>

有什么想法吗?

最佳答案

检查此链接:http://www.w3.org/wiki/Needs_choice_inside_all

我为您总结了提出的解决方案:

一种解决方案是将可以更改的元素包装在另一个元素中:

  <xsd:all>
<xsd:element minOccurs="0" maxOccurs="1" ref="sending" />
<xsd:element minOccurs="0" maxOccurs="1" ref="logging"/>
<xsd:element minOccurs="0" maxOccurs="1" ref ="usetype"/>
</xsd:all>

<xsd:element name="usetype">
<xsd:complexType>
<xsd:choice>
<xsd:element ref="useonly"/>
<xsd:element ref="notuseonly"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>

另一种是使用替换组:
  <xsd:all>
<xsd:element ref="sending"/>
<xsd:element ref="logging"/>
<xsd:element ref="usetype"/>
</xsd:all>
</xsd:complexType>
<xsd:element name="usetype" abstract="true"/>
<xsd:element name="useonly" substitutionGroup="usetype"> ... </xsd:element>
<xsd:element name="notuseonly" substitutionGroup="usetype"> ... </xsd:element>

关于XSD 里面的所有选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11508147/

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