У меня есть эти данные (все элементы необязательны):
<data>
<optionalElement1>...</optionalElement1>
<optionalElement2>...</optionalElement2>
<optionalElement3>...</optionalElement3>
</data>
Мне нужно сопоставить это с другой схемой (требуются все элементы):
<request>
<Element1>...</Element1>
<Element2>...</Element2>
<Element3>...</Element3>
</request>
Поскольку элементы в исходном запросе являются необязательными, отображение будет
генерировать только соответствующие элементы для первоначально включенного
элементы. Но проверка запроса не удастся.
Пример:
<data>
<optionalElement3>
<value1>1</value1>
<value2>2</value2>
</optionalElement3>
</data>
будет сопоставлен с
<request>
<Element3>
<subelement1>1</subelement1>
<subelement2>2</subelement2>
</Element3>
</request>
И проверка не удастся, потому что мне не хватает Элемента1 и Элемента2.
Ответ должен быть (я думаю):
<request>
<Element1 xsi:nil="true" />
<Element2 xsi:nil="true" />
<Element3>
<subelement1>1</subelement1>
<subelement2>2<subelement2>
</Element3>
</request>
Как я могу сделать это в отображении? Как я могу убедиться, что элемент
создано в выходном сообщении?
И, кстати, если субэлемента нет (скажем,
«data / optionElement1 / value1», как я могу убедиться, что пункт назначения
подэлемент "request / Element1 / subelement1" создан?