Datentypen im Enterprise Services Repository 
Im ES Repository ist ein Datentyp ein Objekt, das die Struktur von Daten enthält, die die Message definiert. Sie verwenden diese Messages, wenn bei einer Web-Service-Kommunikation (Point-to-Point) oder einer Integration-Server-Kommunikation Daten ausgetauscht werden. Datentypen werden in der XML Schema Definition Language (XSDL) definiert.
Im ES Repository können Sie frei modellierte Datentypen, Core-Datentypen und aggregierte Datentypen anlegen.
Core-Datentypen und aggregierte Datentypen
Core-Datentypen und aggregierte Datentypen basieren auf der Core Components Technical Specification (CCTS) und bilden die Grundlage für anwendungsspezifische Datentypen, die in allen Geschäftsbereichen akzeptiert werden.
Beispiel
Eine Adresse gilt als aggregierter Datentyp, und alle Felder einer Adresse, zum Beispiel Postleitzahl, gelten als Core-Datentypen.
Frei modellierte Datentypen
Frei modellierte Datentypen basieren auf primitiven Datentypen und benötigen keine weiteren Parameter, um sich zu definieren.
Beispiel
Decimal, String, Integer und so weiter.
Datentypkategorien
XML-Schema unterscheidet folgende Datentypkategorien:
Kategorie | Bedeutung | Beispiele |
Built-In Type | Eingebaute Datentypen sind im Sprachumfang von XML Schema enthalten und verwenden den Präfix xsd. (Deren Unterscheidung in primitive und abgeleitete Datentypen ist bei der Definition von Datentypen nicht von Bedeutung.) XML Schema definiert für jeden eingebauten Datentyp auch einen Wertebereich. | xsd:string xsd:decimal xsd:integer |
Simple Type | Einfache Datentypen verfeinern eingebaute Datentypen, zum Beispiel indem die Länge eines Strings begrenzt wird oder ein spezifischer Wertebereich vorgegeben wird. Sie enthalten wie die eingebauten Datentypen keine weiteren Elemente. | <simpleType name=germanPhoneNumber base=string> <pattern value=?\d{4}?/?\d{6} /> </simpleType> |
Komplexer Typ | Datentypen, die weitere Elemente und Attribute enthalten können. Elemente und Attribute können wiederum auf eingebaute, einfache, komplexe oder globale Datentypen verweisen. Durch diese Möglichkeit können große komplexe Datentypen mit Hilfe von kleineren komplexen Datentypen aufgebaut werden. | <complexType name=person> <element name=firstname type=string /> <element name=lastname type=string /> </complexType> |
Komplexer Typ mit SimpleContent | 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. |
Hinweis
XML-Schema kennt keine Tabellen, erlaubt aber statt dessen die Definition von Elementen, die mehrfach in einem Schema auftreten können (maxOccurs=unbounded).
Elemente und Attribute
Um Datentypen in XML-Schema zu beschreiben, verwenden Sie Elemente und Attribute:
Knotentyp | Verwendung | Beispiel-Instanz |
Element | Aufbau von strukturierten Datentypen. Elemente, die einen Typ haben, können keine Unterelemente enthalten. | <myElem> <f1> Wert von f1</f1> <f2> Wert von f2</f2> </myElem> |
Attribut | Ergänzung von Elementen um Attribute. Attribute können generell keine Unterknoten haben. | <myElem myAttr = Attribut-Wert> Element-Wert</myElem> |
Hinweis
Der Unterschied zwischen Elementen und Attributen ist, dass Attribute keine Unterknoten haben können und dass dasselbe Attribut nicht mehrfach in einem Element verwendet werden kann.
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.
Beispiel
Eine Telefonnummer (Anwendung eines Patterns auf einen String)
Eine Auswahl an zulässigen Werten, zum Beispiel zur Klassifizierung der Beförderungsklasse bei einem Flug (Anwendung einer Enumeration)
Referenzierbarkeit von Datentypen
Sie können Datentypen geschachtelt aufbauen, indem Sie von einem komplexen Datentyp andere Datentypen referenzieren. Allerdings muss dabei gewährleistet sein, dass referenzierender und referenzierter Datentyp zusammen ausgeliefert werden, da sonst ein Teil der Datentypdefinition fehlen würde.
Kategorie | Lässt sich referenzieren in |
|---|---|
Built-In Type | Alle Software-Komponentenversionen |
Simple Type | der gleichen oder unterliegenden Software-Komponentenversion wie der referierende frei modellierte Datentyp. |
Komplexer Typ | der gleichen oder unterliegenden Software-Komponentenversionen wie der referierende frei modellierte Datentyp. |
Core-Datentyp | der gleichen oder unterliegenden Software-Komponentenversion wie der referierende aggregierte Datentyp. |
Aggregierter Datentyp | der gleichen oder unterliegenden Software-Komponentenversion wie der referierende aggregierte Datentyp. |
Achtung
Sie können Datentypen nicht rekursiv aufbauen, das heißt, Referenzen vom Typ als auch transitive Referenzen vom Typ sind nicht erlaubt.