ENTMF 

XML GENERATE 文

XML GENERATE 文はデータを XML 形式に変換します。

一般的なフォーマット


*

構文規則

  1. identifier-1 は必ず英数字または各国のデータ項目です。identifier-1 は JUSTIFIED 句には記述されてはならず、関数識別子であってはなりません。
  2. identifier-1 は添え字を付けること、または参照変更ができます。
  3. identifier-1 は、identifier-2 または identifier-3 とオーバーラップしてはいけません。
  4. ID-1 は、生成された XML が以下の identifier-2 からのデータを含む場合、各国のデータ項目でなければなりません。
    1. あらゆる各国のデータ項目または DBCS データ項目
    2. DBCS 名を持つあらゆるデータ項目 (つまり、名前に DBCS 文字が含まれるデータ項目)
    3. DBCS 文字が含まれる英数字データ項目
  5. identifier-2 は関数識別子にしたり参照変更にしたりすることはできません。
  6. identifier-2 は添え字を付けることができます。
  7. identifier-2 は、identifier-1 または identifier-3 とオーバーラップしてはいけません。
  8. identifier-2 は RENAMES 句を指定してはいけません。
  9. identifier-2 によって指定され一般規則 5 に応じて無視されないすべてのデータ項目は、以下の条件を満たす必要があります。
    1. 各基本データ項目は、英字クラス、英数字クラス、数字クラス、または各国クラスのいずれかを持つか、索引データ項目である必要があります。つまり、基本データ項目は USAGE POINTER、USAGE FUNCTION-POINTER、USAGE PROCEDURE-POINTER または USAGE OBJECT REFERENCE 句を使用して記述することはできません。
    2. そのような基本データ項目が少なくとも 1 つ存在する必要があります。
    3. FILLER 以外の各データ名は、隣接した上位のグループ・データ項目内で固有である必要があります。
  10. identifier-3 は、そのピクチャ文字列にシンボル P なしに定義される、整数データ項目でなければなりません。
  11. identifier-3 は、identifier-1 または identifier-2 とオーバーラップしてはいけません。
  12. コード・ページは符号なしの整数データ項目または符号なしの整数リテラルでなければならず、有効なCCSID (coded character set identifier) を表す必要があります。
  13. identifier-4 と identifier-5 はカテゴリ英数字または各国のデータ項目を参照する必要があります。
  14. identifier-4 と identifier-5 は、identifier-1 または identifier-3 とオーバーラップしてはいけません。
  15. literal-4 と literal-5 はカテゴリ英数字または各国でなくてはならず、表意定数であってはなりません。

一般規則

  1. identifier-1 は生成された XML ドキュメントの受信領域です。
  2. identifier-1 が各国のデータ項目の場合、生成される XML ドキュメントは UTF-16 で符号化されます。
  3. identifier-1 は、生成される XML ドキュメントを含むのに十分な大きさでなくてはなりません。通常は identifier-2 内のデータ名 (1 つまたは複数) の長さに応じて、identifier-2 のサイズの 5 倍から 8 倍になります。identifier-1 が十分大きくないと、XML GENERATE 文の末尾にエラー状態が発生します。
  4. identifier-2 は、XML 形式に変換されるグループまたは基本のデータ項目です。
  5. identifier-2 によって指定される次のデータ項目は、XML GENERATE 文によって無視されます。
    1. 名前が付いていない基本のデータ項目または基本の FILLER データ項目
    2. SYNCHRONIZED 項目に挿入される遊びバイト
    3. REDEFINES 句に記述されるかそのような再定義項目に従属する、identifier-2 に従属するデータ項目
    4. RENAMES 句に記述され identifier-2 に従属するデータ項目
    5. すべてが無視される従属データを含んでいるグループ・データ項目
  6. identifier-2 内にある適格な基本データ項目ごとのコンテンツは、以下に示されるように文字フォーマットに変換されます。変換されたコンテンツは、要素の文字コンテンツとして XML マークアップに挿入されます。XML 要素名は identifier-2 内のデータ名から付けられます。選択した基本の項目を含んでいるグループ項目の名前は、親要素として維持されます。生成された XML を読みやすくするための余分な余白 (新たな行、改行など) は挿入されません。データ記述項からのデータ名に使われる大文字、小文字を厳密に使い分けた綴りは維持され、数字から始まるデータ名には下線のプレフィックスが付きます。
    注:データ記述項からのデータ名に使われる大文字、小文字を厳密に使い分けた綴りは、PRESERVECASE 指令を指定する場合のみ維持されます。
  7. 基本のデータ項目は、データ項目のタイプに応じて文字フォーマットに変換されます。
    1. 英文字、英数字、編集された英数字、DBCS、外部浮動小数点、各国、編集された数字の各データ項目は変換されません。
    2. COMPUTATIONAL-5 (COMP-5) バイナリ・データ項目以外の固定小数点データ項目は、次をともなう編集された数字データ項目に移行された場合のように変換されます。
      • 数字データ項目にあるのと同程度の数の整数位置、ただし少なくとも 1 つの整数位置をともなう。
      • 数字データ項目に少なくとも 1 つの小数桁位置がある場合、明示的な小数点。
      • 数字データ項目と同数の小数桁位置。
      • データ項目が符号付きの場合、先頭の '-' ピクチャ・シンボル。
    3. COMPUTATIONAL-5 (COMP-5) バイナリ・データ項目は、整数位置の数を除き他の固定小数点数データ項目と同じように変換されます。整数位置の数は、ピクチャ文字列にある「9」シンボルの数に応じて次のように計算されます。
      • データ項目に 1 個から 4 個の「9」ピクチャ・シンボルがある場合、5 から小数位の数を引いた数。
      • データ項目に 5 個から 9 個の「9」ピクチャ・シンボルがある場合、10 から小数位の数を引いた数。
      • データ項目に 10 個から 18 個の「9」ピクチャ・シンボルがある場合、20 から小数位の数を引いた数。
    4. 内部浮動小数点データ項目は、それらが次のようなデータ項目に移行した場合のように変換されます。
      • COMP-1 では、PICTURE -9.9(8)E+99 をともなう外部浮動小数点データ項目
      • COMP-2 では、PICTURE -9.9(17)E+99 をともなう外部浮動小数点データ項目
    5. 索引データ項目は、それらが宣言された USAGE COMP-5 PICTURE S9(9) の場合のように変換されます。
    6. identifier-1 が各国のデータ項目の場合、各国以外の値は各国のフォーマットに変換されます。
  8. どのような文字フォーマットへの変換が行われた場合も、その後に先頭と末尾の空白と先行ゼロが次のように解消されます。
    1. 符号付き数値から変換された値では、値が正の場合は先頭の空白が削除されます。
    2. 数字データ項目から変換された値では、先行するゼロが、(先頭のマイナス符号の後から) 実際にある小数点または暗黙の小数点の直前の桁 (ただしその桁を含まない) まで消去されます。小数点の後に続くゼロは維持されます。例:
      • -012.340 は -12.340 になります。
      • 0000.45 は 0.45 になります。
      • 0013 は 13 になります。
      • 0000 は 0 になります。
    3. 英文字、英数字、DBCS、および各国の各データ項目から得られる文字値では、対応するデータ項目が左 (デフォルト) 揃えか右揃えかに応じてそれぞれ後続または先頭の空白が削除されます。つまり、後続の空白は、JUSTIFIED 句を指定しない対応するデータ項目を持つ値から削除されます。また先頭の空白は、JUSTIFIED 句を指定するデータ項目を持つ値から削除されます。文字値が空白のみから構成される場合、トリミング終了後に 1 つの空白が残ります。
  9. 変換後のデータ項目に、XML コンテンツでは規則違反の文字が含まれる場合は、元のデータ値 (変換またはトリミング前のデータ項目にある値) が 16 進数で表され、プレフィックス hex. をともなう要素タグ名が正規のタグ名の代わりに使われます。例えば、実行時にデータ項目 My-Name に LOW-VALUES が含まれることが判明した場合、XML 要素タグ名 hex.My-Name が代わりに使用され、コンテンツはゼロのペアの文字列で表されます。
  10. 変換後のデータ項目に、次の 5 つのシンボルのいずれかのインスタンスが含まれる場合
    • & (アンパサンド)
    • ' (アポストロフィ)
    • > (大なり記号)
    • < (小なり記号)
    • " (引用符)

    そのシンボルはそれぞれ対応する XML の対象記号 &'><" に変換されます。

  11. identifier-1 が、生成された XML ドキュメントよりも長い場合、XML が生成される部分の identifier-1 のみが変更されます。identifier-1 の残り部分には、この XML GENERATE 文実行前に存在したデータが含まれています。そのデータへの参照を避けるには、identifier-1 を XML GENERATE 文の前のスペースに初期化するか、または COUNT IN 句を指定します。
  12. COUNT IN 句を指定すると、生成された XML 文字位置のカウント (XML GENERATE 文の実行後) が identifier-3 に含まれます。identifier-1 (受信側) が各国のデータ項目の場合、そのカウントは各国の文字位置 (UTF-16 文字符号化ユニット) でのカウントになります。それ以外の場合、カウントはバイト単位です。
  13. ENCODING 句はドキュメンタリのみです。
  14. XML-DECLARATION 句を指定すると、生成されるドキュメントは XML バージョン情報を含む XML 宣言とエンコーディング宣言から始まります。identifier-1 が各国のカテゴリの場合、エンコーディング宣言は UTF-16 (符号化="UTF-16") の値をともないます。XML-DECLARATION 句を省略すると、生成される XML ドキュメントには XML 宣言が含まれません。
  15. ATTRIBUTES 句を指定すると、生成されたドキュメントに含まれる適格な項目はそれぞれ XML 要素の属性として表現され、その適格な項目に隣接した上位のデータ項目に (XML 要素の子要素としてでなく) 対応します。データ項目が適格であるためには、それが基本データ項目であり、FILLER 以外の名前を持たなくてはならず、またデータ記述項に OCCURS 句を指定してはなりません。
  16. NAMESPACE 句は、生成された XML ドキュメントのネームスペースを識別します。NAMESPACE 句を指定しない、または identifier-4 が長さゼロか空白のみを含む場合、XML GENERATE 文によって生成される XML ドキュメントの要素名はどのネームスペースにもありません。
  17. NAMESPACE-PREFIX 句はプレフィックスを識別して、生成された XML ドキュメントの各要素の開始タグと終了タグを修飾します。
    • NAMESPACE-PREFIX 句を指定しないか、または identifier-5 が長さゼロあるいは空白のみを含む場合、NAMESPACE 句はドキュメントのデフォルトのネームスペースを指定します。この場合、ルート要素で宣言されたネームスペースが、そのルート要素の名前を含むドキュメントの各要素名にデフォルトで適用されます。
    • NAMESPACE-PREFIX 句を指定し、identifier-5 が長さゼロでなく中身が空白のみでない場合、生成されるドキュメントの各要素の開始タグと終了タグは指定されたプレフィックスによって修飾されます。XML GENERATE 文を実行するとき、プレフィックスは有効な XML 名 (ただしコロン (:) はない) でなければなりません。プレフィックスには後続の空白があってもよく、その空白は使用の前に削除されます。
  18. XML ドキュメントの生成中にエラーが発生するとき、例外状態が存在します。例えば、identifier-1 の大きさが生成された XML ドキュメントを含むのに十分でない場合などです。この場合、ドキュメントの生成が停止し、受信側 (identifier-1) のコンテンツは未定義になります。COUNT IN 句を指定すると、identifier-3 には生成された文字位置の数が含まれ、その範囲は 0 から identifier-1 の長さになります。ON EXCEPTION 句を指定すると、制御が imperative-statement-1 に転送されます。ON EXCEPTION 句を指定しないと、NOT ON EXCEPTION 句 (もしあれば) が無視され、制御が XML GENERATE 文の末尾に転送されます。特殊レジスタ XML-CODE には、例外コードが含まれます。
  19. XML ドキュメントの生成中に例外状態が発生しなければ、制御が imperative-statement-2 に渡されます (指定されている場合)。例外状態が発生すると、XML GENERATE 文の末尾に渡されます。ON EXCEPTION 句は (指定されている場合) 無視されます。XML GENERATE 文の実行後に、特殊レジスタ XML-CODE にはゼロが含まれます。