XSL-Mapping anlegen und verwenden
Mappings lassen sich innerhalb eines ESB-Projekts im Ordner Transformations anlegen.
Hierzu stehen zwei Möglichkeiten zur Verfügung:
- Menü Project > Add XSL Stylesheet
- Kontextmenü New > XSL Stylesheet
So legen Sie ein XSL-Mapping an
- Klicken Sie im ESB-Projekt mit der rechten Maustaste auf den Ordner Transformations, um das Kontextmenü aufzurufen.
- Rufen Sie im Kontextmenü
Eine Auswahl an verfügbaren Vorlagen wird angezeigt. > auf. Wählen Sie eine leere Vorlage oder eine vorhandene Vorlage.
Geben Sie in File Name den Dateinamen ein.
- Wählen Sie Finish aus, um das XSL-Mapping anzulegen.
Das XSL-Mapping wurde angelegt und wird im Mapping Editor geöffnet.
Quell- und Zieldatenstruktur im XSL-Mapping definieren
Im ersten Schritt legen Sie die Quelldatenstruktur der Transformation fest. Das heißt, dass Sie den linken Bereich (=Quelldokument-Bereich) des XSL-Mappings mit Quelldaten befüllen.
Dazu haben Sie in der Design-Ansicht drei Möglichkeiten:
Ziehen Sie ein XML-Quelldokument (XML-Dokument oder XML-Schema) aus der Sicht Projects per Drag&Drop in den Quelldokument-Bereich des Mapping Editors.
Alternativ können Sie mit der rechten Maustaste in den Quelldokument-Bereich des XSL-Mappings klicken und Assign Input auswählen, um eine Datei zum Einfügen auszuwählen. Zur Auswahl stehen alle Projekte aus der Sicht Projects.Der Namespace
xmlns:xs="http://www.w3.org/2001/XMLSchema"
und das Attributexclude-result-prefixes="xs"
ermöglichen die Verwendung von Datentypen in Verbindung mit XPath 2.0. Beide Einträge sind nur in neu angelegten XSL-Stylesheets enthalten, die nicht auf einer Vorlage basieren.Klicken Sie mit der rechten Maustaste in den Quelldokument-Bereich des XSL-Mappings, und wählen Sie Paste Input, um den Inhalt der Zwischenablage einzufügen.
Beispiel: Sie können beim Debuggen eines Prozesses die Daten aus der Sicht Output in die Zwischenablage kopieren und hier einfügen, oder Sie können XML-Daten aus einem Editor kopieren und hier einfügen.- a. Um den Output einer Adapter-Operation zu nutzen:
Ziehen Sie einen Adapter, der in einem Prozess verwendet wird, per Drag&Drop in den Quelldokument-Bereich des XSL-Mappings.
b. Um den Input einer Adapter-Operation zu nutzen:
Ziehen Sie einen Adapter, der in einem Prozess verwendet wird, per Drag&Drop in den Stylesheet-Bereich des XSL-Mappings.
Wenn mehrere Operationen verfügbar sind, öffnet sich ein Dialogfenster zur Auswahl der Operation:
Wählen Sie eine Adapter-Operation aus und klicken Sie auf OK.
Das eingefügte XML-Quelldokument wird in einer Baumansicht dargestellt:
Im nächsten Schritt legen Sie die Grundstruktur des Zieldokuments im XSL-Mapping an. Dazu gehen Sie wie folgt vor:
- Klicken Sie im Stylesheet-Bereich mit der rechten Maustaste auf das Root-Template (
template match="/"
), um das Kontextmenü zu öffnen. - Wählen Sie im Kontextmenü Add XSL , um den XSL Element Creation Wizard zu öffnen.
Fügen Sie alle benötigten Elemente mit der entsprechenden Hierarchie ein.
Beispiel: Die Struktur des Zieldokuments ist ein HTML-Grundgerüst (<html>
,<body>
), das eine Tabelle (<table>
) mit einer Zeile (<tr>
) mit drei Kopfzellen (<th>
) und einer weiteren Zeile (<tr>
) mit drei Zellen (<td>
) enthält.Wenn Sie bereits die XML-Struktur kennen, die durch das XSL-Mapping erzeugt werden soll, dann können Sie per Drag&Drop aus der Sicht Projects ein XML-Dokument oder ein XML-Schema zuweisen. Dieses können Sie dann als Zielstruktur für das Mapping verwenden.
Beim Zuweisen einer XML-Struktur per Drag&Drop werden Sie gefragt, wie diese eingefügt werden soll:
Full XML structure including data fügt die komplette XML-Dokumentstruktur inklusive Element- und Attributwerte ein.
Virtual nodes (structure without data) fügt lediglich die Baumstruktur als virtuelle Knoten in den Stylesheet-Bereich ein. Erst per Doppelklick oder über ein Daten-Mapping auf einen virtuellen Knoten werden diese tatsächlich in der Zielstruktur erzeugt.
- Wenn Sie Text hinzufügen möchten: Wählen Sie im Kontextmenü
Beispiel: Kopfzeilen-Beschriftung für die Tabellenkopfzellen einfügen. > .
Daten-Mapping: for-each verwenden
So bauen Sie mit <xsl:for-each>
eine Zielstruktur auf, die sich pro Datensatz wiederholt:
Markieren Sie im Quelldokument die wiederholt vorkommende Knotenstruktur. Halten Sie die
Shift
-Taste gedrückt, und ziehen Sie die Struktur per Drag&Drop auf das zu wiederholende Zielelement.
Einfor-each
-Element wird erzeugt.
Beispiel: Verknüpfen Sie<Dataset>
auf diese Weise mit dem zweiten<tr>
-Element, um HTML-Tabellenzeilen dynamisch zu erzeugen.Stellen Sie sicher, dass das
for-each
-Element unmittelbarer Elternknoten des zweiten<tr>
-Elements ist.
Daten-Mapping: value-of verwenden
So übernehmen Sie mit <xsl:value-of>
Knoteninhalte vom Quelldokument in das Zieldokument:
Klicken Sie den Quellknoten an, und ziehen Sie ihn per Drag&Drop auf den Zielknoten.
Beispiel: Weisen Sie das<CustomerName>
-Element dem ersten<td>
-Element, das Element<CompanyName>
dem zweiten<td>
-Element und das Element<Address>
dem dritten<td>
-Element zu.Ziehen Sie weitere Verbindungslinien.
Für jede Verbindung wird eine Linie angezeigt.
Daten-Mapping: copy-of verwenden
So kopieren Sie mit <xsl:copy-of>
einen Knoten inklusive aller Kindknoten (Elemente, Attribute, Namespace-Definitionen etc.):
- Markieren Sie im Quelldokument den zu kopierenden Knoten.
- Halten Sie die
Strg
-Taste gedrückt, und ziehen Sie den Knoten per Drag&Drop auf das Zielelement.
Eincopy-of
-Element wird erzeugt.
Source-Ansicht: XSLT-Funktionen verwenden
Beispiel
Die Elementinhalte vonContactName
und ContactTitle
sollen über die Funktion concat
zusammengeführt werden.
Wählen Sie die Registerkarte Source, um das XSL-Mapping im Quelltext anzuzeigen.
Bearbeiten Sie die XSLT-Syntax.
Beispiel: Ersetzen Sie die Zeile<xsl:value-of select="ContactName"></xsl:value-of>
durch<xsl:value-of select="concat(ContactName, ', ', ContactTitle)"/>
.
Ausgabeformat ändern
Passen Sie in Element
<xsl:output>
in Attributmethod="xml"
das Ausgabeformat an.
Beispiel: Zum Erzeugen eines HTML-Dokumentsmethod="html"
setzen.Passen Sie in Element
<xsl:output>
in Attributmedia-type="text/xml"
den MIME-Typ des Ausgabedokuments an.
Beispiel: Zum Erzeugen eines HTML-Dokumentsmime-type="text/html"
setzen.
XSL-Mapping testen
Wenn ein Input-Dokument verfügbar ist, können Sie die integrierte Vorschaufunktion des Mapping Editors verwenden.
- Speichern Sie das XSL-Mapping mit
Strg
+S
. Klicken Sie in der Symbolleiste auf
und anschließend auf Run Transformation, um das XSL-Mapping lokal auszuführen.
Das Transformationsergebnis wird nun in der Sicht Output angezeigt.
XSL-Mapping in einen Prozess einbauen
Ziehen Sie das XSL-Mapping aus der Sicht Projects per Drag&Drop in den geöffneten Prozess.
Beispiel: Zwischen XML-Dokument undStop
-Baustein einfügen.Definieren Sie bei Bedarf Parameter in der Eigenschaft
Component Parameters
.
Diese werden beim Ausführen des Prozesses an XSL-Mapping übergeben. Weitere Informationen hierzu finden Sie unter Prozessbausteine parametrieren.