Ich definiere ein Benutzerelement mit XSD. In diesem Beispiel hat ein Benutzer einen Namen, eine E-Mail-Adresse und eine oder mehrere Nationalitäten. Ich habe versucht:Mittlerer Weg zwischen XSD alle und XSD Sequenz
Das ist jedoch illegal. Anscheinend können Elemente in einem "All" nur einmal vorkommen (oder gar nicht). Ich könnte das beheben, indem ich All in Sequence ändere, aber dann müssten die Leute die Eigenschaften in der richtigen Reihenfolge eingeben, was mir eigentlich egal ist.
Gibt es eine Kombination dieser beiden? Nicht nach http://www.w3schools.com/Schema/schema_complex_indicators.asp, aber vielleicht ist es versteckt (oder meine unerfahrenen Augen sehen es nicht).
Intuitiv habe ich auch versucht:
<xs:all>
<xs:element name="name" blabla />
<xs:element name="email" blabla />
<xs:sequence>
<xs:element name="nationality" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:all>
Aber das ist leider ungültig.
Dies ist die aktuelle, real, Stück XSD:
<!-- user -->
<xs:complexType name="user">
<xs:sequence>
<xs:element name="firstname" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="appendix" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="lastname" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="address" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="zipcode" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="city" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="username" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="email" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="country" type="country" minOccurs="1" maxOccurs="1"/>
<xs:element name="nationality" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
Wie kann man XSD 1.1 verwenden, umsetzen, aktivieren, erstellen, verdecken, migrieren, instanziieren, finden oder tun? –
Könnten Sie den Unterschied zwischen XSD 1.1 und XSD 1.0 angeben, der ihn in 1.1 gültig und in 1.0 ungültig macht? –
In der 1.1-Spezifikation sehe ich keine Hinweise auf Einschränkungen, die das XML des OP illegal machen. Leider kann ich die 1.0 Spezifikation nicht finden, um vergleichen zu können. Meine Vermutung ist, dass Sie die Version auf den Bibliotheken überprüfen müssen, die Ihr XML/XSD analysieren werden, um zu wissen, ob Sie irgendwelche der Tricks unten benötigen. –