XML Schema, Abhängigkeit eines Elements zu einem Untergeordnetem
Steff
- xml
Hallo,
meine xsd-Datei sieht wie folgt aus:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>
<!--Ebene 0: Frageboegen -->
<xs:element name="frageboegen">
xs:complexType
xs:sequence
<!--Ebene 1: Fragebogen, maxOccurs: beliebig oft innerhalb verwendbar -->
<xs:element name="fragebogen" maxOccurs="unbounded">
xs:complexType
xs:sequence
<!--Ebene 2: Topic -->
<xs:element name="topic" maxOccurs="unbounded">
xs:complexType
xs:sequence
<!--Ebene 3: Fragen -->
<xs:element name="frage" maxOccurs="unbounded">
xs:complexType
xs:sequence
<!--Ebene 4: Antwortenoptionen, minOccurs: bei ofenen Fragen gibt es keine Antwortoptionen, deshalb "='0'"-->
<xs:element name="antwortoption" maxOccurs="unbounded" minOccurs="0">
xs:complexType
xs:sequence
</xs:sequence>
<!--Attribute zum Element Antwortoptionen, use: notwendiges Attribut-->
......
</xs:complexType>
</xs:element>
</xs:sequence>
<!--Attribute zum Element Frage-->
......
<xs:attribute name="Typ" use="required">
<!--Einschraenkung des Typs auf die Werte 1-7-->
xs:simpleType
<xs:restriction base="xs:integer">
<xs:pattern value="[1-7]"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
.....
</xs:complexType>
</xs:element>
</xs:sequence>
<!--Attribute zum Element Topic-->
.....
</xs:complexType>
</xs:element>
</xs:sequence>
<!--Attribute zum Element Fragebogen-->
.....
</xs:complexType>
</xs:element>
</xs:sequence>
<!--Attribute zum Element Frageboegen -->
....
</xs:complexType>
</xs:element>
</xs:schema>
Es geht um folgende Stelle:
<!--Attribute zum Element Frage-->
......
<xs:attribute name="Typ" use="required">
<!--Einschraenkung des Typs auf die Werte 1-7-->
xs:simpleType
<xs:restriction base="xs:integer">
<xs:pattern value="[1-7]"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
bzw.
<!--Ebene 4: Antwortenoptionen, minOccurs: bei ofenen Fragen gibt es keine Antwortoptionen, deshalb "='0'"-->
<xs:element name="antwortoption" maxOccurs="unbounded" minOccurs="0">
Frage: Kann ich anhand der Werte (1-7) sagen: wenn Wert = 1, dann <xs:element name="antwortoption" maxOccurs="unbounded" minOccurs="1">
wenn Wert= 4, <xs:element name="antwortoption" maxOccurs="0"> ?
Hintergrund: bei offenen Fragen gibt es keine Antwortoptionen, nur Textfelder für Freitexte...
Das ganze funktioniert zwar mit <xs:element name="antwortoption" maxOccurs="unbounded" minOccurs="0">
aber ist nicht sehr clever gelöst...
LG Steff