Daten in einer XML-Nachricht umsetzen

Sie müssen Daten oft von einem Format in ein anderes Format umsetzen. Beispielsweise können in einer Nachricht die Namen der Elementtypen und in einer anderen Nachricht die Nummern der Elemente bekannt sein. Beispiel:

Typname          Typcode

Confectionary      2000
Newspapers         3000
Hardware           4000

Sehen Sie sich folgende Eingabenachricht an:

<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 enthält zwei Abschnitte: der erste Abschnitt besteht aus einer Liste mit Elementen, wobei jedes Element über eine Katalognummer und einen Typ verfügt; der zweite Abschnitt ist eine Umsetztabelle für beschreibende Typnamen und numerische Typcodes. Wenn Sie einen Rechenknoten in die folgende Umsetzung einfügen:

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
   );

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 wurde jeder Typname in den entsprechenden Code konvertiert. In diesem Beispiel befanden sich die Daten und die Umsetztabelle in derselben Nachrichtenbaumstruktur, dies ist jedoch keine Voraussetzung. Die Umsetztabelle könnte beispielsweise auch in einer Datenbank codiert sein, oder sie könnte von einem vorherigen Rechenknoten in der lokalen Umgebung konfiguriert worden sein.

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