XML-Know How

Reguläre Ausdrücke verwenden

Bei der Definition eigener Datentypen auf der Basis von »xs:string« können auch Reguläre Ausdrücke verwendet werden. Reguläre Ausdrücke sind ein System von Platzhaltern, mit denen man festlegen kann, welche Zeichen an welcher Stelle einer Zeichenkette erlaubt sind.

Die folgende XSD begrenzt den erlaubten Zeichenbereich des Elements »buchstabe« auf einen einzelnen Kleinbuchstaben:

<xs:element name="buchstabe">
  <xs:simpleType>
    <xs:restriction base="xs:string">
        <xs:pattern value="[a-z]" />
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Mit dem XSD-Element <xs:pattern> wird der Wertebereich in Form eines Regulären Ausdrucks definiert. Mit dem Regulären Ausdruck »[a-z]« werden dann alle Kleinbuchstaben von a bis z erlaubt, aber nur einer davon.

Mit folgendem Regulären Ausdruck werden Kleinbuchstaben und Großbuchstaben erlaubt (mit der Angabe »[a-zA-Z]«), und zwar beliebig viele (mit der Angabe »*«):

<xs:pattern value="[a-zA-Z]*" />

Mit dem nächsten Beispiel werden nur die Kleinbuchstaben von a bis d erlaubt, gefolgt von »-« und fünf Ziffern, die zwischen 1 und 8 liegen müssen (»{5}« ist hier die Mengenangabe):

<xs:pattern value="[a-d]-[1-8]{5}" />

Mit Regulären Ausdrücken lassen sich auch weit komplexere Muster erstellen. Es würde den Rahmen dieses Beitrags sprengen, auf Reguläre Ausdrücke genauer einzugehen. Es sei daher nur angemerkt, dass XSD die Regulären Ausdrücke aus der Scriptsprache Perl entlehnt hat, und dass die Verwendung von Regulären Ausdrücken auch in der XSD-Recommendation des W3C genau beschrieben ist.