我有一个XSD,其序列中具有选择结构:
<xsd:element name="M_850">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="S_ST" minOccurs="1" maxOccurs="1"/>
<xsd:element name="S_BEG" minOccurs="1" maxOccurs="1"/>
**<xsd:choice minOccurs="0" maxOccurs="2">
<xsd:element name="Element1"/>
<xsd:element name="Element2"/>
</xsd:choice>**
</xsd:sequence>
</xsd:complexType>
</xsd:element>
但是我的实际要求是:
<xsd:element name="M_850">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="S_ST" minOccurs="1" maxOccurs="1"/>
<xsd:element name="S_BEG" minOccurs="1" maxOccurs="1"/>
**<xsd:all>
<xsd:element name="Element1" minOccurs="0" maxOccurs="1"/>
<xsd:element name="Element2" minOccurs="0" maxOccurs="1"/>
</xsd:all>**
</xsd:sequence>
</xsd:complexType>
</xsd:element>
“ Element1”和“ Element2”可以按任何顺序出现,但只能根据其各自的基数出现。更糟的是,选择/所有结构中的基数可能有所不同。
我知道我们不能在“序列”中使用“全部”,但是有什么替代方法可以用来实现相同的验证效果。