XSD Schema
-
Moin,
ich suche gerade eine Schema-Definition für eine Parameterliste. Jeder Parameter hat einen Namen, Wert und Typ. Am liebsten Wünsche ich mir so einen XML-Code:
<ParameterList> <integer name="anzahl" value="27" /> <double name="dichte" value="3.23" /> <integer name="maxiterationen" value="100" /> <integer name="miniterationen" value="10" /> <string name="beschreibung" value="foo" /> </ParameterList>
Schema für Integer, double oder integer:
<xs:element name="double"> <xs:complexType> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="value" type="xs:double" use="required"/> </xs:complexType> </xs:element> <xs:element name="integer"> <xs:complexType> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="value" type="xs:integer" use="required"/> </xs:complexType> </xs:element> <xs:element name="string"> <xs:complexType> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="value" type="xs:string" use="required"/> </xs:complexType> </xs:element>
Mein Problem:
Integer, double und string Parameter sollen in beliebiger Anzahl und Reihenfolge aufgelistet werden. Für einen xs:complexType stehen mir wohl die Indikatoren sequence, all oder choice zu Verfügung. squence legt aber die Reihenfolge für die Parameter fest, all oder choice lassen keine beliebige Anzahl zu. Wie löse ich das geschickt?
Kann man irgendwas mit maxOcurs/minOcurs machen? Mir fehlt gerade der Durchblick.
-
<xs:complexType name="doubleCType"> <xs:attribute name="name" .../> <xs:attribute name="value" .../> </xs:complexType> ... <xs:group name="typesGroup"> <xs:choice> <xs:element name="double" type="doubleCType"/> ... </xs:choice> </xs:group> <xs:element name="ParameterList"> <xs:complexType> <xs:group ref="typesGroup" maxOccurs="unbounded"/> </xs:complexType> </xs:element>
-
Vielen Dank!