Hallo,
ich würde gern wissen, ob man bei einem XML-File eine Struktur so bauen kann, dass das folgende möglich ist:
XML-File-Beispiel:
<Struktur>
<Kapitel id="4" />
<Text id="5" />
<Bild id="34" /><Kapitel id="7" />
<Bild id="37" />
<Bild id="22" />
<Text id="30" />
</Struktur>
Ja.
Wenn man im XML-Schema unter dem Knoten Struktur die Elemente Kapitel, Text und Bild alle auf die gleiche Ebene legt, dann ist die Reihenfolge der Elemente festgelegt.
Daher wird dann im XML-File erwartet, dass erst der Tag Kapitel, dann der Tag Text und dann der Tag Bild unter dem Knoten Struktur folgt.
Allerdings würde ich gern die Tags flexibel im XML-File benutzen, also, auch an einer anderen Stelle, z.B.: erst Kapitel, dann Bild und dann Text.
Geht das?
Ja, es geht, aber von Struktur kann man hier nicht sprechen. Wenn du vorhast das in XML wirklich so umzusetzen, bist du definitiv auf dem falschen Weg, der dir bei einer späteren Transformation nur Probleme bereiten wird.
Umsetzen kannst du es z.B. so (beim Code gehe ich davon aus, dass du die referenzierten Elemente, an einer anderen Stelle im Schema definierst (definierst hast)):
<xs:element name="Struktur">
xs:complexType
<xs:sequence maxOccurs="unbounded">
<xs:element ref="kapitel" />
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="text" />
<xs:element ref="bild" />
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
Grüße
Thomas