Homepage-Webhilfe Event-Banner

Einschränkungen

Mit Hilfe des restriction-Elements können Sie in XSD Einschränkungen definieren. Einschränkungen beziehen sich dabei immer auf einen bereits bestehenden Datentyp (dies kann ein selbst definierter Datentyp oder aber auch einer der vordefinierten Basisdatentypen sein). Dieser wird über das Attribut base festgelegt. Dem restriction-Element können dann verschiedene Elemente untergeordnet werden (dazu gleich mehr), um die eigentlichen Einschränkungen festzulegen. In diesem Thema lernen Sie lediglich die Einschränkung von einfachen Typen kennen. Im Thema Ableitung gehen wir dann noch auf die Einschränkung von komplexen Datentypen ein.


Die Elemente minLength, maxLength und length werden dazu verwendet, die Länge von Zeichenketten oder Listen festzulegen. Mit den Elementen minLength und maxLength können Sie eine Unter- und Obergrenze für die Zeichenkette oder Liste festlegen. Das length-Element legt die explizite Länge fest, d. h. die Zeichenkette oder Liste muss exakt so viele Zeichen bzw. Einträge haben. Die Elemente minLength, maxLength und length sind, so wie die anderen Einschränkungs-Elemente auch, einteilig, wobei der Wert (in diesem Fall die Länge) für die Einschränkung mit dem Attribut value festgelegt wird.

<xs:element name="vorname">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:minLength value="2" />
            <xs:maxLength value="50" />
        </xs:restriction>
    </xs:simpleType>
</xs:element>

Für Zahlen können Sie mit den Elementen minInclusive (Wert muss größer oder gleich dem definierten Wert sein), minExclusive (Wert muss größer als der definierte Wert sein), maxInclusive (Wert muss kleiner oder gleich dem definierten Wert sein) und maxExclusive (Wert muss kleiner als der definierte Wert sein) einen zulässigen Wertebereich festlegen. Natürlich ist es auch möglich, nur eine Unter- oder Obergrenze festzulegen.

<xs:element name="alter">
    <xs:simpleType>
        <xs:restriction base="xs:integer">
            <xs:minInclusive value="18" />
            <xs:maxInclusive value="65" />
        </xs:restriction>
    </xs:simpleType>
</xs:element>

Das Element fractionDigits kann dazu verwendet werden, die maximale Anzahl der Nachkommastellen festzulegen (nur für das Element decimal). Mit dem Element totalDigits ist es hingegen möglich, die maximale Anzahl an Dezimalstellen (sowohl vor als auch nach dem Punkt) zu definieren.

<xs:element name="temperatur">
    <xs:simpleType>
        <xs:restriction base="xs:decimal">
            <xs:fractionDigits value="2" />
        </xs:restriction>
    </xs:simpleType>
</xs:element>

Eine weitere beliebte Form für die Nutzung von Einschränkungen ist die Definition einer Auswahl an erlaubten Werten. Hierfür dient das Element enumeration. Von diesem ordnen Sie dem restriction-Element beliebig viele unter. Alle Elemente (bzw. deren Werte) zusammen, stellen die Liste der Auswahlwerte dar. Den Wert des Auswahlwerts legen Sie, wie bereits bekannt, mit dem value-Attribut fest.

<xs:element name="farbe">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:enumeration value="rot" />
            <xs:enumeration value="blau" />
            <xs:enumeration value="grün" />
        </xs:restriction>
    </xs:simpleType>
</xs:element>

Eine weitere sehr interessante Möglichkeit zur Einschränkung eines Werts ist das Element pattern, mit welchem Sie Werte mit Hilfe eines regulären Ausdrucks einschränken. Der reguläre Ausdruck wird dabei im value-Attribut angegeben.

<xs:element name="hex">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9A-Fa-f]+" />
        </xs:restriction>
    </xs:simpleType>
</xs:element>
Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen OK