createIf

Use

You use createIf() to create a tag in the target structure independently of a condition.

Example

In the example below, a mapping is required between two different formats for a list of messages. The attribute type is used in the source structure to classify the message as either internal ( type ="internal") or external ( type ="external"). However, in the target structure the tag internalRequest or externalRequest is used:

Source Structure (left) and Target Structure (right)

Field Name

minOccurs

maxOccurs

Field Name

minOccurs

maxOccurs

RequestListMsg

1

1

RequestListEIMsg

1

1

request

0

unbounded

internalRequest

0

unbounded

type (Attr.)

1

1

initiator

1

1

creator

1

1

contact

1

1

contact

1

1

issue

1

1

description

1

1

externalRequest

0

unbounded

initiator

1

1

contact

1

1

issue

1

1

You use createIf() to create the respective target field independently of attribute type :

Message Mapping Using createIf()

Target Field Mapping

Value of Constant()

/RequestListEIMsg=/RequestListMsg

/RequestListEIMsg/internalRequest= createIf ( equalsS ( removeContexts (/RequestListMsg/request/type), Constant ()))

internal

/RequestListEIMsg/internalRequest/initiator= /RequestListMsg/request/creator

/RequestListEIMsg/internalRequest/contact= /RequestListMsg/request/contact

/RequestListEIMsg/internalRequest/issue= /RequestListMsg/request/description

/RequestListEIMsg/internalRequest= createIf ( equalsS ( removeContexts (/RequestListMsg/request/type), Constant ()))

external

/RequestListEIMsg/externalRequest/initiator= /RequestListMsg/request/creator

/RequestListEIMsg/externalRequest/contact= /RequestListMsg/request/contact

/RequestListEIMsg/externalRequest/issue= /RequestListMsg/request/description

Example

Source Instance

Result

<?xml version="1.0" encoding="UTF-8"?>

<RequestListMsg>

<request type=" internal ">

<creator> creator1 </creator> <contact> contact1 </contact> <description> description1 </description>

</request>

<request type=" external ">

<creator> creator2 </creator> <contact> contact2 </contact> <description> description2 </description>

</request>

</RequestListMsg>

<?xml version="1.0" encoding="UTF-8"?>

<ns0:RequestListEIMsg xmlns:ns0="workshopDemo">

<internalRequest>

<initiator> creator1 </initiator> <contact> contact1 </contact> <issue> description1 </issue>

</internalRequest>

< externalRequest >

<initiator> creator2 </initiator> <contact> contact2 </contact> <issue> description2 </issue>

</internalRequest>

</ns0:RequestListEIMsg>