Für den Inhalt precond des Attributs using eines Elements tt:cond können folgende Vorbedingungen angegeben werden. Der Operand der Vorbedingungen kann ein in der Form dnode angegebener Datenknoten sein.
Vorbedingung |
Bedeutung |
exist(dnode) |
Erfüllt, wenn an den Knoten ein ABAP-Datenobjekt angebunden ist. |
type-C(dnode) |
Erfüllt, wenn an den Knoten ein ABAP-Datenobjekt angebunden und dieses vom Typ c ist. |
type-D(dnode) |
Erfüllt, wenn an den Knoten ein ABAP-Datenobjekt angebunden und dieses vom Typ d ist. |
type-F(dnode) |
Erfüllt, wenn an den Knoten ein ABAP-Datenobjekt angebunden und dieses vom Typ f ist. |
type-I(dnode) |
Erfüllt, wenn an den Knoten ein ABAP-Datenobjekt angebunden und dieses vom Typ i ist. |
type-N(dnode) |
Erfüllt, wenn an den Knoten ein ABAP-Datenobjekt angebunden und dieses vom Typ n ist. |
type-P(dnode) |
Erfüllt, wenn an den Knoten ein ABAP-Datenobjekt angebunden und dieses vom Typ p ist. |
type-T(dnode) |
Erfüllt, wenn an den Knoten ein ABAP-Datenobjekt angebunden und dieses vom Typ t ist. |
type-X(dnode) |
Erfüllt, wenn an den Knoten ein ABAP-Datenobjekt angebunden und dieses vom Typ x ist. |
Das Element X wird bei einer Serialisierung nur berücksichtigt, wenn das an ROOT angebundene ABAP-Datenobjekt vom Typ c ist.
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="ROOT"/>
<tt:template>
<tt:s-cond
using="type-C(ref('ROOT'))">
<X>
...
</X>
</tt:s-cond>
</tt:template>
</tt:transform>
Hier könnte statt "type-C(ref('ROOT'))" natürlich auch "type-C(ROOT)" geschrieben werden.
Eine Vorbedingung kann als kommaseparierte Liste mehrerer obiger Vorbedingungen angegeben werden. Eine solche Vorbedingung ist erfüllt, wenn alle Vorbedingungen der Liste erfüllt sind. Innerhalb der Liste darf jeder Datenknoten nur einmal vorkommen.
Das Element X wird bei einer Serialisierung nur berücksichtigt, wenn das an ROOT1 angebundene ABAP-Datenobjekt vom Typ i und das an ROOT2 angebundene ABAP-Datenobjekt vom Typ f ist.
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="ROOT1"/>
<tt:root
name="ROOT2"/>
<tt:template>
<tt:s-cond using="type-I(ROOT1),
type-F(ROOT2)">
<X>
...
</X>
</tt:s-cond>
</tt:template>
</tt:transform>