2.10.1 XML型バッファについて

XMLバッファを使用すると、Oracle TuxedoアプリケーションでXMLを使用して、アプリケーション内やアプリケーション間でデータを交換できるようになります。Oracle Tuxedoアプリケーションでは、単純XML型バッファの送受信や、それらのバッファを適切なサーバーにルーティングできます。解析など、XMLドキュメントのすべての処理ロジックはアプリケーション側にあります。

XMLドキュメントは、次の要素から構成されます。

  • ドキュメントのテキストをエンコードした文字の並び
  • ドキュメントの論理構造の記述と、その構造に関する情報

XML型バッファのプログラミング・モデルは、CARRAY型バッファのモデルと類似しています。tpalloc()関数を使用して、バッファの長さを指定する必要があります。最大4 GBのXML文書がサポートされます。

イベント処理で行われるフォーマット処理とフィルタリングは、STRING型バッファが使用されている場合はサポートされますが、XML型バッファではサポートされません。そのため、XML型バッファのバッファ・タイプ・スイッチ内の_tmfilter関数と_tmformat関数のポインタは、NULLに設定されます。

Oracle TuxedoシステムのXMLパーサーは、次の操作を行います。

  • エンコードされた文字の自動検出
  • 文字コードの変換
  • データ要素の内容と属性値の検出
  • データ型の変換

XML型バッファでは、データ依存型ルーティングがサポートされています。XML文書のルーティングは、要素の内容、または要素タイプと属性値に基づいて行われます。使用される文字エンコードはXMLパーサーによって判別されます。エンコードがOracle Tuxedoの構成ファイル(UBBCONFIGDMCONFIG)で使用されているネイティブな文字セット(US-ASCIIまたはEBCDIC)と異なる場合、要素と属性名はUS-ASCIIまたはEBCDICに変換されます。

XMLドキュメントには、ルーティング用に構成する属性を含めなければなりません。属性がルーティング基準として構成されていてもXMLドキュメントに含まれていない場合、ルーティング処理は失敗します。

要素の内容と属性値は、ルーティング・フィールド値の構文とセマンティクスに従っていることが必要です。また、ルーティング・フィールド値のタイプも指定しなければなりません。XMLでサポートされるのは文字データだけです。範囲フィールドが数値の場合、そのフィールドの内容や値はルーティング処理時に数値に変換されます。