Hallo,
es geht um folgenden Aufbau eines XML Dokuments, für das ich zum Zwecke der Validierung eine Schemadatei erstellen möchte.
<test></test> kann dabei beliebig oft vorkommen. Das beinhaltete <param></param> muss jeweils mit "name" "first", "second", "third" und "fourth" vorkommen, egal in welcher Reihenfolge. Die restlichen Anforderungen stehen in dem folgenden XML-Dokument:
<testxml>
<test id="0">//id ist vom Wert integer angefangen bei 0 bis unendlich
<param name="first">ab</param> //string max. 2 Zeichen
<param name="second">bla</param> //string
<param name="third">10</param>//positiveInteger von min. 1 - max. 10
<param name="fourth">test2</param>//string mit den festen Werten test1 o. test2 o. test3 o. test4.
</test>
<test id="1">
<param name="first">11</param>
<param name="third">3</param>
<param name="second">blub</param>
<param name="fourth">test4</param>
</test>
<test id="2">
<param name="fourth">test1</param>
<param name="first"></param>
<param name="second">blablub</param>
<param name="third">9</param>
</test>
</testxml>
Meine bisheriger Entwurf:
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="param">
<xs:complexType mixed="true">
<xs:attribute name="name" use="required">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="first" />
<xs:enumeration value="fourth" />
<xs:enumeration value="second" />
<xs:enumeration value="third" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="test">
<xs:complexType mixed="true">
<xs:choice>
<xs:element ref="param" />
</xs:choice>
<xs:attribute name="id" type="xs:integer" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="testxml">
<xs:complexType>
<xs:sequence>
<xs:element ref="test" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>