Show TOC

HintergrundDatentypen im Enterprise Services Repository Dieses Dokument in der Navigationsstruktur finden

 

XML Schema ist unabhängig von der gewählten Klassifikation die Grundlage zur Beschreibung von Datentypen. Die folgenden Abschnitte beschreiben einige Grundlagen hierzu.

XSD-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.

Elemente und Attribute

Um komplexe 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-WertElement-Wert </myElem>

Der Unterschied zwischen Elementen und Attributen ist der, dass Attribute keine Unterknoten haben können und dass dasselbe Attribut nicht mehrfach in einem Element verwendet werden kann.

Mehrfach auftretende Elemente

XML Schema kennt keine Tabellen, erlaubt aber statt dessen die Definition von Elementen, die mehrfach in einem Schema auftreten können (maxOccurs=unbounded). Je nach Zielsprache, generiert die Proxy-Generierung entweder einen Tabellentypen mit einer Struktur für den Zeilentyp (ABAP) oder Klassen für den Zugriff mit Hilfe einer Liste (Java).

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)

Weitere Informationen: XSD-Editor (frei modellierte Datentypen)

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, weil sonst ein Teil der Datentyp-Definition fehlen würde. Aus diesem Grund gibt es folgende Beschränkungen für die Verwendung von Datentypen (weitere Informationen: Objektverweise):

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 Achtung

Sie können Datentypen nicht rekursiv aufbauen, das heisst, Referenzen vom Typ   Datentyp_1   Datentyp_1  als auch transitive Referenzen vom Typ   Datentyp_1   Datentyp_2   Datentyp_1  sind nicht erlaubt.

Ende der Warnung.