サブフィールド配列に対してデータ数が不十分な場合の allowmissing オプションの例
以下の例の中では次の定義が使用されています。
D employee DS QUALIFIED
D name 10A VARYING
D type 10A
D empInfo3 DS QUALIFIED
D emp LIKEDS(employee)
D DIM(3)
D empInfo2 DS QUALIFIED
D emp LIKEDS(employee)
D DIM(2)
D empInfo4 DS QUALIFIED
D emp LIKEDS(employee)
D DIM(4)
ファイル 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>
- empInfo3 データ構造には、3 つの要素を持つ配列 emp が
あります。XML 文書にも 3 つの emp XML 要素があるため、
allowmissing オプションは必要ありません。XML 文書がデータ構造と完全に一致するため、デフォルト
の allowmissing=no を使用できます。
xml-into empInfo3 %XML('emp.xml' : 'doc=file path=employees'); // empInfo3.emp(1) .name = 'Jack' .type = 'Normal' // empInfo3.emp(2) .name = 'Mary' .type = 'Manager' // empInfo3.emp(3) .name = 'Sally' .type = 'Normal' - それでも、オプション allowmissing=no を指定してもかまいません。
xml-into empInfo3 %XML('emp.xml' : 'doc=file ' + 'allowmissing=no path=employees'); // empInfo3.emp(1) .name = 'Jack' .type = 'Normal' // empInfo3.emp(2) .name = 'Mary' .type = 'Manager' // empInfo3.emp(3) .name = 'Sally' .type = 'Normal' - XML 文書には 3 つの emp XML 要素しかなく、
RPG emp 配列には 4 つの要素があるため、
データ構造 empInfo4 にはオプション allowmissing=yes を指定する必要があります。
xml-into empInfo4 %XML('emp.xml' : 'doc=file ' + 'allowmissing=yes path=employees'); // empInfo4.emp(1) .name = 'Jack' .type = 'Normal ' // empInfo4.emp(2) .name = 'Mary' .type = 'Manager ' // empInfo4.emp(3) .name = 'Sally' .type = 'Normal ' // empInfo4.emp(4) .name = '' .type = ' ' - データ構造 empInfo4 に対してオプション allowmissing が指定されていません。
RPG 配列に対して十分な数の emp XML 要素が XML 文書に
含まれていないため、XML-INTO 命令は状況コード 00353 で失敗します。
xml-into(e) empInfo4 %XML('emp.xml' : 'doc=file path=employees'); // %error = *on // %status = 353
