Search Results

Usage

When a request comes to this connector, it will check the body content type, and as per the requirement, it will convert the API payload content from XML to JSON and vice versa using pre-processing and post-processing.

JSON to XML Usage Examples

Description JSON Body Transformed XML Body
Normal JSON
{
"employee" : {
"first-name" : "Jane",
"last-name" : "Doe",
"address" : "Paris",
"phone-number" : "123456"
}
}
<?xml version="1.0" encoding="UTF-8"?>
<employee>
<first-name>Jane</first-name>
<last-name>Doe</last-name>
<address>Paris</address>
<phone-number>123456</phone-number>
</employee>
JSON with nested tag
{
"employee" : {
"first-name" : "Jane",
"last-name" : "Doe",
"address" : {
"street" : "123 A Street"
},
"phone-number" : "123456"
}
}
<?xml version="1.0" encoding="UTF-8"?>
<employee>
<first-name>Jane</first-name>
<last-name>Doe</last-name>
<address>
<street>123 A Street</street>
</address>
<phone-number>123456</phone-number>
</employee>
JSON with attribute
{
"employee" : {
"first-name" : "Jane",
"last-name" : "Doe",
"address" : {
"street" : "123 A Street"
},
"phone-number" : [ {
"@type" : "work",
"$" : "555-1111"
}, {
"@type" : "cell",
"$" : "555-2222"
} ]
}
}
<?xml version="1.0" encoding="UTF-8"?>
<employee>
<first-name>Jane</first-name>
<last-name>Doe</last-name>
<address>
<street>123 A Street</street>
</address>
<phone-number type="work">555-1111</phone-number>
<phone-number type="cell">555-2222</phone-number>
</employee>
JSON with empty object
{
"employee" : {
"first-name" : "Jane",
"last-name" : "Doe",
"address" : {
"street" : "123 A Street"
},
"phone-number" : [ {
"@type" : "work",
"$" : "555-1111"
}, {
"@type" : "cell",
"$" : "555-2222"
} ],
"other-details" : {}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<employee>
<first-name>Jane</first-name>
<last-name>Doe</last-name>
<address>
<street>123 A Street</street>
</address>
<phone-number type="work">555-1111</phone-number>
<phone-number type="cell">555-2222</phone-number>
<other-details></other-details>
</employee>

XML to JSON Usage Examples

Description Pre-Input Data XML Body Transformed JSON Body Remarks
Normal XML -
<?xml version="1.0" encoding="UTF-8"?>
<employee>
<first-name>Jane</first-name>
<last-name>Doe</last-name>
<address>Paris</address>
<phone-number>123456</phone-number>
</employee>
{
"employee": {
"first-name": "Jane",
"last-name": "Doe",
"address": "Paris",
"phone-number": 123456
}
}
XML with nested tag -
<?xml version="1.0" encoding="UTF-8"?>
<employee>
<first-name>Jane</first-name>
<last-name>Doe</last-name>
<address>
<street>123 A Street</street>
</address>
<phone-number>123456</phone-number>
</employee>
{
"employee": {
"first-name": "Jane",
"last-name": "Doe",
"address": {
"street": "123 A Street"
},
"phone-number": 123456
}
JSON with attribute -
<?xml version="1.0" encoding="UTF-8"?>
<employee>
<first-name>Jane</first-name>
<last-name>Doe</last-name>
<address>
<street>123 A Street</street>
</address>
<phone-number type="work">555-1111</phone-number>
<phone-number type="cell">555-2222</phone-number>
</employee>
{
"employee": {
"first-name": "Jane",
"last-name": "Doe",
"address": {
"street": "123 A Street"
},
"phone-number": [
{
"@type": "work",
"$": "555-1111"
},
{
"@type": "cell",
"$": "555-2222"
}
]
}
}
Adding new node

node_interpretation : strict

text_node_name : testNode

<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<book>
<name>bookName1</name>
</book>
</catalog>
{
"catalog": {
"book": {
"name": {
"testNode": "bookName1"
}
}
}
}

Both values - node_interpretation and text_node_name are mandatory in pre-input configuration to get the specific result. node_interpretation value should always be strict.

Be sure to configure this both together in pre-inputs to add any text node

Add Custom Attribute prefix

use_attribute_prefix:yes

attribute_prefix:

#
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<book id="01">
<name>bookName1</name>
</book>
</catalog>
{
"catalog": {
"book": {
"#id": "01",
"name": "bookName1"
}
}
}

Both values -use_attribute_prefix and attribute_prefix are Mandatory in pre-input configuration to get the specific result. use_attribute_prefix value should always be yes.

attribute_prefix must be used with use_attribute_prefix.

Namespace handling namespace_handling:yes
<?xml version="1.0" encoding="UTF-8"?>
<test>
<pre:elem xmlns:pre="urn::value">xyz</pre:elem>
</test>
{
"test": {
"pre:elem": {
"xmlns:pre": "urn::value",
"$": "xyz"
}
}
}
To handle namespace, you must give namespace_handling:yes in pre-inputs.
Custom Name Space Prefix namespace_handling:yes use_namespace_prefix:yes namespace_prefix:#
<?xml version="1.0" encoding="UTF-8"?>
<test>
<pre:elem xmlns:pre="urn::value">xyz</pre:elem>
</test>
{
"test": {
"pre:elem": {
"#xmlns:pre": "urn::value",
"$": "xyz"
}
}
}
To handle namespace, these 3 values are required in pre-input configurations. This should be configured all together as given in the example.
Array Representation : Compact array_representation : compact array_parent_child : options|option
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<options>
<option>1</option>
<option>2</option>
</options>
</xml>
{
"xml": {
"options": [1,2]
}
}
array_representation and array_parent_child must be used together to handle array representation. array_representation compact will create compact array as shown in the JSON example. array_representation and array_parent_child both should be configured together in pre-inputs to define array_representation. In case of multiple arrays in JSON, array_parent_child becomes a comma-separated list of parent|child
Array Representation : Expanded array_representation : expand array_parent_child : options|option
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<options>
<option>1</option>
<option>2</option>
</options>
</xml>
{
"xml": {
"options": {
"option": [1,2]
}
}
}
Expand array_representation is default array_representation. If we are not giving any configuration in pre-inputs it will by default treat as expand.
Recognize Number consider_number:true
<a>
<b>100</b>
<c>value</c>
</a>
{
"a": {
"b": 100,
"c": "value"
}
}
This feature is applicable for XML→JSON transformation only.
consider_number:false
<a>
<b>100</b>
<c>value</c>
</a>
{
"a": {
"b": "100",
"c": "value"
}
}
This feature is applicable for XML→JSON transformation only
Recognize Boolean consider_boolean:true
<a>
<b>true</b>
<c>value</c>
</a>
{
"a": {
"b": true,
"c": "value"
}
}
This feature is applicable for XML→JSON transformation only
consider_boolean:false
<a>
<b>true</b>
<c>value</c>
</a>
{
"a": {
"b": "true",
"c": "value"
}
}
This feature is applicable for XML→JSON transformation only