xml-schema und reguläre Ausdrücke

  • #1
M

MWFlipper

Neues Mitglied
Themenersteller
Dabei seit
02.09.2005
Beiträge
4
Reaktionspunkte
0
Hi,
weiß jemand wie ich reguläre Ausdrücke in xml-Schemas einbinden kann.
Mein Ziel ist ein Datentyp zu definieren, der 3 mal ne dreistellige Zahl zwischen 000 und 255 darstellt.
Erlaubt ist also 000000000 oder 000255123 126250124
nicht erlaubt ist 256000123 oder ne Zahl mit weniger als 9 Stellen
ich habs mit pattern value=[0-255]{3,3} versucht, aber da funzt das nicht wegen [0-255]. kann ich da nicht irgendwie ne Variable einsetzen, die ich per minInclusive=0 und maxInclusive=255 eingrenzen kann?
Quasi:
[myInt255]{3,3}
 
  • #3
Die Antwort klingt ja ganz vernünftig. So weit war ich aber schon. Das Problem ist, das bei [0-255] eine 1stellige Zahl zwischen 0 und 2 oder 5 oder 5 rauskommt, quasi [0-2]|5|5.
Deswegen wollte ich ja erst den Datentyp von 0 bis 255 erstellen und dann diesen Datentyp 3x wiederholen. Nur wie referenzier ich auf diesen Datentyp.
<xs:simpleType name=my255>
<xs:restriction base=xs:int>
<xs:minInclusive value=0/>
<xs:maxInclusive value=255/>
</xs:restriction>
</xs:simpleType>

<xs:simpleType name=MyColorRGB>
<xs:restriction base=xs:integer>
<xs:pattern value=$my255/>
</xs:restriction>
</xs:simpleType>

$my255 ist jetzt nur geraten. Darum geht es mir ja
 
  • #4
Ich hab die Referenzierung aufgegeben und das ganze so gelöst, dass die 255 schon als regulärer Ausdruck erscheint. Für alle, die das Problem auch haben, hier die Lösung zu Fuss:

<xs:simpleType name=MyColorRGB>
<xs:restriction base=xs:integer>
<xs:pattern value=(([0-1][0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}/>
</xs:restriction>
</xs:simpleType>

Wichtig ist, dass keine Leerzeichen im Ausdruck vorkommen dürfen, ansonsten müsste dieses Leerzeichen nachher auch im eingegebenen Text enthalten sein
 
  • #5
So sieht ja schon ganz gut aus, fehlt aber noch was:

([0-9]){2}|(([0-1][0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}

Das währe dann für 0 - 255
 
  • #6
Es fehlt nix, wenn man bedenkt das die Darstellung von allen Zahlen dreistellig sein soll, also 000, 001, ... 057, .... 255
Bei deiner Lsg wäre 00, 01, 57 .. möglich, was aber lt Problemstellung auszuschließen ist :p
 
Thema:

xml-schema und reguläre Ausdrücke

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.839
Beiträge
707.962
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben