私はこのデータを持っています(すべての要素はオプションです):
<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>
Element1とElement2がないため、検証は失敗します。応答は(私が思うに)次のようになります。
<request>
<Element1 xsi:nil="true" />
<Element2 xsi:nil="true" />
<Element3>
<subelement1>1</subelement1>
<subelement2>2<subelement2>
</Element3>
</request>
マッピングでこれを行うにはどうすればよいですか? 出力メッセージで要素が確実に作成されるようにするにはどうすればよいですか?
ところで、サブ要素が存在しない場合 (「data/optionalElement1/value1」としましょう)、宛先サブ要素「request/Element1/subelement1」が作成されていることを確認するにはどうすればよいですか?