XML マップからスクリプト関数を使用する
作成された XML マップと同じように、マッピング用に記述された ECMAScript も変換レイヤとして機能します。たとえば、受信 XML メッセージを Java に変換するように設計されたマップでは、計算を実行したり、データを分割または結合したりするように設計されたスクリプト関数の参照を含めることができます。計算などの一部のタスクは、スクリプトなしでは XML マップで実行できません。また、XML メッセージの形式は Java 宣言で示された形式と大幅に異なる場合があるので、スクリプトでマップを拡張しなければ、それらを容易にマッピングすることはできません。
マッピング用の ECMAScript 関数は JSX ファイルに格納します。XML マップから、その関数を指し示します。スクリプト関数の参照があるマップは次の例のようになります。
マッピング用のスクリプト関数は、受信 XML メッセージを Java にマッピングするか、Java を出力 XML メッセージにマッピングするように設計されます。
何かが不自然だと気付きませんか。この関数宣言の 1 つの xml パラメータが、上の例 convertOrder の括弧で囲まれている項目(currentOrder および currentCustomer)と一致していないことに気付いたと思います。その例で、括弧内の項目はスクリプトで Java 宣言のどの部分が処理されるのかを WebLogic Server に通知します。currentOrder と currentCustomer は、この XML マップが適用される Java メソッドのパラメータです。このマップがメソッドの戻り値を処理するように設計されているとしたら(たとえば送信 XML メッセージにマッピングするために)
関数で XML が Java にマッピングされる場合、そのパラメータは XML で、関数の戻り値は Java コードに渡される型の含まれた配列
関数で Java が XML にマッピングされる場合、そのパラメータは Java 宣言からの型(1 つまたは複数)の集合で、その戻り値は送信される XML
少し難しいと感じたら、以下の図を参照してみてください。最初の図は Web サービスにおけるメソッドのパラメータのマッピングを示しており、2 番目の図はメソッドの戻り値のマッピングを示しています。最初の図では XML が Java に変換され、2 番目の図では Java が XML に変換されます。