cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

PI 7.5 REST array conversion rule with different namespaces

0 Likes
2,370

Hello guys,

I'm trying to solve quite specific problem. I went through a lot of posts and KB's but I didn't found any helping result.

I have 1 node called "DATA" which must be handled in 2 different ways - in 1 node as single value, in other as array.

In attachment there is XML example, important part is that I made XML with 2 namespaces

and REST Result example how it should look like.

http://muh.com/Akeneo/SimpleTypes and http://muh.com/Akeneo/MultiTypes

XML example of the node's

<ns1:data xmlns:ns1 = "http://muh.com/Akeneo/SimpleTypes">C 2222</ns1:data>   <!---- no table

<ns2:data xmlns:ns2 = "http://muh.com/Akeneo/MultiTypes">A</ns2:data>         <!-- must be table

Definition of the REST Adapter

Result - which I want to achieve

{ 
  "node1": {"data": "C 2222"},
  "node2": {"data": ["A"]}
}

Result which I've got - ALL DATA nodes are mapped as array in both namespaces

{ 
  "node1": {"data": ["C 2222"]},
  "node2": {"data": ["A"]}
}

Question is if I understand namespaces in the REST channel correctly.

Do you have any idea if this task can be somehow solved on PI?

We have XI ADAPTER FRAMEWORK 7.50 - SP 20

Thank you very much for your help

Petr Hodbod

View Entire Topic
manoj_khavatkopp
Active Contributor
0 Likes

Hi Petr,

As far as i know, there is no way that we can have the same element i.e "data" in your case with one as an array and another one as an object with the rest adapter configuration. With the config you have maintained if you enable "NameSpace mapping" with no namespace defined (Jut enable that option don't provide any namespace/json prefix in that ) you will get output like below where the prefix will be part of the element name in the JSON.

{ 
  "node1": {"ns1.data": "C 2222"},
  "node2": {"ns2.data": ["A"]}
}

Thanks,

Manoj