XSD ファイルで 2 つの要素を定義したいと思います。これらの要素は何度も「無制限」に発生する可能性がありますが、それらは常に次々に発生する必要があります。例:
XML ファイル:
<company/>
<address/>
<customer/>
<customerContact/>
<customer/>
<customerContact/>
<customer/>
<customerContact/>
問題は、次の XSD 定義が
<xs:element name="company" type="companyType"/>
<xs:element name="address" type="addressType"/>
<xs:element name="customer" type="customerType" maxOccurs="unbounded"/>
<xs:element name="customerContact" type="customerContactType" maxOccurs="unbounded"/>
次のようなXMLファイルでのみ機能します
<company/>
<address/>
<customer/>
<customer/>
<customer/>
<customerContact/>
<customerContact/>
<customerContact/>
ここで、customerとcustomerContactは交互になりません。customer または customerContactという要素を定義し、その要素の繰り返しを許可するというアイデアがありました。それは私の問題を解決しますが、有効として受け入れられない他のソリューションも許可します。
きれいな解決策は、XMLを次のようにすることだと思います
<company/>
<address/>
<customerEnvelope>
<customer/>
<customerContact/>
<customerEnvelope>
<customerEnvelope>
<customer/>
<customerContact/>
</customerEnvelope>
customerEnvelopeを繰り返します。残念ながら、XML 構造は既に顧客から提供されているため、ここで変更を加えることはできません。
この種の構造を XSD で定義することは可能ですか、それとも上記の回避策を使用する必要がありますか?