exists
Verwenden Sie diese Funktion, um zu überprüfen, ob ein bestimmtes Quellfeld in der zu verarbeitenden XML-Instanz vorhanden ist. Wenn ja, liefert exists() den Wert true, andernfalls den Wert false.
In dem folgenden Beispiel soll eine Funktions-Deklaration auf eine Struktur abgebildet werden, die lediglich aus dem technischen Namen und der Beschreibung der Funktion besteht. Unglücklicherweise ist das Feld description der Ausgangsstruktur optional während das Feld descriptionOfUse in der Zielstruktur vorkommen muss (minOccurs = 1).
Ausgangsstruktur (links) und Zielstruktur (rechts)
Feldname |
minOccurs |
maxOccurs |
Feldname |
min- |
max- |
FunctionDeclMsg |
1 |
1 |
FunctionHeadingMsg |
1 |
1 |
name |
1 |
1 |
technicalName |
1 |
1 |
description |
0 |
1 |
descriptionOfUse |
1 |
1 |
inputArg |
0 |
64 |
|
|
|
name (Attr) |
1 |
1 |
|
|
|
type (Attr) |
1 |
1 |
|
|
|
returnValue |
0 |
1 |
|
|
|
type (Attr) |
1 |
1 |
|
|
|
Hier können Sie mit Hilfe der Funktion exists() und anderen booleschen Funktionen in dem Fall, in dem das description-Tag nicht vorhanden ist, standardmäßig einen vorgegebenen String ausgeben. Auf diese Weise wird das Zielfeld descriptionOfUse in jedem Fall gefüllt und ist nicht leer.
Message-Mapping mit exists()
Zielfeld-Mapping |
Wert von Constant() |
/FunctionHeadingMsg=/FunctionDeclMsg |
|
/FunctionHeadingMsg/technicalName=/FunctionDeclMsg/name |
|
/FunctionHeadingMsg/descriptionOfUse= |
(Keine Beschreibung verfügbar) |

Die textliche Beschreibung der
if-Standardfunktion muss folgendermaßen gelesen werden: if
( <Ergebnis, wenn Bedingung true>,
<Bedingung>,
<Ergebnis,
wenn Bedingung false>).
Ausgangs-Instanz |
Ergebnis |
<?xml version="1.0"
<FunctionDeclMsg> <name> <inputArg <inputArg <inputArg <returnValue type="String" /> </FunctionDeclMsg> |
<?xml version="1.0"
<ns0:FunctionHeadingMsg <technicalName> <descriptionOfUse> </ns0:FunctionHeadingMsg> |