XML マップからスクリプト関数を使用する

作成された XML マップと同じように、マッピング用に記述された ECMAScript も変換レイヤとして機能します。たとえば、受信 XML メッセージを Java に変換するように設計されたマップでは、計算を実行したり、データを分割または結合したりするように設計されたスクリプト関数の参照を含めることができます。計算などの一部のタスクは、スクリプトなしでは XML マップで実行できません。また、XML メッセージの形式は Java 宣言で示された形式と大幅に異なる場合があるので、スクリプトでマップを拡張しなければ、それらを容易にマッピングすることはできません。

マッピング用の ECMAScript 関数は JSX ファイルに格納します。XML マップから、その関数を指し示します。スクリプト関数の参照があるマップは次の例のようになります。

マッピング用のスクリプト関数は、受信 XML メッセージを Java にマッピングするか、Java を出力 XML メッセージにマッピングするように設計されます。この例で参照される関数は、XML を Java にマッピングします。JSX ファイルでの関数の実際の名前は convertOrderFromXML です。実行時において、WebLogic Server は XML からデータを変換するときにこの関数を呼び出します。関数の実際の宣言は次のようになります。

何かが不自然だと気付きませんか。この関数宣言の 1 つの xml パラメータが、上の例 convertOrder の括弧で囲まれている項目(currentOrder および currentCustomer)と一致していないことに気付いたと思います。その例で、括弧内の項目はスクリプトで Java 宣言のどの部分が処理されるのかを WebLogic Server に通知します。currentOrdercurrentCustomer は、この XML マップが適用される Java メソッドのパラメータです。このマップがメソッドの戻り値を処理するように設計されているとしたら(たとえば送信 XML メッセージにマッピングするために)、括弧内の項目は単純に return になります。関数それ自体は以下のようにもっと単純です。

少し難しいと感じたら、以下の図を参照してみてください。最初の図は Web サービスにおけるメソッドのパラメータのマッピングを示しており、2 番目の図はメソッドの戻り値のマッピングを示しています。最初の図では XML が Java に変換され、2 番目の図では Java が XML に変換されます。

スクリプトを使用した JWS メソッドのパラメータのマッピング

 

スクリプトを使用した JWS メソッドの戻り値のマッピング

 

関連トピック

XML マップを使用する理由