Ich habe folgende XSD-Code:XML-Validierung mit XSD: Wie vermeidet man, sich um die Reihenfolge der Elemente zu kümmern?
<xsd:complexType name="questions">
<xsd:sequence>
<xsd:element name="location" type="location"/>
<xsd:element name="multipleChoiceInput" type="multipleChoiceInput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="textInput" type="textInput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="pictureInput" type="pictureInput" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
Das Problem dabei ist: die Elemente Lage, multipleChoiceInput usw. müssen in der gleichen Reihenfolge erscheinen sie deklariert sind. Ich möchte nicht, dass dies geschieht. Ich möchte, dass die Reihenfolge im Validierungsprozess nicht relevant ist. Wie kann ich das erreichen?
Eine weitere Möglichkeit, die ich habe versucht hat:
<xsd:complexType name="questions">
<xsd:choice maxOccurs="unbounded">
<xsd:element name="location" type="location"/>
<xsd:element name="multipleChoiceInput" type="multipleChoiceInput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="textInput" type="textInput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="pictureInput" type="pictureInput" minOccurs="0" maxOccurs="1"/>
</xsd:choice>
</xsd:complexType>
In diesem Beispiel ist die Sequenz wirklich keine Rolle mehr, und ich kann so viele Elemente hat, wie ich (was „all“ nicht erlauben würde, will ich zu tun). Aber ich habe immer noch das Problem mit dem min- und maxOccurs. In diesem Beispiel könnte ich so viele "Bildeingaben" wie möglich haben, was wiederum die Einschränkung ist, dass ich entweder 0 oder 1 haben möchte.
Vielen Dank für Ihre Hilfe!
Dank für die Beantwortung yok, aber „alle“ nicht in meinem Fall, Ursache verwendet werden "all" erfordert, dass das Element nur EINMAL erscheint (min- und maxOccurs können nur die Werte 0 und 1 annehmen). – jcborges
Dann ist vielleicht '' dein Freund. –
Tomalak
In diesem Fall müssen alle verwendet werden. Wird auch die Antwort aktualisieren. – YoK