Konfiguration und Eigenschaften XML-Modul
XML-Schema
Ein neues XML Schema kann in das XML Modul eingebunden werden, indem die .xsd-Dateien für das Schema in das XSD-Verzeichnis des Moduls kopiert werden.
Das Verzeichnis befindet sich unter:
/I-EFFECT/VXRXM0/MAPPER/XML/XSD
Nachdem alle benötigten XSD-Dateien für das XML Schema in das XSD-Verzeichnis kopiert wurden kann das neue Schema durch Aktualisieren der *MAPGUI angezeigt werden. Somit ist das neue XML Schema bereit für die Erstellung von Mapping-Definitionen.
XML Schemas sollten nicht verschoben oder gelöscht werden, da dies bestehende Mapping-Definitionen funktionsunfähig machen kann.
XML-Zielmodul Einstellungen
Öffnen Sie die XML-Konfiguration um die Einstellungen zu bearbeiten.
Innerhalb des XML-Kopfbereichs können Sie für das XML-Modul als Ziel folgende Einstellungen definieren:
Wert | Beschreibung |
---|---|
Validate Output File | Bestimmt ob das Ausgangsdokument gegen das in der Mapping-Definition verwendete XML Schema validiert werden soll. |
Use Pretty Printer | Bestimmt ob das Ausgangsdokument formatiert und mit Zeilenumbrüche versehen werden soll. |
XML-Encoding | Legt die XML-Kodierung für das Ausgangsdokument fest. Es besteht aus einer festen Korrelation zwischen der XML-Kodierung und der CCSID der Ausgangsdatei aufgrund dessen die nicht anwendbaren CCSIDs automatisch ausgeblendet werden. |
CCSID | Legt die CCSID für die Ausgangsdatei fest. |
XML Modul Einstellungen
Validate Input File | Bestimmt ob das Eingangsdokument gegen das, in der Mapping-Definition verwendete XML Schema validiert werden soll. |
Validate Output File | Bestimmt ob das Ausgangsdokument gegen das in der Mapping-Definition verwendete XML Schema validiert werden soll. |
Use Pretty Printer | Bestimmt ob das Ausgangsdokument formatiert und mit Zeilenumbrüche versehen werden soll. |
XML Encoding | Legt die XML-Kodierung für das Ausgangsdokument fest. Es besteht aus einer festen Korrelation zwischen der XML-Kodierung und der CCSID der Ausgangsdatei aufgrund dessen die nicht anwendbaren CCSIDs automatisch ausgeblendet werden. |
CCSID | Legt die CCSID für die Ausgangsdatei fest. |
Mapping-Gruppen festlegen
Die Struktur der XML Schema Definition kann beliebig tief und verschachtelt sein. Dies kann schnell bei der Erzeugung von Mapping-Definitionen zur Unübersichtlichkeit führen. Aus diesem Grund ist es in der XML Modulansicht möglich, benutzerdefinierte Mapping-Gruppen festzulegen. Eine benutzerdefinierte Mapping-Gruppe zeichnet sich dadurch aus, dass sie als Gruppe für alle in ihr geschachtelten Elemente gilt. So kann beispielsweise das Wurzelelement eines XML Schemas als Mapping-Gruppe gesetzt werden und so werden alle gemappten Elemente aus diesem Schema in dieser Mapping-Gruppe angezeigt. Will man dann für ein Teil Struktur X eine neue Mapping-Gruppe definieren, so definiert man das Kind Element, das Wurzel Element des Teil Struktur X ist als Mapping-Gruppe.
Element als Mapping-Gruppe setzen
Jedes Element, das einen komplexen Typ hat, kann als Mapping-Gruppe gesetzt werden, indem das Element mit der rechten Maustaste angeklickt wird und die Aktion Set as group ausgewählt wird. Wenn ein Element als Gruppe gesetzt wird, wird sein Icon entsprechend geändert, s. Kapitel Icons. Wurde ein Element als Gruppe gesetzt, kann es über anklicken mit der Rechte Maustaste und Auswählen der Funktion Remove Group zurückgesetzt werden. Dies würde die bestehenden Mapping-Gruppen nicht ändern und wird nur Auswirkung auf neu gemappte Elemente haben.
Icons
Verzeichnisse, Schemas
![]() | Schema Verzeichnis |
![]() | XML Schema Definition (XSD Datei) |
![]() | Invalid XML Schema |
Elemente mit komplexen Typ
![]() | Element mit komplexen Typ (nicht erforderlich). |
![]() | Element mit komplexen Typ (erforderlich). |
![]() | Choice-Element mit komplexen Typ. Das Element steht mit den anderen Elemente mit demselben Icon zu Auswahl. Es darf nur ein Element ausgewählt/gemmappt werden. |
![]() | Element Ende. |
Elemente einfachen Typs
![]() | Element mit einfachen Typ (nicht erforderlich). |
![]() | Element mit einfachen Typ (erforderlich). |
![]() | Choice-Element mit einfachen Typ. Das Element steht mit den anderen Elemente mit demselben Icon zu Auswahl. Es darf nur ein Element ausgewählt/gemappt werden. |
Attribute einfachen Typs
![]() | Attribute. Attribute dürfen maximal einmal vorkommen. |
Gruppierungselemente
![]() | Element mit komplexen Typ, der als Mapping-Gruppe gesetzt wurde (nicht erforderlich). |
![]() | Element mit komplexen Typ, der als Mapping-Gruppe gesetzt wurde (erforderlich). |
![]() | Choice-Element, das als Mapping-Gruppe gesetzt wurde. |
Ersetzungsgruppen
![]() | Ersetzungsgruppe für ein Element mit Komplexen Typ (nicht erforderlich). |
![]() | Ersetzungsgruppe für ein Element mit Komplexen Typ (erforderlich). |
![]() | Ersetzungsgruppe für ein Choice-Element mit Komplexen Typ. |
![]() | Ersetzungsgruppe für ein Element mit einfachen Typ (nicht erforderlich). |
![]() | Ersetzungsgruppe für ein Element mit einfachen Typ (erforderlichen). |
![]() | Ersetzungsgruppe für ein Choice-Element mit einfachen Typ |
Abstrakte Typen
![]() | Abstrakten Element mit komplexen Typ (nicht erforderlich). |
![]() | Abstrakten Element mit komplexen Typ (erforderlich). |
![]() | Abstrakten Element mit komplexen Typ (Auswahl). |
![]() | Abstrakten Element mit einfachen Typ (nicht erforderlich). |
![]() | Abstrakten Element mit einfachen Typ (erforderlich). |
![]() | Abstrakten Element mit einfachen Typ (Auswahl). |
XML Partner Stammdaten
Über Die XML Partner Stammdaten können eingehende XML Dateien automatisch auf bestimmte Kriterien überprüft werden und darauffolgend passend verarbeitet werden. Dies geschieht über die Angabe von erwarteten Werte und XPaths1, die zu Werten in einer XML Datei zeigen.
Die Partner Stammdaten für das XML Modul werden in der Datei PRTXML über folgende Felder verwaltet:
PID | Partner ID |
MAPID | Die Mapping-Definition des auszuführenden Mappings für den Fall, dass die Datei alle notwendigen Kriterien erfüllt. |
NAMESPACE | Namespace ist kein Pflichtfeld, kann aber zur Verbesserung der Performance genutzt werden. Der Wert dieses Feldes muss mit dem Namensraum des Wurzelelements des XML Dokumentes übereinstimmen, um die XML Datei nach den weiteren Kriterien überprüfen zu lassen (Leer steht für alle möglichen Namespaces). |
XPATH_REC | Das Feld enthält einen Xpath zum Auffinden des Empfängers. Der Wert, der bei der Auswertung des Xpath gefunden wird, muss mit dem Wert in dem Feld RECIPIENT übereinstimmen. |
RECIPIENT | Enthält den erwarteten Wert für den Empfänger. |
XPATH_SND | Das Feld enthält einen Xpath zum Auffinden des Absenders. Der Wert, der bei der Auswertung des Xpath gefunden wird, muss mit dem Wert in dem Feld SENDER übereinstimmen. |
SENDER | Enthält den erwarteten Wert für den Absender. |
Damit eine Datei zu einer Mapping-Definition zugeordnet werden kann, müssen die gefundene Werte für den Empfänger und den Sender mit den erwartetenn übereinstimmen und falls ein Namensraum definiert wurde, muss er auch mit dem Namensraum des Wurzelelements des Dokuments übereinstimmen.
Die folgende Abbildung verdeutlicht die Beziehung zwischen XML Datei und Partnerstammeintrag:
Abstrakte Typen, Ersetzungsgruppen und Abgeleiteter Typen in Instanzdokumenten
Abstrakte Typen, Ersetzungsgruppen und abgeleitete Typen sind mächtige Mechanismen, die es erlauben bestehende XML Schema leicht zu erweitern und wiederzuverwenden. Sie werden ausführlich in Abschnitt 4 der XML Schema Referenz1 behandelt, die als Grundlage für das Verstehen dieses Kapitels dient.
Die Abbildung zeigt die Modulsicht einer leicht modifizierten Variante des Internationalen Buchbestellung Beispiels aus der XML Schema Referenz. Zu beachten an der Abbildung ist, dass jeweils 3 Lieferadressen und 3 Rechnungsadressen vorhanden sind. Dies ist dadurch entstanden, dass in der XML Schema Definition - zwei neu Typen von dem Typ Adresse abgeleitet wurden, nämlich eine Deutsche Adresse - DeAdresse und eine Adresse in der Vereinigten Staaten - USAAdresse. Diese beide Abgeleitete Typen können überall da verwendet werden wo ein Element vom Typ Adresse definiert wird. Aus diesem Grund wurden hier die zwei zusätzliche Elementen Lieferadresse und die zwei zusätzliche Elementen Rechnungsadresse eingefügt. Die Elemente, die durch Typableitung entstanden sind, werden in der Modul Sicht speziell gekennzeichnet. Ihre Bezeichnung wird aus dem Namen des Element und dem Namen des abgeleiteten Typs in der Form ELEMENT_NAME{ABGELEITETER_TYP_NAME} zusammengesetzt.
Des weiteren sind die Elemente Lieferadresse und Rechnungsadresse, grün markiert. Dies stellt dar, dass beide Elemente als Abstrakt definiert wurden oder von einem abstrakten Typ sind. In diesem Fall sind beide von dem Basis Typ Adresse, das als abstrakt definiert wurde.
Eine Möglichkeit zur Ersetzung von Elementen durch andere Elemente wird im XML Schema durch den Mechanismus der Ersetzungsgruppen ermöglicht. In der Modul Sicht werden ähnlich wie bei den abgeleiteten Typen alle möglichen Ersetzungs-Elemente dort angezeigt wo das Ursprungs-Element der Ersetzungsgruppe auftritt. In dem Beispiel ist das Element Kommentar das Ursprungs-Element für die Ersetzungsgruppe, die die Elemente LieferKommentar und KundenKommentar enthält. Das Ursprungs-Element kann dann entsprechend durch eines der beiden Elemente ersetzt werden.
Mappen von abstrakten Elementen, Elementen mit abgeleiteten Typen und Ersetzungsgruppen
Abstrakte Elemente:
Das Mappen von abstrakten Elementen oder Kind-Elementen von abstrakten Elementen ist in der *MAPGUI unzulässig, da weder Instanzen davon erzeugt werden dürfen noch dürfen solche in einem validen Ausgangsdokument existieren.
Ersetzungsgruppen:
Das Mappen von Ersetzungsgruppen funktioniert ähnlich wie das Mappen von ganz normalen Elementen, allerdings sind folgende Unterschiede zu beachten:
Wird das XML-Modul als Quell-Modul verwendet, wird jedes Element, das ein Ersetzungselement ist als separates Element bezüglich des Vorkommens betrachtet. An dem Intenationalen Buchbestellung Beispiel orientiert heißt das, dass wenn in einer Liste das dritte LieferKommentar Element vorkommt, so wird es als drittes gezählt, auch wenn es vorher noch 2 KundenKommentar Elemente gab. Hierbei zählt nicht das Ursprungs-Element des Elementes sondern nur die konkrete Ausprägung.
Anders sieht es aus wenn das XML Modul als Ziel-Modul verwendet wird. Hier wird jedes eingefügte Element, das ein Ersetzungselement ist, als das Ursprungs-Element gezählt. Das heißt, hat man eine Liste, die zwei Kommentar Elemente enthalten kann, und ein LieferKommentar - Element und ein KundenKommentar - Element eingefügt, so ist die Liste voll und jedes weitere Kommentar Element wird in eine andere Liste eingefügt. Beim Einfügen an einer spezifischen Stelle, wird für das Zählen des Vorkommens wiederum das Ursprungs-Element verwendet. Das heißt will man in eine Liste mit drei Kommentar Elemente, an der zweite Stelle ein LieferKommentar Element einfügen, so ist es egal was für ein Kommentar Element das erste ist, es wird einfach die zweite Kommentar - Position genommen.
![](../../../__attachments/1943142805/xml_4.jpg?inst-v=9d4b5c12-0a18-42db-9ce9-32941b03b0b3)
Abgeleitete Typen:
Das Mappen von abgeleiteten Typen entspricht den Regeln, die beim Mappen von Ersetzungselementen gelten. Dabei entspricht das Basistyp Element dem Ursprungs-Element und abgeleitete Typen sind die Ersetzungselemente, die der Gruppe zugeordnet wurden.
Wichtig ist zu beachten, dass ein Element gleichzeitig mit einem Anderen ersetzt werden kann (Ersetzungsgruppe) und durch ein Element von einem abgeleiteten Typ ersetzt werden kann. So werden beide auf der Ziel-Modul Seite als das Ursprungs-/Basistyp Elements gezählt und als unterschiedliche Elemente auf der Quell-Modul Seite betrachtet.
Eine grafische Darstellung des Beispiels: