例 11 欠如している中間親名があるファイルのインポート

この COBOL プログラムは、欠如している中間親名がある XML ドキュメントを COBOL データ形式に変換し、COBOL データ項目に格納する方法を示します(欠如している中間親名に対処するこの機能は、Web サービスなどのフラット化されたデータ項目を扱うプログラムの複雑さを軽減するために用意されています)。COBOL プログラムおよび XML ドキュメント ファイルは、同じ基本項目を含んでいる場合がありますが、同一の構造ではないこともあります。XML 拡張は、COBOL データ項目と XML ドキュメント構造との間に 1 対 1 の対応関係が存在しないような場合に対処する方法を提供します。欠如している中間親名がある定義済み XML ドキュメントを COBOL プログラムでインポートする場合において、次の状況を考えてみましょう。

欠如している中間親名は、中間レベルの COBOL グループ名に対応する XML 要素名です。たとえば、次の COBOL データ項目では、XML 要素名 address-3 は中間親名です。
 01 MY-ADDRESS.
 02 ADDRESS-1 PIC X(64) VALUE "101 Main St.".
 02 ADDRESS-2 PIC X(64) VALUE "Apt 2B".
 02 ADDRESS-3.
 03 CITY PIC X(32) VALUE "Smallville".
 03 STATE PIC X(2) VALUE "KS".
対応する XML ドキュメントの構造は次のようになります。
<my-address> <address-1>101 Main St.</address-1>
             <address-2>Apt 2B</address-2>
             <address-3><city>Smallville</city> 
                         <state>KS</state> </address-3> 
</my-address>

あいまいさを解決するために中間親名が必要でない場合には、入力時に XML 拡張によってドキュメント構造が再構築されます。たとえば、入力 XML ドキュメントに次の情報が含まれている場合、上記のドキュメントと互換性のある XML ドキュメントを生成するために address-3 および my-address の中間親名が追加されます。

<root> <address-1>101 Main St.</address-1> <address-2>Apt 2B</address-2>
       <city>Smallville</city> <state>KS</state>
</root>

例 11 では、この状況をより詳しく示します。

この例では、次の XML 文を使用します。