XML2MT
XML2MT transforms XML instances conforming to the schemas issued by SWIFT in SWIFT Standards Developer Kit (SDK) to SWIFT Message Type (MT) messages.
Configuration and Testing
Component Configuration
Figure 1: XML2MT Configuration
Attributes
For information about the below attributes, please refer to the respective sections in the MT2XML page.
- Error Handling Configuration
- Standard Release MT Year
- Message Schema File
Expert Properties
Enable the Expert Properties view to configure these properties.
Expert properties are meant for advanced users; use with caution.
Figure 2: Expert properties for MT2XML
Pre Processing XSL Configuration
Pre Processing XSL configuration can be used to transform request message before processing it. Click the ellipses button against the property to configure the properties.
Refer to the Pre/Post Processing XSL Configuration section under the Common Configurations page for details regarding Pre Processing XSL configuration and Post Processing XSL configuration (below).
Post Processing XSL Configuration
Post Processing XSL configuration can be used to transform the response message before sending it to the output port.
Process Message Based on Property
The property helps components to skip certain messages from processing.
Refer to the Process Message Based On a Property section under the Common Configurations page.
Threadpool Configuration
This property is used when there is a need to process messages in parallel within the component, still maintaining the sequence from the external perspective.
For information about Threadpool Configuration, please refer to the section in the MT2XML page.
Testing
Input and Output
Sample Input
A sample XML message is as below (please expand).
A sample XML instance of message type MT101 – Request for Transfer
<?xml version="1.0" encoding="UTF-8"?>
<FinMessage xmlns="urn:swift:xsd:mtmsg.2012"><!--line=0-->
<Block1>
<ApplicationIdentifier>F</ApplicationIdentifier>
<ServiceIdentifier>01</ServiceIdentifier>
<LogicalTerminalAddress>BNKACHZZBIC0</LogicalTerminalAddress>
<SessionNumber>0000</SessionNumber>
<SequenceNumber>000000</SequenceNumber>
</Block1><!--line=0-->
<Block2>
<InputIdentifier>I</InputIdentifier>
<MessageType>101</MessageType>
<DestinationAddress>BNKBBEBBXBIC</DestinationAddress>
<MessagePriority>U</MessagePriority>
<DeliveryMonitoring>3</DeliveryMonitoring>
<ObsolescencePeriod>005</ObsolescencePeriod>
</Block2><!--line=0-->
<Block3><!--line=0-->
<F113>XXXX</F113>
</Block3><!--line=0-->
<Block4>
<Document xmlns="urn:swift:xsd:fin.102.2012">
<MT102>
<SeqA>
<F20a><!--line=1-->
<F20>5362/MPB</F20>
</F20a>
<F23a><!--line=2-->
<F23>CREDIT</F23>
</F23a>
<F50a><!--line=3-->
<F50K>
<Account>1234567890</Account>
<NameAndAddress>
<Line>CONSORTIA PENSION SCHEME</Line>
<Line>FRIEDRICHSTRASSE, 27</Line>
<Line>8022-ZURICH</Line>
</NameAndAddress>
</F50K>
</F50a>
<F71a><!--line=7-->
<F71A>OUR</F71A>
</F71a>
<F36a><!--line=8-->
<F36>1,6</F36>
</F36a>
</SeqA>
<SeqB>
<F21a><!--line=9-->
<F21>ABC/123</F21>
</F21a>
<F32a><!--line=10-->
<F32B>
<Currency>EUR</Currency>
<Amount>1250,</Amount>
</F32B>
</F32a>
<F59a><!--line=11-->
<F59>
<Account>001161685134</Account>
<NameAndAddress>
<Line>JOHANN WILLEMS</Line>
<Line>RUE JOSEPH II, 19</Line>
<Line>1040 BRUSSELS</Line>
</NameAndAddress>
</F59>
</F59a>
<F70a><!--line=15-->
<F70>
<Narrative>
<Line>PENSION PAYMENT SEPTEMBER 2009</Line>
</Narrative>
</F70>
</F70a>
<F33a><!--line=16-->
<F33B>
<Currency>CHF</Currency>
<Amount>2000,</Amount>
</F33B>
</F33a>
<F71a_3><!--line=17-->
<F71G>
<Currency>EUR</Currency>
<Amount>5,</Amount>
</F71G>
</F71a_3>
</SeqB>
<SeqB>
<F21a><!--line=18-->
<F21>ABC/124</F21>
</F21a>
<F32a><!--line=19-->
<F32B>
<Currency>EUR</Currency>
<Amount>1875,</Amount>
</F32B>
</F32a>
<F59a><!--line=20-->
<F59>
<Account>510007547061</Account>
<NameAndAddress>
<Line>JOAN MILLS</Line>
<Line>AVENUE LOUISE 213</Line>
<Line>1050 BRUSSELS</Line>
</NameAndAddress>
</F59>
</F59a>
<F70a><!--line=24-->
<F70>
<Narrative>
<Line>PENSION PAYMENT SEPTEMBER 2003</Line>
</Narrative>
</F70>
</F70a>
<F33a><!--line=25-->
<F33B>
<Currency>CHF</Currency>
<Amount>3000,</Amount>
</F33B>
</F33a>
<F71a_3><!--line=26-->
<F71G>
<Currency>EUR</Currency>
<Amount>5,</Amount>
</F71G>
</F71a_3>
</SeqB>
<SeqC>
<F32a><!--line=27-->
<F32A>
<Date>090828</Date>
<Currency>EUR</Currency>
<Amount>3135,</Amount>
</F32A>
</F32a>
<F19a><!--line=28-->
<F19>3125,</F19>
</F19a>
<F71a><!--line=29-->
<F71G>
<Currency>EUR</Currency>
<Amount>10,</Amount>
</F71G>
</F71a>
</SeqC>
</MT102>
</Document>
</Block4>
</FinMessage>
Output
Output of the component for the above sample input.
{1:F01BNKACHZZBIC00000000000}{2:I101BNKBBEBBXBICU3005}{3:{113:XXXX}}{4:
:20:5362/MPB
:23:CREDIT
:50K:/1234567890
CONSORTIA PENSION SCHEME
FRIEDRICHSTRASSE, 27
8022-ZURICH
:71A:OUR
:36:1,6
:21:ABC/123
:32B:EUR1250,
:59:/001161685134
JOHANN WILLEMS
RUE JOSEPH II, 19
1040 BRUSSELS
:70:PENSION PAYMENT SEPTEMBER 2009
:33B:CHF2000,
:71G:EUR5,
:21:ABC/124
:32B:EUR1875,
:59:/510007547061
JOAN MILLS
AVENUE LOUISE 213
1050 BRUSSELS
:70:PENSION PAYMENT SEPTEMBER 2003
:33B:CHF3000,
:71G:EUR5,
:32A:090828EUR3135,
:19:3125,
:71G:EUR10,
-}
An exception is thrown if the input is not a valid SWIFT MT message.