XSD: Element kann Integer enthalten oder leer sein

Hallo.

Ich muss mit XML-Daten arbeiten, die ein Element namens enthalten. Dieses Element ist entweder leer () oder enthält einen Integer-Wert (10).

Wie bekomme ich für dieses Element eine passende XML Schema-Definition (XSD) hin? Ich habe folgendes ausprobiert:
Dies schlägt jedoch fehl, wenn das quantity-Element leer ist, da ein Leerstring kein Interger-Wert sein kann.

Hat jemand einen Hinweis, wie ich die XSD definieren muss? Oder bleibt mir hier nur die „Notlösung“ mit xs:string zu arbeiten?

Gruß,
0nyx

Hallo,

Ich muss mit XML-Daten arbeiten, die ein Element namens
enthalten. Dieses Element ist entweder leer
() oder enthält einen Integer-Wert
(10).

Du kannst das Element als nillable deklarieren (http://www.edition-w3c.de/TR/2001/REC-xmlschema-0-20…)

oder ganz optional machen

Im ersten Fall ist entweder ein Int-Wert oder

erlaubt, im zweiten Fall wird das Element stattdessenweggelassen.

Gruß
Heavy

Alternative: Pattern
Hallo,

nachdem ich deine Frage nochmal durchgelesen habe erscheint mir dein Problem etwas anders: du hast vorgegebene XML Dateien und musst ein Schema definieren, das dazu passt?

In dem Fall hilft dir meine Antwort natürlich nicht weiter, da das leere quantitiy Element in beiden Fällen nicht valide ist. In dem Fall würde ich dann auf String umsteigen, jedoch ein Pattern definieren, das nur Zahlen zulässt:

Gruß
Heavy

Hallo Heavy,

danke für die Antwort. Du hast das Problem genau richtig erkannt.

Ich bin mittlerweile bereits auf xs:string ausgewichen. Das mit der Restriktion auf Zahlen ist eine gute Idee und ich werde es in meiner XSD noch ergänzen.

Gruß,
0nyx