Der XMLTransformation-Knoten wird zur Umwandlung einer XML-Nachricht in ein anderes XML-Nachrichtenformat verwendet (hierbei gelten die Regeln, die von einer XSL-Formatvorlage (XSL = eXtensible Stylesheet Language) bereitgestellt werden).
Dieses Thema enthält folgende Abschnitte:
Sie haben drei Möglichkeiten zur Angabe der Adresse der Formatvorlage, die für diese Umwandlung verwendet werden soll:
Für die Umwandlung wird ein XSLT-Compiler (Extensible Stylesheet Language for Transformations) verwendet, wenn die Formatvorlage nicht Teil der Nachricht ist und der Wert für die Knotencachestufe (Knoteneigenschaft Cachestufe für Formatvorlage) größer als null ist. Wenn XSLT zwischengespeichert wird, führt dies zu einer Leistungsverbesserung, da XSLT nicht bei jeder Verwendung syntaktisch analysiert wird.
Wenn zu Beginn des Hauptteils der Eingabenachricht eine XML-Codierungsdeklaration enthalten ist, wird diese Codierung vom XMLTransformation-Knoten ignoriert und für die Decodierung der Nachricht immer die CodedCharSetId im Eigenschaftenordner verwendet.
Der XMLTransformation-Knoten befindet sich im Ablagefach Transformation der Palette und wird in der Workbench durch folgendes Symbol dargestellt:
Beispiel für die Verwendung dieses Knoten: Zwei Medienunternehmen, die regelmäßig Informationen austauschen. Bei einem der Unternehmen handelt es sich um einen Fernsehsender, das andere ist eine Zeitungsverlag. Obwohl identische Informationen verwendet werden, unterscheidet sich doch das verwendete Vokabular. Dieser Knoten kann ein Format in ein anderes umwandeln, indem er die Regeln der angegebenen Formatvorlage anwendet. Wenn Sie die Formatvorlage in der Nachricht angeben (entweder die XML-Daten oder die lokale Umgebung), kann derselbe Knoten beide Umwandlungen vornehmen.
Wenn die Eingabe für den XMLTransformation-Knoten vom XMLNSC- oder MRM-Parser generiert wird, sollten Sie folgende Punkte berücksichtigen. Bestimmte Informationen in XML-Dokumenten (z. B. Verarbeitungsanweisungen und Kommentare) werden vom XMLNSC-Parser gelöscht, wenn auf einem vorherigen Knoten die Eigenschaften zum Beibehalten dieser Informationen nicht entsprechend gesetzt wurden. Um sicherzustellen, dass die Nachricht vom XMLTransformation-Knoten korrekt umgesetzt wird, müssen die die Eigenschaften Gemischten Inhalt beibehalten, Kommentare beibehalten und Verarbeitungsanweisung beibehalten auf dem vorherigen Knoten (z. B. einem MQInput-Knoten) korrekt gesetzt werden. Der MRM-Parser löscht auch diese Informationen, und Sie können keine Informationen für diesen Parser beibehalten. Deshalb sollten Sie die Verwendung des MRM-Parsers vermeiden, wenn Sie diese Informationen für Ihre Umsetzung benötigen.
Bei Formatvorlagen, die implementiert werden sollen, muss die Dateierweiterung entweder .xsl oder .xslt lauten, und bei XML-Dateien, die implementiert werden sollen, muss sie .xml lauten.
Importieren Sie alle Formatvorlagen und XML-Dateien, die implementiert werden sollen, in das Projekt eines Eclipse-Arbeitsbereichs. Schreiben Sie standortabhängige untergeordnete Formatvorlagen oder XML-Dateien, die implementiert werden sollen, in die richtige Verzeichnisstruktur, die relativ zu den zugehörigen übergeordneten Formatvorlagen ist. Im Eclipse-Arbeitsbereich sollten sich keine standortabhängigen untergeordneten Formatvorlagen befinden, die nicht implementiert werden sollen.
Bei allen Verweisen auf eine implementierte Formatvorlage muss es sich unabhängig von ihrer Position um einen relativen Verweis handeln. Ein Verweis auf eine Principal-Formatvorlage muss relativ zu dem Stammverzeichnis des relevanten Projekts des Eclipse-Arbeitsbereichs sein.
Einzige Ausnahme: Bei der Angabe einer Principal-Formatvorlage als Eigenschaft Name der Formatvorlage in einem XMLTransformation-Knoten können Sie einen absoluten Pfad verwenden, der auf die richtige Verzeichnisstruktur im Eclipse-Arbeitsbereich verweist. Wenn die Principal-Formatvorlage gefunden wurde, setzt das System die Knoteneigenschaft automatisch auf den richtigen relativen Wert.
Außerdem führt es eine automatische Implementierung der Principal-Formatvorlage und der standortabhängigen untergeordneten Formatvorlagen aus, die im relevanten Eclipse-Arbeitsbereichsprojekt verfügbar sind. Alle Verweise auf standortabhängige untergeordnete Formatvorlagen (oder XML-Dateien) einer Principal-Formatvorlage müssen relativ zum Standort der zugehörigen übergeordneten Formatvorlagen sein. Wenn beispielsweise die Formatvorlage //project1/a/b.xsl auf die Formatvorlage //project1/a/c/d.xsl verweist, muss der Verweis in c/d.xsl (oder ./c/d.xsl) geändert werden.
Formatvorlagen
können auf andere Formatvorlagen verweisen. Wenn Sie eine Formatvorlage (oder XML-Datei) mit einem
relativen Verweis haben, die selbst zwar nicht, aber deren übergeordnetes Element implementiert
werden soll, müssen Sie sicherstellen, dass die untergeordnete Formatvorlage an die korrekte
Position unter Arbeitspfad/XSL/external
(Arbeitspfad/XML/external) gestellt wird. Dabei ist
Arbeitspfad der vollständige Pfad zum Arbeitsverzeichnis des Brokers. Über die
Umgebungsvariable MQSI_WORKPATH können Sie die Position des Arbeitspfads auf dem
System ermitteln; auf
Windows-Systemen lautet der Standardarbeitspfad
beispielsweise MQSI_WORKPATH=C:\Dokumente und Einstellungen\All
Users\Anwendungsdaten\IBM\MQSI.
Ein Broker ordnet die in der Ausführungsgruppe implementierte Speicherbaumstruktur, Arbeitspfad/XSL/external, und die Baumstruktur Arbeitspfad/XML/external einander automatisch zu. Wenn also beispielsweise das Dokument b/c.xml im implementierten Speicher des Brokers nicht gefunden wird, führt der Broker im Verzeichnis Arbeitspfad/XML/external/a/b automatisch eine Suche nach einem Verweis auf das Dokument in der implementierten Principal-Formatvorlage a/style.xsl durch. Relative Pfadverweise müssen auch für Dateien verwendet werden, die bereits implementiert wurden, die im Arbeitsbereich aber noch nicht verfügbar sind.
Implementieren Sie nur die Formatvorlagen oder XML-Dateien manuell, die vom System noch nicht berücksichtigt wurden (das Message Brokers Toolkit gibt Warnungen zu diesen Dateien aus). Wenn Sie für den Knoten auf Durchsuchen klicken oder den vollständigen Pfad der Formatvorlage im Eclipse-Arbeitsbereich angeben, wird dies automatisch in die BAR-Datei eingefügt.
Fügen Sie die Dateien bei der manuellen Implementierung zu einem Brokerarchiv hinzu. Sie finden weitere Informationen hierzu in den Abschnitten Dateien zu einem Brokerarchiv hinzufügen und Schlüsselwörter zu XSL-Formatvorlagen hinzufügen.
Wenn eine Formatvorlage im Verzeichnis Arbeitspfad/XSL/external denselben Pfad und denselben Namen wie eine implementierte Formatvorlage hat, wird die implementierte Formatvorlage verwendet.
Nachdem Sie eine Instanz des XMLTransformation-Knotens in einen Nachrichtenfluss eingereiht haben, können Sie ihn konfigurieren; siehe Nachrichtenflussknoten konfigurieren. Die Knoteneigenschaften werden in der Eigenschaftenansicht angezeigt. Klicken Sie zum Anzeigen der Knoteneigenschaften im Eigenschaftendialog mit der rechten Maustaste und anschließend auf Eigenschaften. (Durch Doppelklicken auf den XMLTransformation-Knoten wird das Dialogfenster 'XSL-Auswahl' geöffnet.)
Alle verbindlichen Eigenschaften, für die Sie einen Wert eingeben müssen (d. h. Eigenschaften ohne definierten Standardwert), sind mit einem Sternchen gekennzeichnet.
Konfigurieren Sie den XMLTransformation-Knoten:
Wenn Sie eine zwischengespeicherte Formatvorlage ändern (indem Sie die Datei im Dateisystem erneut implementieren oder ersetzen), ersetzt der XMLTransformation-Knoten, der den Cache enthält, die zwischengespeicherte Version durch die geänderte (neueste) Version, bevor eine neue Nachricht verarbeitet wird. Wenn Sie mehrere Formatvorlagen ändern, sollten Sie jedoch die relevanten Nachrichtenflüsse stoppen, bevor Sie Änderungen vornehmen. Wenn Sie die relevanten Nachrichtenflüsse nicht stoppen, bevor Sie die Änderungen vornehmen, kann die Reihenfolge der Änderungen von aktiven Nachrichtenflüssen nicht garantiert werden, was eine Inkompatibilität zwischen geänderten Formatvorlagen verursachen kann. Verwenden Sie den Befehl mqsireload, um eine Formatvorlage erneut zu laden. Der Befehl verhindert die Inkompatibilität jedoch nicht.
<?xml-stylesheet type="text/xsl" href="foo.xsl"?>
Da dieser Knoten über ein SupportPac für Version 2.1 zur Verfügung gestellt und das Element 'ComIbmXslMqsiStylesheetname' als Name der Formatvorlage verwendet wurde, überprüft der Knoten beide Elemente. Sind beide Elemente vorhanden, hat der Wert in 'ComIbmXslXmltStylesheetname' Vorrang.
Sie können für mehrere Eigenschaften denselben Wert festlegen, aber auch dann gilt die vom Knoten festgelegt Prioritätenfolge als Standardreihenfolge (siehe Beschreibung oben).
Wird der Wert 0 gesetzt, durchsucht der Knoten die entsprechende Position nicht auf Informationen zur Formatvorlage. Werden alle drei Eigenschaften auf 0 gesetzt, wird ein Laufzeitfehler generiert.
Da dieser Knoten über ein SupportPac für Version 2.1 zur Verfügung gestellt wurde und das Element 'ComIbmXslMqsiOutputcharset' als Zeichensatz für die Ausgabe verwendet wurde, überprüft der Knoten beide Elemente. Sind beide Elemente vorhanden, hat der Wert in 'ComIbmXslXmltOutputcharset' Vorrang.
Für Ausgabezeichensatz muss ein numerischer Wert festgelegt werden. Geben Sie beispielsweise den Wert 1200 ein, wenn die Ausgabe der Umwandlung in UTF-16 codiert werden soll.
Sie können für mehrere Eigenschaften denselben Wert festlegen, aber auch dann gilt die vom Knoten festgelegt Prioritätenfolge als Standardreihenfolge (siehe Beschreibung oben).
Wird der Wert auf null gesetzt, durchsucht der Knoten die entsprechende Position nicht auf Informationen zum Zeichensatz.
Kann der Knoten den Ausgabezeichensatz nicht auf Grundlage einer dieser Quellen ermitteln, weil entweder kein Wert gesetzt ist oder die Auswahlprioritäten auf null gesetzt sind, wird der Standardwert 1208 (UTF-8) verwendet. (Die XSL-Spezifikation gibt an, dass der Ausgabezeichensatz in der Formatvorlage angegeben werden kann. Der XMLTransformation-Knoten ignoriert diesen Wert jedoch.)
Die Tracedaten werden in der Tracedatei XMLTTrace.log gespeichert:
Wenn Sie Traceeinstellung für einen XMLTransformation-Knoten auf On setzen, wird diese Einstellung für alle Knoten in der Ausführungsgruppe übernommen.
Diese Eigenschaft wird nicht mehr unterstützt. Starten Sie stattdessen den Benutzertrace. Der Benutzertrace enthält die gleichen XML-Traceinformationen. Wenn Sie Traceeinstellung im XMLTransformation-Knoten festlegen, hat dies keine Auswirkungen auf den Benutzertrace.
mqsireportproperties Brokername -e Kennung_der_Ausführungsgruppe -o ComIbmJVMManager -n jvmMaxHeapSize
Verwenden Sie den Befehl mqsichangeproperties, um die Größe des Java-Heapspeichers zu erhöhen:mqsichangeproperties Brokername -e Kennung_der_Ausführungsgruppe -o ComIbmJVMManager -n jvmMaxHeapSize -v Neue_Größe
Ersetzen Sie in den zuvor genannten Beispielen Brokername, Kennung_der_Ausführungsgruppe
und Neue_Größe durch die entsprechenden Werte.Der Wert für Neue_Größe richtet sich nach der Größe des physischen Hauptspeichers Ihres Computers sowie danach, wie häufig Sie Java verwenden. Ein Wert zwischen 512 MB (536870912) und 1 GB (1073741824) ist in der Regel ausreichend.
In der folgenden Tabelle werden die XMLTransformation-Knotenterminals beschrieben .
Terminal | Beschreibung: |
---|---|
Eingangsterminal | Das Eingangsterminal, das die Nachricht zur Verarbeitung durch einen Knoten annimmt. |
Fehlerterminal | Das Ausgabeterminal, an das die Originalnachricht weitergeleitet wird, wenn während der Umwandlung ein Fehler auftritt. |
Ausgabeterminal | Das Ausgabeterminal, an das eine erfolgreich umgewandelte Nachricht weitergeleitet wird. |
In den folgenden Tabellen werden die Knoteneigenschaften beschrieben. Die Spalte O zeigt an, ob die Eigenschaft obligatorisch ist (markiert mit einem Sternchen, wenn ein Wert eingegeben werden muss, weil kein Standardwert definiert ist). Die Spalte K zeigt an, ob die Eigenschaft konfigurierbar ist (Wert kann geändert werden, wenn der Nachrichtenfluss zur BAR-Datei hinzugefügt wird, um ihn einzusetzen).
In der folgenden Tabelle werden die Beschreibungseigenschaften des XMLTransformation-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung: |
---|---|---|---|---|
Knotenname | Nein | Nein | Knotentyp | Der Name des Knotens. |
Kurzbeschreibung | Nein | Nein | Kurze Beschreibung des Knotens | |
Ausführliche Beschreibung | Nein | Nein | Text, der den Zweck des Knotens im Nachrichtenfluss beschreibt |
In der folgenden Tabelle werden die Formatvorlageneigenschaften des XMLTransformation-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung: |
---|---|---|---|---|
Name der Formatvorlage | Nein | Ja | Der Name der Formatvorlage; wird beim Suchen der Spezifikation für die Formatvorlage in den Knoteneigenschaften verwendet. |
In der folgenden Tabelle werden die erweiterten Eigenschaften des XMLTransformation-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung: |
---|---|---|---|---|
Verzeichnis der Formatvorlage | Nein | Ja | Der Pfad der Formatvorlage. Er wird von allen Positionierungsmethode verwendet. | |
Cachestufe für Formatvorlage | Nein | Nein | 5 | Die Anzahl der kompilierten oder syntaktisch analysierten Formatvorlagen, die
in der Knoteninstanz gespeichert werden. Geben Sie eine positive ganze Zahl zwischen null (0) und 100 ein. Der Standardwert ist 5. Falls Sie für diese Eigenschaft einen anderen Wert als eine positive ganze Zahl angeben, wird ein Ausnahmebedingungsfehler für die Nachrichtenflusskonfiguration ausgegeben. Wenn Sie diese Eigenschaft auf null (0) setzen, wird keine Formatvorlage zwischengespeichert und Formatvorlagen werden interpretiert statt kompiliert. |
Auswahlpriorität für eingebettete XML-Formatvorlage | Ja | Nein | 1 | Die Prioritätsstufe zum Suchen der Formatvorlage in den XML-Daten. |
Auswahlpriorität für Nachrichtenumgebung | Ja | Nein | 2 | Die Priorität zum Suchen der Formatvorlage in Ordner der lokalen Umgebung (LocalEnvironment) der aktuellen Nachricht. |
Auswahlpriorität für Brokerknotenattribut | Ja | Nein | 3 | Die Priorität zum Suchen der Formatvorlage als Eigenschaft des Knotens. |
In der nachfolgenden Tabelle werden die Ausgabezeichensatzeigenschaften des XMLTransformation-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung: |
---|---|---|---|---|
Ausgabezeichensatz | Nein | Nein | Der numerische Wert für den Ausgabezeichensatz | |
Auswahlpriorität für Nachrichtenumgebung | Ja | Nein | 1 | Die Priorität zum Suchen der Ausgabezeichensatz-ID im Ordner der lokalen Umgebung (LocalEnvironment) der aktuellen Nachricht. |
Auswahlpriorität für Brokerknotenattribut | Ja | Nein | 2 | Die Priorität zum Suchen der Ausgabezeichensatz-ID als Eigenschaft des Knotens. |
In der folgenden Tabelle werden die Detail-Trace-Eigenschaften des XMLTransformation-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung: |
---|---|---|---|---|
Trace-Einstellung | Ja | Nein | Off | ![]() In früheren Versionen von WebSphere Message Broker legte diese Eigenschaft fest, ob die Tracefunktion aktiv oder inaktiv ist. Ist sie aktiv, werden Tracedaten mit niedriger Detailtiefe in einer Datei gespeichert. ![]() |