COBOL データを XML に変換するには、以下の例のように、XML GENERATE ステートメントを使用します。
XML GENERATE XML-OUTPUT FROM SOURCE-REC COUNT IN XML-CHAR-COUNT ON EXCEPTION DISPLAY 'XML generation error ' XML-CODE STOP RUN NOT ON EXCEPTION DISPLAY 'XML document was successfully generated.' END-XML
XML GENERATE ステートメントで、XML 出力を受け取るデータ項目 (この例では XML-OUTPUT) を最初に示します。生成された XML 出力を含めるのに十分な大きさになるようにデータ項目を定義します。一般には、COBOL ソース・データのデータ名の長さに応じて、そのデータ・サイズの 5 倍から 8 倍にします。
DATA DIVISION では、受取 ID を英数字 (英数字グループ項目またはカテゴリー英数字の基本項目のいずれか)、または国別 (カテゴリー国別の基本項目) として宣言することができます。
XML 出力に 以下のいずれかの特性を持つ COBOL ソース・レコードのデータを含む場合は、受取 ID を国別にする必要があります。
次に、XML 形式に変換されるソース・データ項目 (この例では SOURCE-REC) を示します。このソース・データ項目は、英数字グループ項目、または英数字クラスあるいは国別クラスの基本データ項目のいずれかにすることができます。 そのデータ項目のデータ記述では RENAMES 文節を指定しないでください。
ソース・データ項目が英数字グループ項目の場合、そのソース・データ項目は、基本項目ではなく、グループ項目として処理されます。ソース・データ項目に従属するグループはすべて、グループ項目としても処理されます。
一部の COBOL データ項目は XML に変換されずに、無視されます。無視されるのは、XML に変換する英数字グループ項目の従属データ項目が以下の場合です。
以下の XML を生成する場合は、ソース・データ項目内のこれらの項目も無視されます。
XML を生成する場合は、無視されない基本データ項目が少なくとも 1 つ必要です。無視されないデータ項目の場合は、XML に変換される ID を DATA DIVISION で宣言するときに、その ID が以下の条件を満たしていることを確認してください。
すなわち、どの基本データ項目も USAGE POINTER 句または USAGE PROCEDURE-POINTER 句では記述されません。
XML 宣言は生成されません。生成された XML を読みやすくするための空白文字 (例えば、改行やインデント) は挿入されません。
必要であれば、COUNT IN 句をコーディングして、XML 出力の生成中に充てんされた XML 文字位置の数を取得することができます。カウント・フィールドを、PICTURE ストリング内の記号 P を持たない整数データ項目として宣言します。カウント・フィールドと参照変更を使用すると、受取データ項目のうちの、生成された XML 出力を含む部分だけを取得することができます。例えば、XML-OUTPUT(1:XML-CHAR-COUNT) は、XML-OUTPUT の最初の XML-CHAR-COUNT 文字位置を参照しています。
さらに、以下の句のいずれかまたは両方を指定して、XML 文書の生成後に制御を受け取ることもできます。
XML GENERATE ステートメントを明示範囲終了符号 END-XML を使用して終了することができます。条件ステートメントで ON EXCEPTION 句または NOT ON EXCEPTION 句を持つ XML GENERATE ステートメントをネストする場合は、END-XML をコーディングします。
XML 生成は、COBOL ソース・レコードが XML に変換されてしまうか、エラーが発生するまで続きます。エラーが発生した場合、結果は以下のようになります。
XML の生成中にエラーが発生しなかった場合は、特殊レジスター XML-CODE にゼロが含まれ、制御は NOT ON EXCEPTION 句に渡されるか (そのように指定されている場合)、そのように指定されていない場合は、XML GENERATE ステートメントの終わりに渡されます。
関連作業
生成された XML 出力のエンコードの制御
XML 出力の生成中のエラーの処理
関連リファレンス
『データのクラスおよびカテゴリー』(「ILE COBOL 言語解説書」)
『XML GENERATE ステートメント』(「ILE COBOL 言語解説書」)
『XML GENERATE の操作』 (「ILE COBOL 言語解説書」)
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.