状態管理文

XML 文の呼び出しによって制御できる状態には次のようなものがあります。

初期化および終了。他の XML 拡張文の呼び出しを実行する前に、XML INITIALIZE を呼び出す必要があります(XML INITIALIZE が呼び出されていないと、後続の呼び出し (XML EXPORT FILE の呼び出しなど) が失敗する)。同様に、

配列の空のオカレンスは、数値項目の値がゼロで、数値以外の項目の値がすべて空白文字に相当するオカレンスとして定義されます。これはデフォルトの状態で、XML DISABLE ALL-OCCURRENCES を呼び出した場合と同じです。XML ENABLE ALL-OCCURRENCES を呼び出すと、すべてのオカレンスを強制的に出力することができます。

  • COBOL 属性。XML EXPORT FILE 文や XML EXPORT TEXT 文によって生成される各要素には、その要素を記述する一連の COBOL 属性があります。

    デフォルトの状態では、これらの属性は出力されません。しかし、後続のアクティビティ (XSLT スタイルシート変換など) でこれらの属性へのアクセスが必要になる場合もあります (特に、長さと添え字は後続のアクティビティにとって重要となることがよくある)。XML DISABLE ATTRIBUTES を使用すると、属性が書き込まれなくなります (デフォルト)。XML ENABLE ATTRIBUTES を使用すると、これらの属性が強制的に書き込まれます。

  • ドキュメントのキャッシュ。XSLT スタイルシート、テンプレート、スキーマなどの XML ドキュメントは、通常、本稼動用のアプリケーションが使用されている間は静的であると考えられます。つまり、これらのドキュメントは、アプリケーションが開発されたときに生成され、アプリケーションが変更されるまで変更されません。

    XML 拡張では、パフォーマンスを最適化するために、XSLT スタイルシート、テンプレート、またはスキーマが読み込まれると、そのドキュメントが無期限にキャッシュされます (メモリに保持される)。これがデフォルトの動作です。ただし、このデフォルトの動作でも、キャッシュ内のドキュメントがメモリからフラッシュされることがあります。この状況は、キャッシュがいっぱいになっているときに、既にキャッシュに含まれている以外の XSLT スタイルシート、テンプレート、またはスキーマ ドキュメントが現在の操作で必要になると発生します。

    XSLT スタイルシート、テンプレート、またはスキーマを動的に生成する場合は、キャッシュを有効にするかどうかを選択できます。XML ENABLE CACHE を実行すると、ドキュメントのキャッシュが有効になります (デフォルトの動作)。XML DISABLE CACHE を実行すると、キャッシュが無効になります。この場合、すべてのドキュメントが、参照されるたびに強制的にロードされます。XML FLUSH CACHE を実行すると、すべてのドキュメントおよびローカル メモリがキャッシュからフラッシュされます。キャッシュの状態は変わりません (キャッシュが有効な場合は有効のまま)。実行するとキャッシュの内容がフラッシュされる文は、XML INITIALIZEXML ENABLE CACHEXML DISABLE CACHEXML FLUSH CACHE、および XML TERMINATE です。XML ENABLE CACHEXML DISABLE CACHE、または XML FLUSH CACHE を実行すると、ローカル メモリもフラッシュされます。

    詳細については、「XML 拡張でのメモリ管理」を参照してください。

  • フラグ。XML EXPORT FILEXML EXPORT TEXTXML IMPORT FILEXML IMPORT TEXT の各文によって実行されるデータ変換では、これらの変換を実行するためにライブラリ (XML 拡張ランタイム実行可能ファイルに組み込まれている) が使用されます。デフォルトで設定されるフラグは、PF_TRAILING_SPACES、PF_LEADING_SPACES、PF_LEADING_MINUS、および PF_ROUNDED です。

    注:これらのフラグは C のマクロです。大文字と小文字が区別され、アンダースコア文字を使用する必要があります。

    XML GET FLAGS および XML SET FLAGS を使用すると、このデフォルト設定を変更できます。

  • 内部の文字エンコード。COBOL プログラムの英数字のデータ要素の文字は、通常、基礎となるオペレーティング システムの規則を使用してエンコードされます。その同じデータ項目を UTF-8 エンコーディングでエンコードすることが望ましい場合もあります(UTF-8 は Unicode を表現するエンコード形式の 1 つ)。XML SET ENCODING を使用すると、ローカルのエンコード形式を UTF-8 に切り替えることができます。

    注:UNIX および Windows の両方の XML 拡張で、要素の内容のメモリ上の表現に UTF-8 エンコーディングを使用できます。UTF-8 でエンコードされたデータを他のプロセスに渡す COBOL アプリケーションで便利です。XML ドキュメントは、通常は Unicode でエンコードされます。XML 拡張では、常に UTF-8 データが生成されます。詳細については、「COBOL と文字エンコード」および「XML と文字エンコード」を参照してください。
  • トレース。XML TRACE 文を使用すると、指定したファイルにトレース情報を生成できます。
  • スタイルシートのパラメーター。スタイルシートへのパラメーターの受け渡しは、XML SET XSL-PARAMETERS 文および XML CLEAR XSL-PARAMETERS 文で制御できます。