!--a11y-->
removeContexts 
Mit removeContext() können Sie alle übergeordneten Kontexte für ein Element löschen. Alle übergeordneten Hierarchie-Stufen wird also verworfen, so dass alle Elemente der Ziel-Queue einem Wurzelelement der Ausgangs-Queue zugeordnet werden.
In den folgenden Beispiel soll eine Liste von Debitoren, die für jeden Debitor eine oder mehrere geleistete Zahlungen über das Feld payment auflistet, in eine Liste transformiert werden, die nur noch die geleisteten Zahlungen enthält. Die Zahlungen und die Debitoren haben dabei jeweils noch ein Attribut id für ihre Identifikation.
Ausgangsstruktur (links) und Zielstruktur (rechts)
|
Feldname |
minOccurs |
maxOccurs |
Feldname |
minOccurs |
maxOccurs |
|
DebitorListMsg |
1 |
1 |
AllDebtsMsg |
1 |
1 |
|
Debitor |
0 |
unbounded |
debt |
0 |
unbounded |
|
id (Attr) |
|
|
id (Attr) |
1 |
1 |
|
payment |
1 |
unbounded |
|
|
|
|
id (Attr) |
|
|
|
|
|
Um die übergeordnet Hierarchiestufe Debitor zu verwerfen, verbinden Sie das Element payment mit der Funktion removeContexts(). Als Zielfeld geben Sie das Feld an, in das der Inhalt von payment kopiert werden soll, also debt.
Message-Mapping mit removeContexts()
|
Zielfeld-Mapping |
|
/AllDebtsMsg=/DebitorListMsg |
|
/AllDebtsMsg/debt=removeContexts(/DebitorListMsg/Debitor/payment) |
|
/AllDebtsMsg/debt/id=/DebitorListMsg/Debitor/payment/id |
|
Ausgangs-Instanz |
Ergebnis |
|
<?xml
version="1.0"
<DebitorListMsg> <Debitor id="1">
<payment id="1"> </Debitor> <Debitor id="2">
<payment id="4"> </Debitor> <Debitor id="3">
<payment id="5"> </Debitor> </DebitorListMsg> |
<?xml version="1.0"
<ns0:AllDebtsMsg
<debt id="1">
<debt id="4">
<debt id="5">
</ns0:AllDebtsMsg> |