Download as PDF

Restriction of simple data types

version 1 by Daniel Neumann

Requirements

Knowledge of regular expressions is beneficial for this tutorial. In addition, you should have worked through the preceding tutorials.

Einschränkung simpler Datentypen

Wir legen jetzt im Schema für das Zitat ein zusätzliches Element für eine „interne ID“ an, das einer ganz bestimmten Formatierung folgen soll.

Erweitern Sie im Schema „quotation“ die <xs:sequence> um ein neues Element:

<xs:element name="internalid" type="internalid" minOccurs="0" />

Wie Sie sehen, nutzen wir hier keinen vorhandenen Datentyp, sondern erstellen einen neuen mit dem Namen „internalid“.

Legen Sie hinter dem complexType-Element ein neues Element „simpleType“ an:

<xs:simpleType name="internalid">
<xs:restriction base="xs:string">
<xs:pattern value="^ID[0-9]{4}[a-z]{2}$" />
</xs:restriction>
</xs:simpleType>

Diese fünf Zeilen definieren einen eigenen Datentyp, der aus den Zeichen „ID“, vier Ziffern und zwei kleinen Buchstaben besteht.

Speichern Sie das Schema und geben Sie eine internalid bei einem der Zitate ein, das nicht dem regulären Ausdruck entspricht, z.B. „abcdef“. Versuchen Sie, das Zitat zu speichern.

Jede Eingabe wird mit dem regulären Ausdruck überprüft. Gegebenenfalls wird ein Fehler ausgegeben. In unserem Fall sehen wir den Fehler „Der von Ihnen eingegebene Text erfüllt leider nicht den folgenden Ausdruck: '^ID[0-9]{4}[a-z]{2}$'.

Geben Sie stattdessen die ID „ID1234az“ ein und speichern Sie das Zitat erneut.

Diesmal erscheint kein Fehler.

Einfache Datentypen lassen sich mithilfe regulärer Ausdrücke stark beschränken.