XSD-Editor (frei modellierte Datentypen) 
Der XSD-Editor erlaubt es, die Datentypen beziehungsweise Datentyp-Erweiterungen ohne tiefe Kenntnisse in XML Schema zu definieren. Dazu bauen Sie den Datentyp über eine Tabelle auf, welche die Struktur des Datentyps wiedergibt. Wie in XML Schema können Sie so einfache oder komplexe Datentypen definieren (Klassifikation: frei modelliert), die der Editor automatisch in eine XML Schema Definition (XSD) umsetzt.
Hinweis
Bei der Definition des Datentyps ist die Auswahl der Werte, die Sie in die Tabelle eingeben können, kontextabhängig. Ungültige Eingaben sind deshalb praktisch ausgeschlossen.
Der XSD-Editor besteht aus einer Toolbar, einem tabellarischen Eingabebereich und einem Kontext-Menü. Die oberste Zeile in der Tabelle (man sagt auch das Wurzelelement) bestimmt die Art des Datentyps:
bei einem einfachen Typ gibt es keine weiteren Tabellenzeilen.
bei einem komplexen Typ bestimmen die Unterknoten des Wurzelelements die Struktur des komplexen Datentyps. Als Unterknoten sind Elemente und Attribute möglich.
Ob es sich um einen einfachen oder einen komplexen Typ handelt, erkennt der XSD-Editor automatisch daran, ob das Wurzelelement Unterknoten hat oder nicht. Die Spalte Kategorie ist daher gegen Eingabe geschützt. Insgesamt besteht der tabellarische Eingabebereich aus folgenden Spalten, für die je nach Zeilentyp unterschiedliche Werte zugelassen sind beziehungsweise gar keine Eingaben möglich sind:
Spalte |
Bedeutung |
|---|---|
Name |
Unter dem Wurzelelement eingefügte Knoten werden in dieser Spalte durch Einrückungen als Hierarchie dargestellt. Die Feldnamen innerhalb eines Datentyps müssen unterschiedlich sein. Sie können alle Feldnamen bis auf den für das Wurzelelement nachträglich ändern. |
Kategorie |
Diese Spalte zeigt an, ob das Wurzelelement Unterknoten hat oder nicht. Sie können Werte dieser Spalte nicht ändern. |
Typ |
Hier wählen Sie einen eingebauten Datentyp aus oder verweisen auf einen vorhandenen Datentyp für ein Element oder Attribut. Für Attribute ist die Angabe eines Typs obligatorisch. |
Häufigkeit |
Bestimmt für Elemente die Häufigkeit Ihres Auftretens. Die Werte von 0 bis 2147483647 sind erlaubt. Bei Attributen können Sie festlegen, ob das Attribut optional oder required ist. |
Details |
Hier ist nur eine Eingabe möglich, wenn Sie für das Element oder das Attribut einen eingebauten Typ spezifiziert haben. Je nachdem ob der Typ numerisch oder alphanumerisch ist, stehen Ihnen im Auswahldialog für die Spalte unterschiedliche Facetten zur Verfügung, um den Wertebereich des Typs genauer zu spezifizieren (zum Beispiel die Länge von Zeichenketten). |
Vorschlagswert |
Angabe eines beliebigen Vorschlagwertes. Die XI-Laufzeit kann auf Anforderung Vorschlagswerte berücksichtigen; weitere Informationen: Erweitertes XML-Handling aktivieren (ABAP-Proxy-Laufzeit) beziehungsweise Default- und initiale Werte in Java (Java-Proxy-Laufzeit). Für Mapping-Programme haben Vorschlagswerte keine Bedeutung (sie werden insbesondere in Message-Mappings ignoriert). |
Beschreibung |
Informelle Beschreibung eines Knotens. |
UI-Textobjekt |
Weist dem Feld ein UI-Textobjekt vom Typ Feldbezeichner zu, um die dort hinterlegten Texte später auf dem UI als Bezeichner anzeigen zu lassen. |
Bei eingabebereiten Zellen können Sie für die Spalten Typ, Häufigkeit und Details einen Eingabedialog aufrufen. Einen Feldnamen unter dem Wurzelelement können Sie mit Hilfe eines Einfachklicks auswählen und ändern. Der Name des Wurzelelements selbst kann nicht verändert werden.
Hinweis
Die Registerkarte XSD-Definition zeigt die nach der Definition im Editor aktuelle Umsetzung in XSD an. Solange die Definition im XSD-Editor nicht gültig ist, ist auch diese Umsetzung noch nicht gültig. Sie können sich das zugehörige XML Schema auch als Datei exportieren (siehe auch: XSD- und WSDL-Dokumente exportieren).
Hinweis
Die Inhalte in der Zwischenablage lassen sich nur innerhalb eines Datentyps wieder einfügen.
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.
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, maxLength, minLength | 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, maxInclusive | 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, minInclusive | 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: 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:
Regular Expression | Passende Zeichenfolgen(durch Komma und Leerzeichen getrennt) |
|---|---|
[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 Stern (*) erlaubt also kein oder beliebiges Auftreten eines Zeichens, beim Pluszeichen (+) 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: A number
\c: Ein Zeichen im Sinne der in XML Schema erlaubten Zeichen für Namen
Komplexe Typen mit simpleContent beschreiben einen Datentyp, dessen Wurzelelement einen textuellen XSD-Typ hat (beispielsweise xsd:string), der aber ansonsten nur Attribute und keine Unterelemente hat. Wenn in solchen Fällen das Wurzelelement über Facetten in der Spalte Details eingeschränkt werden soll, schreibt der XML-Schema-Standard vor, dass das Wurzelelement auf einen weiteren einfachen Typen als Zwischentyp verweisen muss. Ansonsten wäre der komplexe Typ mit simpleContent sowohl eine Erweiterung (durch die Attribute) als auch eine Einschränkung (wegen der Facetten). Um die Definition von komplexen Typen mit simpleContent zu vereinfachen, lässt der Datentyp-Editor Facetten für das Wurzelelement von solchen Typen zu und erzeugt automatisch einen passenden Zwischentyp. Dieser Zwischentyp muss nicht als eigener Datentyp im ES Repository angelegt werden und ist dort auch nicht als eigener Datentyp sichtbar.