Hallo whine,
Für o.a. XML-Struktur sollen folgenden Regeln gelten:
symbolRaster
ODERsymbolVector
ist verpflichtend, also mindestens eins von beiden muss angegeben werden (können aber auch beide)symbolFont
undsymbolTxt
sind optionalWie lege ich das in der XSD fest?
Probiere diesen Ansatz:
<xs:element name="symbolLeft">
<xs:complexType>
<xs:sequence>
<xs:choice>
<xs:sequence>
<xs:element name="symbolRaster"/>
<xs:element name="symbolVector" minOccurs="0"/>
</xs:sequence>
<xs:sequence>
<xs:element name="symbolVector"/>
<xs:element name="symbolRaster" minOccurs="0"/>
</xs:sequence>
</xs:choice>
<xs:element name="symbolFont" minOccurs="0"/>
<xs:element name="symbolTxt" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Wichtig ist neben minOccurs die geänderte Reihenfolge in der zweiten Auswahl-Sequenz, sonst handelt man sich eine Verletzung der "Unique Particle Attribution" ein.
Keine maxOccurs-/maxOccurs-Angabe bedeutet jeweils 1.
Grüße,
Thomas