Как вы определяете альтернативные структуры XML в схеме xsd?Например, следующие структуры будут необязательными:
<a>
<b/>
<c>
<d/>
</c>
</a>
и
<a>
<c>
<e/>
</c>
</a>
В первом случае должен быть элемент "b", если элемент "d" будет найден подэлемент "с".Во втором случае НЕТ элемента "b" будет разрешен, если в "c" будет "e"Поэтому я ищу решение такого рода:
<xsd:element name="a">
<xsd:complexType>
<xsd:all>
(
<xsd:element name="b" type="whatever"/>
<xsd:element name="c">
<xsd:complexType>
<xsd:all>
<xsd:element name="d" type="whatever"/>
</xsd:all>
</xsd:complexType>
</xsd:element> )
) ИЛИ (
<xsd:element name="c">
<xsd:complexType>
<xsd:all>
<xsd:element name="e" type="whatever"/>
</xsd:all>
</xsd:complexType>
</xsd:element>
)
</xsd:all>
</xsd:complexType>
</xsd:element>
Причина, по которой я не хотел бы использовать элемент выбора, заключается в том, что я делаю интерфейс редактора для документа XML, и в моем случае выбор просто выглядел бы глупо в интерфейсе редактора.