モデル ファイル名と XML データ ファイルの間における競合

この COBOL システムでは、コンパイラによって作成されるモデル ファイルの名前は、program-name.xml の形式になります。競合を避けるために、XML データ ファイルがこの名前と同じ名前にならないようにする必要があります。

この COBOL システムでは、ModelFileName#DataName パラメーターにハッシュが含まれていない場合、常にモデル データ名として扱われ、モデル ファイル名は、XML 拡張のエクスポート文またはインポート文を実行したプログラム (またはその呼び出し元のいずれか) の program-name.xml であると見なされます。このことを念頭に置いて、モデル ファイル名を明示的に設定していない場合には、XML 拡張のインポート文およびエクスポート文を実行する際に XML データ ファイルが COBOL プログラムと同じ名前にならないようにする必要があります。

解決方法:

モデル ファイル名と XML データ ファイル名の競合を避けるには、次のいずれかを実行します。

  • インポート文およびエクスポート文の DocumentName パラメーターを COBOL プログラム名以外の名前に設定します。

  • XML データ ファイル名をプログラム名と同じにしておく必要がある場合は、コンパイル後にモデル ファイル名を変更し、ハッシュの前にある ModelFileDataName パラメーターの値に新しい名前を指定して、ModelDataName と区別されるようにします。

2 番目の方法を使用する場合は、この手順が必ず実行されるように、名前の変更コマンドを含むスクリプトを使用してコンパイルを行うことをお勧めします。

注:

RM/COBOL では、環境変数 RM_MISSING_HASH を使用して、ハッシュが省略されている場合の ModelFileDataName パラメーターの意味を指定できます。この COBOL システムでは、この環境変数はサポートされていません。

また、RM/COBOL v12 以降では、オブジェクト プログラム ファイルにモデルが埋め込まれているため、通常、モデル ファイルは使用されません。この COBOL システムは、常にモデル ファイルが使用される RM/COBOL v11 以前に似ています。したがって、XML 拡張を使用するアプリケーションでモデル ファイルを配布する場合には注意する必要があります。