REPLACE 文の考慮事項

コピーブック lixmlall.cpy には、XML 文を定義する REPLACE 文が含まれています。COBOL の REPLACE 文は、レキシカルに先行するすべての REPLACE 文をオーバーライドします。したがって、ユーザーのプログラムに REPLACE 文が含まれていると、lixmlall.cpy ファイルを使用できない可能性があります。lixmlall.cpy ファイルによってコピーされる lixmlrpl.cpy コピーブックが XML 拡張に含まれているのはそのためです。lixmlrpl.cpy ファイルには、XML 文を定義するために必要な REPLACE 文のオペランドが含まれていますが、REPLACE 文そのものは含まれていません。そのため、次のように、ユーザーの REPLACE 文に lixmlrpl.cpy をコピーして使用することができます。
REPLACE
 *> include user's replacements here
 COPY "lixmlrpl.cpy". *> define XML statements
 . *> end of combined REPLACE statement
COPY "lixmldef.cpy". *> XML data definitions

これにより、lixmlall.cpy ファイルをソース プログラムにコピーする必要がなくなります。

注:ソース プログラムに複数の REPLACE 文がある場合は、XML 文に先行する各 REPLACE 文に lixmlrpl.cpy ファイルをコピーして、置換用の文が保持されるようにする必要があります。
InstantSQL 製品の lisqlall.cpy というコピーブックには、SQL 文を定義する REPLACE 文が含まれています。InstantSQL を XML 拡張とともに使用する場合は、lixmlall.cpy および lisqlall.cpy のいずれのコピーブックも使用しないでください。代わりに、次の内容を含むコピーブックを (isqlxml.cpy などの名前を使用して) 作成します。
REPLACE
 *> optionally include user's replacements
 COPY "lisqlrpl.cpy". *> define SQL statements
 COPY "lixmlrpl.cpy". *> define XML statements
 . *> end of combined REPLACE statement
COPY "lisqldef.cpy". *> SQL data definitions
COPY "lixmldef.cpy". *> XML data definitions

このコピーブックを lixmlall.cpy および lisqlall.cpy の代わりに使用します。