変更の始まり

サブフィールド配列に対してデータ数が不十分な場合の 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>
  1. 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'
  2. それでも、オプション 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'
  3. 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 = '          '
  4. データ構造 empInfo4 に対してオプション allowmissing が指定されていません。 RPG 配列に対して十分な数の emp XML 要素が XML 文書に 含まれていないため、XML-INTO 命令は状況コード 00353 で失敗します。
      xml-into(e) empInfo4 %XML('emp.xml' :
                             'doc=file path=employees');
      // %error = *on
      // %status = 353
変更の終わり