OSB フローで、特定の XQuery 変換を実行する必要があります。
入力は次の形式です。
<OBJECT_1>
<item> // multiplicy : *
<MONTH>
<INFO_11/>
<INFO_12/>
</item>
</OBJECT_1>
<OBJECT_2>
<item> // multiplicy : *
<INFO_21/>
<INFO_22/>
<MONTH/>
</item>
</OBJECT_2>
ターゲット出力の構造は次のとおりです。
<object1> // multiplicy : *
<month>
<info11/>
<info12/>
<object2> // multiplicy : *
<info21/>
<info22/>
</object2>
</object1>
現時点では、私の xquery は次のようになります。
declare function xf:myTransformation($z_SOURCE1 as element(ns1:SOURCE))
as element(ns0:targetService) {
<ns0:targetService>
<myFlow>
{
for $item in $z_SOURCE1/ns1:OBJECT_1/ns1:item
return
<object1>
{
for $MONTH in $item/ns1:MONTH
return
<month>{ data($MONTH) }</month>
}
{
for $INFO_11 in $item/ns1:INFO_11
return
<info11>{ data($INFO_11) }</info11>
}
{
for $INFO_12 in $item/ns1:INFO_12
return
<info12>{ data($INFO_12) }</info12>
}
{
for $item0 in $z_SOURCE1/ns1:OBJECT_2/ns1:item
return
{
for $INFO_21 in $item0/ns1:INFO_21
return
<info21>{ data($INFO_21) }</info21>
}
{
for $INFO_22 in $item0/ns1:INFO_22
return
<info21>{ data($INFO_22) }</info22>
}
</object1>
}
</myFlow>
</ns0:targetService>
};
ご覧のとおり、OBJECT_1 と OBJECT_2 の間に「一致」はありません...
object1 の月のキー (SQL :) に一致するオブジェクトを OBJECT_2 リストで「見つける」にはどうすればよいOBJECT_1.MONTH=OBJECT_2.MONTH
ですか? OBJECT_1 の構築中に、必要なキーを見つけるために OBJECT_2 リストに移動できますか?