Florian: XML Schema mit choice und sequence - Reihefolge??

Hallo!

Ich habe folgende xsd:

....
xsd:choice
   xsd:sequence
   <xsd:element ref="flr:a" minOccurs="0" maxOccurs="unbounded"/>
   <xsd:element ref="flr:b" minOccurs="0" maxOccurs="unbounded"/>
   <xsd:element ref="flr:c" minOccurs="0" maxOccurs="unbounded"/>
   </xsd:sequence>
</xsd:choice>
....

Frage: Ist eine XML-Datei mit folgender Elementreihenfolge dazu gültig:

a
a
a
a
b
b
b
c

Laut XMLSpy ist sie das, aber eigentlich erlaubt choice ja nur eine Auswahl aus dem nächsten element (oben die sequence), eine Liste müsste dann ja so aussehen, oder:

xsd:sequence
   xsd:choice
   <xsd:element ref="flr:a" minOccurs="0" maxOccurs="unbounded"/>
   <xsd:element ref="flr:b" minOccurs="0" maxOccurs="unbounded"/>
   <xsd:element ref="flr:c" minOccurs="0" maxOccurs="unbounded"/>
   </xsd:choice>
</xsd:sequence>

Danke!
Florian

  1. hallo Florian,

    Ich habe folgende xsd:
    Frage: Ist eine XML-Datei mit folgender Elementreihenfolge dazu gültig:
    Laut XMLSpy ist sie das, aber eigentlich erlaubt choice ja nur eine Auswahl aus dem nächsten element (oben die sequence), eine Liste müsste dann ja so aussehen

    ehmm... und was wolltest du wissen? deine frage hast du ja selbst schon beantwortet.

    choice kann folgendes enthalten:
    <choice
     id = ID
     maxOccurs = (nonNegativeInteger | unbounded)  : 1
     minOccurs = nonNegativeInteger : 1
     {any attributes with non-schema namespace . . .}>
     Content: (annotation?, (element | group | choice | sequence | any)*)
    </choice>

    für sequence gilt das selbe inhaltsmodell.
    für eine liste könntest du xsd:list nehmen.
    wie du mit choice so eine liste erstellen kannst, seht als bsp. unter: http://www.w3.org/TR/xmlschema-0/#ref17

    grüße
    thomas