XSD conditionele enumerations

Status
Niet open voor verdere reacties.

spincemaille

Nieuwe gebruiker
Lid geworden
5 jan 2007
Berichten
1
Hallo,

ik zit al enkele tijd met een vraag, waarop ik hier hoop een antwoord te vinden. Ik vroeg me af of het in een XSD mogelijk is om conditionele enumerations te definiëren. Een voorbeeld
Code:
<xs:element name="sCardType">
	<xs:simpleType>
		<xs:restriction base="xs:integer">
			<xs:enumeration value="1"/>
			<xs:enumeration value="2"/>
			<xs:enumeration value="3"/>
		</xs:restriction>
	</xs:simpleType>
</xs:element>
<xs:element name="sCardSubType">
	<xs:simpleType>
		<xs:restriction base="xs:integer">
			<xs:enumeration value="1"/>
			<xs:enumeration value="2"/>
			<xs:enumeration value="3"/>
			<xs:enumeration value="4"/>
			<xs:enumeration value="5"/>
			<xs:enumeration value="6"/>
		</xs:restriction>
	</xs:simpleType>
</xs:element>
Dit is de bedoeling: wanneer sCardType 1 is, dan mag sCardSubType 1 of 2 zijn. Als sCardType 2 is, dan mag sCardSubType 3 zijn, enz...

Alvast bedantk voor jullie hulp :thumb:

Greetz,
Hans
 
Het lijkt mij het eenvoudigste op te lossen door een complexType te maken

Je maakt dan bijvoorbeeld sCardType1 met onderliggende enumeration van de toegestane sCardSubTypes, daarna hetzelfde voor sCardType2 etc....
Gebruik wel voor de sCardTypes minOccurs="0" maxOccurs="1" om te validationerrors te voorkomen..

Een andere manier om dit op te lossen is door met attributes te werken via een XSL-T.

Succes.

Daan
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan