Show TOC

Dokumentation zur SyntaxAbbildungsliste Dieses Dokument in der Navigationsstruktur finden

Verwendung

Mit dem Attribut map kann bei tt:value sowie bei tt:write und tt:read eine Abbildungsliste mapping_list angegeben werden, um bei der Serialisierung bzw. Deserialisierung eine Liste explizit angegebener Werte auf genau einen Wert abzubilden.

Eine Abbildungsliste mapping_list besteht aus einer einzigen Abbildungsvorschrift oder einer durch Kommata getrennten Liste mehrerer Abbildungsvorschriften. Folgende Abbildungsvorschriften sind möglich:

  • val(a1, a2, ...) > xml(x)

    Diese Abbildungsvorschrift wird bei der Serialisierung ausgewertet. Wenn der Wert des aktuellen Datenknotens einem der angegebenen Werte a1, a2, ... entspricht, wird er in den Wert x verwandelt.

  • xml(x1, x2, ...) > val(a)

    Diese Abbildungsvorschrift wird bei der Deserialisierung ausgewertet. Wenn der Wert des aktuellen Knotens einem der angegebenen Werte x1, x2, ... entspricht, wird er in den ABAP-Wert a verwandelt.

  • val(a) = xml(x) xml(x) = val(a)

    Diese Abbildungsvorschriften haben beide die gleiche Bedeutung und werden sowohl bei der Serialisierung als auch bei der Deserialisierung ausgewertet. Wenn der Wert des aktuellen Knotens dem angegebenen Wert a entspricht, wird er in den Wert x verwandelt und umgekehrt.

Die Angabe der Werte a, a1, a2, ... muss wie im Anhang beschrieben erfolgen. Die XML-Werte x, x1, x2, ... müssen in Anführungsstriche eingeschlossen werden.

Hinweis Hinweis

Bei Verwendung von Abbildungsvorschriften mit mehr als einem Argument ist die Transformation in der Regel nicht mehr symmetrisch.

Ende des Hinweises.
Beispiel

Serialisierung von ABAP-Daten über eine Abbildungsliste.

Syntax Syntax

  1. <tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
  2.   <tt:root name="ROOT1"/>
  3.   <tt:root name="ROOT2"/>
  4.   <tt:template>
  5.     <X0>
  6.       <X1>
  7.         <tt:value  ref="ROOT1"
  8.                    map="val(C('Woman'), C('Man')) > xml('Person')" />
  9.       </X1>
  10.       <X2>
  11.         <tt:value  ref="ROOT2"
  12.                    map="val(C('Woman'), C('Man')) > xml('Person')" />
  13.       </X2>
  14.     </X0>
  15.   </tt:template>
  16. </tt:transform>
Ende des Codes

Die Transformation ist nicht symmetrisch. In folgendem ABAP-Programm enthalten field1 und field2 nach der Deserialisierung den Wert "Person".

Syntax Syntax

  1. DATA xml_string TYPE string.
  2. DATA field1 TYPE string VALUE 'Woman'.
  3. DATA field2 TYPE string VALUE 'Man'.
  4. CALL TRANSFORMATION ...
  5.   SOURCE root1 = field1
  6.          root2 = field2
  7.   RESULT XML xml_string.
  8. CALL TRANSFORMATION ...
  9.   SOURCE XML xml_string
  10.   RESULT root1 = field1
  11.          root2 = field2.
Ende des Codes