2023년 4월 9일 일요일

Receiver REST어댑터 네임스페이스 매핑 사용방법

JSON데이터 안에 urn:test:1.0:User로 되어있는 네임페이스를 XML로 매핑 변환하거나 반대로 XML → JSON으로 REST 어댑터 안에 옵션을 통해 변환할수 있는 방법에 대해 정리하였습니다.
실제로 사용해보진 않았지만 관련 사이트 내용들을 보면 이런 데이터에 대해 일반적으로 처리가 가능해 보입니다.

XML/JSON 네임스페이스 매핑 옵션은 REST Receiver 어댑터 > Data Format > Convert XML Payload to JSON 체크 > Enable Namespace Mapping 체크를 하면 보이는데 네임스페이스,배열,데이터타입 등에 대해 자동변환은 지원은 안되는걸로 확인이 됩니다.

해당 옵션을 사용하기 전에 
SimpleTools의 JSON/XML 변환기를 통해 JSON과 XML 간 변화되는 데이터
를 미리 보시는것도 도움이 되실것 같습니다.
 
하나 예를 들어
여러 데이터 타입과 네임스페이스를 포함한 아래의 JSON데이터를 
{
 "root": [
  "urn:test:params:test:schemas:core:1.0:User",
  {"number" : 2023},
  {"string" : "aaa"},
  {"boolean" : false},
  {"object" : {"AAA":"aaa","BBB":"bbb","CCC":"ccc"}},
  {"array" : ["aa","bb","cc"]},
  {"null" : null}
 ],
 "string1" : "bbb",
 "urn:test:params:test:schemas:extension:1.0:User":{
  "number1" : "0329",
  "boolean1" : true
 }
}


위 변환기를 통해 XML로 변환를 하면 아래와 같이 확인이 됩니다.
⁠<?xml version="1.0" encoding="UTF-8"?>
<root>
 <root>
  <item>urn:test:params:test:schemas:core:1.0:User</item>
  <list>
   <number>2023</number>
  </list>
  <list>
   <string>aaa</string>
  </list>
  <list>
   <boolean/>
  </list>
  <list>
   <object>
    <aaa>aaa</aaa>
    <bbb>bbb</bbb>
    <ccc>ccc</ccc>
   </object>
  </list>
  <list>
   <array>
    <item>aa</item>
    <item>bb</item>
    <item>cc</item>
   </array>
  </list>
  <list>
   <null/>
  </list>
 </root>
 <string1>bbb</string1>
 <urntestparamstestschemasextension.0user>
  <number1>0329</number1>
  <boolean1>1</boolean1>
 </<urntestparamstestschemasextension.0user>
</root>

이상하게 변환이 되긴 했는데 REST어댑터 옵션을 통해서는 다른 결과를 보실수 있을것 같은데 손이 많이 갈것 같습니다.

참고 노츠
2574843 - Missing namespace prefixes when converting JSON to XML
2175218 - New Feature: Enhanced XML/JSON conversion capabilities

댓글 없음:

댓글 쓰기

최근글

9월 태안~천안 아이와 3박4일 가족 여행지