Übersetzen von Daten in eine XML-Nachricht

Häufig müssen Daten aus einem Format in ein anderes übersetzt werden. Beispielsweise werden die Elemente in der einen Nachricht mit Namen bezeichnet, während die Elemente in einer anderen Nachricht mit Nummern versehen sind. Beispiel:

Type Name          Type Code
Confectionary      2000
Newspapers         3000
Hardware           4000

Betrachten Sie die folgende Eingabenachricht:

<Data>
<Items>
<Item>
<Cat>1000</Cat>
<Description>Milk Chocolate Bar</Description>
<Type>Confectionary</Type>
</Item>
<Item>
<Cat>1001</Cat>
<Description>Daily Newspaper</Description>
<Type>NewsPapers</Type>
</Item>
<Item>
<Cat>1002</Cat>
<Description>Kitchen Sink</Description>
<Type>Hardware</Type>
</Item>
</Items>
<TranslateTable>
<Translate>
<Name>Confectionary</Name>
<Number>2000</Number>
</Translate>
<Translate>
<Name>NewsPapers</Name>
<Number>3000</Number>
</Translate>
<Translate>
<Name>Hardware</Name>
<Number>4000</Number>
</Translate>
</TranslateTable>
</Data>

Diese Nachricht besteht aus zwei Abschnitten: Der erste ist eine Liste von Elementen (Items), in der jedem Element eine Katalognummer und ein Typ zugeordnet wird; der zweite ist eine Umsetztabelle (TranslateTable) für die Umsetzung zwischen beschreibenden Typnamen und numerischen Typcodes. Für diese Nachricht wird ein Rechenknoten mit der folgenden Umwandlung eingefügt:

SET OutputRoot.XML.Result.Items.Item[] = 
(SELECT M.Cat, M.Description, T.Number As Type
FROM 
InputRoot.XML.Data.Items.Item[]               As M,
InputRoot.XML.Data.TranslateTable.Translate[] As T
WHERE M.Type = T.Name
);

Als Ergebnis wird folgende Ausgabenachricht generiert:

<Result>
<Items>
<Item>
<Cat>1000</Cat>
<Description>Milk Chocolate Bar</Description>
<Type>2000</Type>
</Item>
<Item>
<Cat>1001</Cat>
<Description>Daily Newspaper</Description>
<Type>3000</Type>
</Item>
<Item>
<Cat>1002</Cat>
<Description>Kitchen Sink</Description>
<Type>4000</Type>
</Item>
</Items>
</Result>

Im Ergebnis wurden die Typnamen in die entsprechenden Codes umgewandelt. In diesem Beispiel befanden sich die Daten und die Umsetztabelle in derselben Nachrichtenbaumstruktur. Dies ist jedoch keine Voraussetzung. Die Umsetztabelle kann beispielsweise auch in einer Datenbank codiert sein oder in der lokalen Umgebung von einem vorherigen Rechenknoten konfiguriert worden sein.

Zugehörige Konzepte
Nachrichtenflüsse - Übersicht
Übersicht zu ESQL
Nachrichten modellieren
Zugehörige Tasks
Nachrichtenfluss entwerfen
Nachrichtenflussinhalt definieren
ESQL-Dateien verwalten
Zugehörige Verweise
Rechenknoten
Datenbankknoten
Filterknoten
ESQL-Referenz
Funktion SELECT
SET-Anweisung
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 18.05.2006
ak05790_