Facetten
Facetten erlauben es in XML Schema den Wertebereich eines Datentyps auf eine bestimmte Untermenge einzuschränken. Dadurch können Sie für einen einfachen Datentyp, ein Element oder ein Attribut genau festlegen, welche Werte in einem speziellen Fall erwartet werden, beispielsweise:
· Eine Telefonnummer (Anwendung eines pattern auf einen String)
· Eine Auswahl an zulässigen Werten, zum Beispiel zur Klassifizierung der Beförderungsklasse bei einem Flug (Anwendung einer enumeration)
Bevor sie eine Facette verwenden können, müssen Sie für Ihren einfachen Datentyp, Ihr Element beziehungsweise für das Attribut in der Spalte Typ einen eingebauten Datentypen ausgewählt haben. Ansonsten bleibt das Eingabefeld in der Spalte Details gesperrt.
Mit dem XSD-Editor können Sie in der Spalte Details für einfache Datentypen, Elemente oder Attribute den Wertebereich eines eingebauten Datentyps weiter einschränken.
Eingabemöglichkeiten in Spalte Details
Facette |
Bedeutung |
enumeration |
Einschränkung auf eine Menge von Einzelwerten. Die Werte müssen im XSD-Editor durch Leerzeichen getrennt werden. |
fractionDigits |
Gibt die Anzahl der erlaubten Nachkommastellen an. Als Werte sind alle die vom Typ xsd:nonNegativeInteger erlaubt. |
length, |
Exakte (length), maximal- (maxLength) beziehungsweise mindest- (minLength) Länge eines Datentyps. Der XSD-Editor lässt diese Facette nur für Datentypen zu, die auf xsd:string basieren. Der Wert dieser Facetten muss vom Typ xsd:nonNegativeInteger sein. |
maxExclusive, |
Obere Grenze für die Wertemenge exklusive (maxExclusive) beziehungsweise inklusive (maxInclusive) des angegebenen Werts. Der Wert dieser Facetten darf nicht außerhalb des Wertebereichs des Datentyps sein, der mit der Facette eingeschränkt wird. |
minExclusive, |
Untere Grenze für die Wertemenge exklusive (minExclusive) beziehungsweise inklusive (minInclusive) des angegebenen Werts. Der Wert dieser Facetten darf nicht außerhalb des Wertebereichs des Datentyps sein, der mit der Facette eingeschränkt wird. |
pattern |
Angabe eines Musters für string-basierte Datentypen an. Das Muster muss die Form einer sogenannten regular expression haben, die eine Menge von dazu passenden Zeichenfolgen beschreibt. |
totalDigits |
Gibt die Anzahl der Stellen einer Zahl insgesamt an. Als Werte sind alle die vom Typ xsd:positiveInteger erlaubt. |
whiteSpace |
Gibt an, wie mit whiteSpace-Zeichen (Zeilenvorschübe, Tabs, Leerzeichen und Carriage Returns) umgegangen wird. Es sind drei Werte erlaubt: · preserve: Alle whiteSpace-Zeichen bleiben erhalten. · replace: Jedes Auftreten eines Zeilenvorschubs, eines Tabs und eines Carriage Returns wird durch ein Leerzeichen ersetzt. · collapse: Zusätzlich zur Vorgehensweise bei replace werden aufeinanderfolgende Leerzeichen durch ein Leerzeichen ersetzt, sowie führende und abschließende Leerzeichen entfernt. |

Weitere Informationen finden Sie im Internet unter der Adresse http://www.w3.org/TR/xmlschema-2/#rf-facets.
Regular Expressions sind aus der Unix-Welt bekannt und sind Ausdrücke, mit denen sich jede beliebige Zeichenfolge beschreiben lässt. Im Internet sind regular expressions unter der Adresse http://www.w3.org/TR/xmlschema-2/#regexs beschrieben. Statt diese Definition komplett zu wiederholen, sollen ein paar gängige Beispiele den Gebrauch von regular expressions deutlich machen:
Beispielmuster
Regular Expression |
Passende Zeichenfolgen |
[abcdefg] |
a, b, c, d, e, f, g |
[A-Z][A-Z][A-Z] |
ABC, DEF, SAP, SPD, CDU, FDP, PDS |
[0-9][0-9][0-9] |
007, 459, 471, 999, 879 |
[a-z]([0-9])* |
a, b, c, d, e, i12784937, e3321, t4000, b345 |
[a-z]([0-9])+ |
a304, i20, e3012, t5, b90000 |
([a-z]|[0-9])+ |
a, ab, abc, abcdefg, 0, 1, 01, 012, 0123 |
Ein ‚*‘ erlaubt also kein oder beliebiges Auftreten eines Zeichens, bei ‚+‘ muss das Zeichen wenigstens ein mal in der Zeichenfolge auftreten. Die eckigen Klammern geben die Auswahl der Zeichen an.

Eine Reihe von weiteren Beispielen finden Sie auch unter der Internet-Adresse http://www.w3schools.com/schema/schema_facets.asp.
Zusätzlich gibt es aber auch noch besondere Zeichen, die mit einem Backslash eingeleitet werden, wie zum Beispiel:
· \d: Eine Ziffer
· \c: Ein Zeichen im Sinne der in XML Schema erlaubten Zeichen für Namen