Схема ввода DataMapper не читает всю полезную нагрузку XML - PullRequest
1 голос
/ 21 октября 2019

У меня есть полезная нагрузка xml, которая содержит повторение узлов, зависит от ответа. При загрузке входной схемы диаграмма показывает только первый случай в корневом элементе.

Я хочу, чтобы посредник DataMapper прочитал все события, обработал их и затем отправил результат клиенту вместо обработки толькопервый случай приветствуется.

Мой XML-ввод выглядит следующим образом:

<NVprotocol>
<CDMA>
  <id>1</id>
  <value>2</value>
</CDMA>
<CDMA>
  <id>5</id>
  <value>7</value>
</CDMA>
</NVprotocol>

Но DataMapper обрабатывает только первый узел со своими дочерними элементами.

Любая помощь, пожалуйста?

1 Ответ

0 голосов
/ 22 октября 2019

При загрузке входной схемы диаграмма показывает только первый вхождение в корневом элементе.

Даже если она показывает только первое вхождение, оно отобразит все вхождения всопоставление.

Я использую следующие входные и выходные файлы для создания сопоставления:

input.xml

<NVprotocol>
    <CDMA>
        <id>1</id>
        <value>2</value>
    </CDMA>
    <CDMA>
        <id>5</id>
        <value>7</value>
    </CDMA>
</NVprotocol>

output.json

{
    "NVprotocol": [
        {
            "CDMA": {
                "id": 1,
                "val": 2
            }
        },
                {
            "CDMA": {
                "id": 3,
                "val": 4
            }
        }
    ]
}

Отображение

xml to json mapping Просмотр в реальном времени Datamapper

enter image description here

После этого сохраните и экспортируйте это сопоставление данных в прокси или API с помощью опции Экспорт составного приложения .

Затем отправьте запрос со следующим телом.

<NVprotocol>
<CDMA>
  <id>1</id>
  <value>2</value>
</CDMA>
<CDMA>
  <id>5</id>
  <value>7</value>
</CDMA>
<CDMA>
  <id>5</id>
  <value>7</value>
</CDMA>
<CDMA>
  <id>5</id>
  <value>7</value>
</CDMA>
</NVprotocol>

Вы получите следующий ответ.

{
    "NVprotocol": [
        {
            "CDMA": {
                "id": 1,
                "val": 2
            }
        },
        {
            "CDMA": {
                "id": 5,
                "val": 7
            }
        },
        {
            "CDMA": {
                "id": 5,
                "val": 7
            }
        },
        {
            "CDMA": {
                "id": 5,
                "val": 7
            }
        }
    ]
}
...