Index werte in xml schema (xsd) hinterlegen
Sascha_M
- xml
0 Thomas J.S.0 Sascha M
Hallo
weiss jemand ob es möglich ist, mit xml schema eine validierung für indexwerte zu hinterlegen, zurZeit nutzen wir nur string
<Index>1.2.3</Index>
<Index>1</Index>
<Index>1.2.3.1</Index>
Der Wert darf nicht mit einem Punkt enden und ansosnten nur Ganze Zahlen enthalten. Also etwa so:
Zahle . Zahl . Zahl. ... . Zahl
Geht dies mit xml Schema, ich habe bis jetzt keinen Weg gefunden, diese zu hinterlegen als muster.
Hallo,
weiss jemand ob es möglich ist, mit xml schema eine validierung für indexwerte zu hinterlegen, zurZeit nutzen wir nur string
<Index>1.2.3</Index>
<Index>1</Index>
<Index>1.2.3.1</Index>Der Wert darf nicht mit einem Punkt enden und ansosnten nur Ganze Zahlen enthalten. Also etwa so:
Zahle . Zahl . Zahl. ... . Zahl
Geht dies mit xml Schema, ich habe bis jetzt keinen Weg gefunden, diese zu hinterlegen als muster.
Das geht mit Schema schon, wenn du den RegExp dazu erstellst.
<xsd:simpleType name="IndexNummer">
<xsd:restriction base="xsd:string">
<xsd:pattern value="(\d.?)+"/>
</xsd:restriction>
</xsd:simpleType>
Das "(\d(.)?)+" ist mal das einfachste mit oder ohne Punkt am Ende (ermöglich z.B: 0.123, 1.2.3.4, 12.3.4. etc.)
Etwas komplizerter geht mit:
<xsd:pattern value="([1-9].?(\d.?)*)?[^.]"/>
(Werte mit + werden akzeptiert, mit - abgelehnt bei Validierung)
Grüße
Thomas
Holy crap,
das funktioniert sogar ;-) Perfekt and vielen Dank!
<xsd:simpleType name="IndexNummer">
<xsd:restriction base="xsd:string">
<xsd:pattern value="(\d.?)+"/>
</xsd:restriction>
</xsd:simpleType>
Bei dieser Vorgabe ist leider nocht der Punkt nach der letzten Zahl erlaubt. Die kompliziertere Variante funktioniert dagegen bestens. Darauf muss man erst einmal kommen.
Gruß, Sascha