サブフィールド配列に対して余分な要素がある場合の allowextra オプションの例
以下の例の中では次の定義が使用されています。
D employee DS QUALIFIED
D name 10A VARYING
D type 10A
D empInfo2 DS QUALIFIED
D emp LIKEDS(employee)
D DIM(2)
D empInfoAway DS QUALIFIED
D emp LIKEDS(employee)
D DIM(2)
D away 10A DIM(2)
ファイル emp.xml に以下の行が含まれていると想定します。
<employees>
<emp><name>Jack</name><type>Normal</type></emp>
<emp><name>Mary</name><type>Manager</type></emp>
<emp><name>Sally</name><type>Normal</type></emp>
</employees>
- XML 文書には 3 つの emp XML 要素
があり、RPG emp 配列には 2 つしか要素がないため、データ構造 empInfo2 には
オプション allowextra=yes を指定する必要があります。
xml-into empInfo2 %XML('emp.xml' : 'doc=file allowextra=yes path=employees'); // empInfo2.emp(1) .name = 'Jack' .type = 'Normal' // empInfo2.emp(2) .name = 'Mary' .type = 'Manager' - データ構造 empInfo2 に対してオプション allowextra が指定されていません。
XML 文書に含まれる "emp" 要素の数が RPG 配列には多すぎるため、
XML-INTO 命令は状況コード 00353 で失敗します。
xml-into(e) empInfo2 %XML('emp.xml' : 'doc=file path=employees'); // %error = *on // %status = 353 - 構造 empInfoAway には 2 つの emp 要素
と 2 つの away 要素が必要です。XML 文書に含まれているのは 3 つの emp 要素
とゼロ個の away 要素です。オプション allowextra=yes allowmissing=yes が
指定されているため、emp および away XML 要素
の数がどのような数でも、命令は成功します。余分な emp 要素および欠落している away 要素
は無視されます。
xml-into empInfoAway %XML('emp.xml' : 'allowextra=yes ' + 'allowmissing=yes ' + 'path=employees ' + 'doc=file'); // empInfoSite.emp(1) .name = 'Jack' .type = 'Normal' // empInfoSite.emp(2) .name = 'Mary' .type = 'Manager' // empInfoSite.away(1) = ' ' // empInfoSite.away(2) = ' '
