我目前正在编写一个围绕相当古老且复杂的 xml 标准的 SDK。有一个 xml 模式,但我对这个构造感到困惑:
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:choice>
<xs:element ref="A" minOccurs="0" />
<xs:element ref="B" />
</xs:choice>
<xs:element ref="C" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="D" minOccurs="0" maxOccurs="unbounded" />
</xs:choice>
</xs:complexType>
我不知道该如何理解这一点……尤其是内部选择。所以选择意味着从列出的元素中只取一个元素,对吗?但是 B 没有最小值或最大值,所以它默认为 1。所以 B 中正好需要 1 个元素。那么如何选择 A?