.csv ファイルへの書き込み中に、(データの可用性に関係なく) オプションの XML 要素を常に出力する必要があるという要件があります。
XML ファイル形式
<entries>
<countryCode>123</countryCode>
<adminDataMap>
<testAccount>True</testAccount>
<code>11</code>
</adminDataMap>
<privateMap>
<email>abc@abc.com</email>
<cancelReason>Not interested</cancelReason>
</privateMap>
</entries>
ここで 'entries' ルート要素 'cancelReason'、'testAccount' はオプションの要素で、データが存在する場合にのみ使用できます。
つまり、これらの「オプション」フィールドを持つレコードもあれば、持たないレコードもあります。
これらすべての要素を抽出する XQuery を作成しました
let $entries := /root/entries
return
for $entry in $entries
return
<entries>
{
$entry/*,
$entry/privateMap/email,
$entry/privateMap/cancelReason,
$entry/adminDataMap/code,
$entry/adminDataMap/testAccount
}
</entries>
私の要件は、すべての必須要素とオプション要素を OUTPUT として抽出することです。つまり、出力メタデータは常に同じままです。オプションの「cancelReason」に値がない場合は、空白/null として入力されます [そのようなもの]
これを実現するために記述できる XQUERY のオプションを教えてください。