countprefix

countprefix オプションは、 サブフィールド配列について XML-INTO 命令で設定された要素の数を受け取ることができるサブフィールドの接頭部を指定します。 カウント・サブフィールドの名前の形式は、countprefix の値に配列名を付加したものです。 例えば、データ構造にサブフィールド配列 meeting.attendees があって、 countprefix=num が指定された場合、XML-INTO 命令は、XML-INTO 命令によって設定された、配列 meeting.attendees の要素の実際数を meeting.numattendees に設定します。 以下の countprefix オプションの説明では、 サブフィールド meeting.numattendees を countprefix サブフィールド、meeting.attendees をカウントされるサブフィールド と呼びます。

countprefix オプションの処理は、データ構造またはデータ構造サブフィールドの XML データが構文解析された後に行われます。

注:
  1. countprefix サブフィールドは数値でなければなりません。また、これはスカラーでなければなりません。 つまり、配列またはデータ構造にすることはできません。 サブフィールドが countprefix の名前を持つが、数値でもスカラーでもない場合、 そのサブフィールドには通常の処理が行われます。これは、countprefix サブフィールドと見なされません。
  2. カウントされるサブフィールドには、任意のタイプのサブフィールドが可能です。配列である必要はありません。 カウントされるサブフィールドが配列でない場合、その countprefix サブフィールドには、 そのサブフィールドを設定する XML データがなければ 0 (ゼロ)、あれば 1 が設定されます。
  3. サブフィールドが countprefix サブフィールドによってカウントされる場合、そのサブフィールドについて allowmissing オプションは考慮されません。 countprefix サブフィールドによってカウントされるすべてのサブフィールドに、オプション allowmissing=yes が暗黙指定されます。
  4. サブフィールドの XML データが多すぎる場合、countprefix サブフィールドは、 XML-INTO 命令で実際に設定された配列要素の数のみを反映します。 例えば、配列 arr に 10 個の要素があって、11 個の要素の XML データがある場合、 arr の countprefix サブフィールドの値は 10 になります。
  5. XML-INTO 命令がエラーで終了した場合、XML-INTO 命令で更新された RPG サブフィールドの正確な数を countprefix サブフィールドが反映していない可能性があります。 countprefix の処理は、それぞれのデータ構造またはデータ構造サブフィールドの XML データが構文解析された後に行われます。 構文解析中、または countprefix の処理中にエラーが発生した場合、countprefix の処理は完了されません。
  6. countprefix サブフィールドは、カウント可能とみなされません。 例えば、countprefix=num_ が指定されていて、データ構造にサブフィールド arr、num_arr、および num_num_arr がある場合、 num_arr は配列 arr の countprefix サブフィールドと見なされますが、num_num_arr は num_arr の countprefix サブフィールドと見なされません。
  7. countprefix サブフィールドを XML データで明示的に設定することはできません。 countprefix サブフィールドを設定する XML 属性または XML 要素は余分と見なされます。
  8. countprefix サブフィールドは、datasubf サブフィールドと同じにできません。 例えば、countprefix=num_ が指定されていて、データ構造にサブフィールド arr と num_arr がある場合、num_arr が countprefix サブフィールドです。 このデータ構造にオプション datasubf=num_arr も指定することはできません。