сопоставить один элемент схемы источника с несколькими элементами с атрибутом - PullRequest
0 голосов
/ 07 марта 2019

У меня есть source schema следующим образом:

Users
  Id
  Name
  Department

и destination schema следующим образом:

Employee
  Name
  Number
    number_type(attribute)

Мне нужно сделать следующее отображение

Name ---> Name
Id ---> Number (number_type = "Id")
Department_no  --> Number (number_type = "dept")

Мне нужно сопоставить оба Id and department number i.e. 2 elements to 1 element, т.е. Number in dest schema, но для обоих атрибутов значение должно быть разным.

Входные данные

<Users>
    <Id>123</Id>
    <Name>abc</Name>
    <Department_no>456</Department_no>
</Users>

Выходные данные:

<Employee>
    <Name>abc</Name>
    <Number number_type = "Id">123</Number>
    <Number number_type = "dept">456</Number>
</Employee>

Как я могу достичь в BizTalk или что может быть встроенным XSLT для того же?

1 Ответ

2 голосов
/ 07 марта 2019

У вас почти есть

Name ---> Name
Id ---> Number
Department  --> Number 

Затем также свяжите Id и Department с петлевым функтоидом, который переходит на Number

Плюс для выполнения атрибутов есть некоторые вещи, которые вы можете попробовать, например

Id ---> number_type 
Department -->  number_type

Но, кликнув по ссылкам, выберите «Копировать имя» вместо значения «Копировать текст».

BizTalk Map image

со входа

<ns0:Root xmlns:ns0="http://Scratch.SO55049939Input">
  <Users>
    <Id>Id_0</Id>
    <Name>Name_0</Name>
    <Department>Department_0</Department>
  </Users>
</ns0:Root>

Вы получите вывод

<ns0:Root xmlns:ns0="http://Scratch.SO55049939output">
    <Employee>
        <Name>Name_0</Name>
        <Number number_type="Id">Id_0</Number>
        <Number number_type="Department">Department_0</Number>
    </Employee>
</ns0:Root>
...