Web サービスからスクリプトを使用するには

ECMAScript 関数を Web サービスに接続すると、その関数を使用して XML メッセージを Java に(またはその逆方向で)変換できます。JSX ファイルで関数を作成したら、XML マップ内で参照することでその関数を Web サービスに接続します。

注意: スクリプト関数を作成する手順については、Web サービスで使用するためのスクリプトを作成するにはを参照してください。

このトピックでは、パラメータでスクリプトを使用する方法または戻り値でスクリプトを使用する方法を説明します。

パラメータでスクリプトを使用するには

  1. デザイン ビューで、スクリプト関数が使用される項目(メソッド、コールバック、またはコールバック ハンドラ)に対応する矢印をダブルクリックします。[マップおよびインタフェースの編集] ダイアログが表示されます。

  2. 一番上のペインで、スクリプト関数を参照する XML マップの位置を特定します。

これは、スクリプトがどのように使用されるのかによって異なります。

  1. 一番上のペインで、スクリプト関数の参照を入力します。

関数参照の構文は次のようなものでなければなりません。

関数名の後の括弧内の項目は、名前と順序の点でスクリプトが使用する Java パラメータと対応していなければなりません。

<placeOrder xmlns="http://www.openuri.org/">    <order_info>        {CustomerServices.OrderScripts.convertOrder(currentOrder, currentCustomer)}    </order_info>    <customer_id>{currentCustomer.custID}</customer_id> </placeOrder>

この例は、次の Java 宣言と対応します。

public int placeOrder(Order currentOrder, Customer currentCustomer) {...}

  1. [OK] をクリックして、[マップおよびインタフェースの編集] ダイアログを閉じます。

 

戻り値でスクリプトを使用するには

  1. デザイン ビューで、スクリプト関数が使用される項目(メソッド、コールバック、またはコールバック ハンドラ)に対応する矢印をダブルクリックします。[マップおよびインタフェースの編集] ダイアログが表示されます。

  2. 一番上のペインで、スクリプト関数を参照する XML マップの位置を特定します。

これは、スクリプトがどのように使用されるのかによって異なります。

  1. 一番上のペインで、スクリプト関数の参照を入力します。

関数参照の構文は次のようなものでなければなりません。

関数名の後の括弧内の項目は、次の例のように「return」でなければなりません。

<placeOrderReponse xmlns="http://www.openuri.org/">    <order_confirmation>        {CustomerServices.OrderScripts.convertOrderResponse(return)}    </order_confirmation> </placeOrderResponse>

この例は、次の Java 宣言と対応します。

public int placeOrder(Order currentOrder, Customer currentCustomer) {...}

  1. [OK] をクリックして、[マップおよびインタフェースの編集] ダイアログを閉じます。

関数参照は兄弟を持つことはできない

関数参照(中括弧とその間のすべて)は、その親要素の唯一の子でなければなりません。たとえば、次の部分的な XML マップではエラーが生じます。

<placeOrder xmlns="http://www.openuri.org/">
 
   {CustomerServices.OrderScripts.convertOrder(currentOrder, currentCustomer)}
    <customer_info>{currentCustomer}</customer_info>
</placeOrder>

ただし、次の場合は問題なく機能します。

<placeOrder xmlns="http://www.openuri.org/">
    <order_info>
 
       {CustomerServices.OrderScripts.convertOrder(currentOrder, currentCustomer)}
    </order_info>
    <customer_id>{currentCustomer.custID}</customer_id>
</placeOrder>

関連トピック

Web サービスで使用するためのスクリプトを作成するには

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