ユーザー定義XPath拡張関数の構成方法

ユーザー定義XPath拡張関数を構成するには:

  1. 関数を定義するXPath拡張構成ファイルを作成します。次の例は、「ユーザー定義XPath拡張関数の作成」で示した関数スキーマに基づくサンプル構成ファイルを示しています。この例では、mf:myFunction1mf:myFunction2の2つの関数が作成されます。
    <?xml version="1.0" encoding="UTF-8"?>
    <soa-xpath-functions resourceBundle="myPackage.myResourceBundle"
     xmlns="http://xmlns.oracle.com/soa/config/xpath"
     xmlns:mf="http://www.my-functions.com">
      <function name="mf:myFunction1">
        <className>myPackage.myFunctionClass1</className>
        <return type="node-set"/>
        <params>
          <param name="p1" type="node-set" wizardEnabled="true"/>
          <param name="p2" type="string"/>
          <param name="p3" type="number" minOccurs="0"/>
          <param name="p4" type="boolean" minOccurs="0"  maxOccurs="3"/>
        </params>
        <desc resourceKey="func1-desc-key">this is my first function</desc>
        <detail resourceKey="func2-long-desc-key">my first function does ... </detail>
        <icon>myPackage/resource/image/myFunction1.png</icon>
        <group resourceKey="func-group-key">My Function Group</group>
        <wizardClass>myPackage.myWizardClass1</wizardClass>
      </function>
      <function name="mf:myFunction2">
        <className>myPackage.myFunctionClass2</className>
        <return type="string"/>
        <params>
          <param name="p1" type="node-set" wizardEnabled="true"/>
          <param name="p2" type="string"/>
          <param name="p3" type="number" minOccurs="0"/>
          <param name="p4" type="boolean" minOccurs="0"  maxOccurs="unbounded"/>
        </params>
        <desc resourceKey="func2-desc-key">this is my second function</desc>
        <detail resourceKey="func2-long-desc-key">my second function does ...</detail>
        <icon>myPackage/resource/image/myFunction2.png</icon>
        <group resourceKey="func-group-key">My Function Group</group>
        <wizardClass>myPackage.myWizardClass2</wizardClass>
      </function>
    </soa-xpath-functions>
    

    表B-3に、構成ファイルの要素を示します。各関数の構成ファイルで、そのルート要素としてsoa-xpath-functionsが使用されます。ルート要素にはオプションのresourceBundle属性があります。resourceBundleの値は、すべての関数構成に対するNational Language Support (NLS)を提供するリソース・バンドル・クラスの完全修飾クラス名です。

    表B-3 関数スキーマの要素

    要素 説明

    className

    関数実装クラスの完全修飾クラス名。

    return

    関数の戻り型。XPathおよびXSLTでサポートされているstringnumberbooleannode-setおよびtreeのいずれかのタイプを指定できます。同等のJavaタイプについては、この項(「ユーザー定義XPath拡張関数の作成」)の最初の表を参照してください。

    params

    関数のパラメータ。関数にはパラメータがない場合があります。パラメータには次の属性があります。

    • name: パラメータの名前。

    • type: パラメータのタイプ。XPathおよびXSLTでサポートされているstringnumberbooleannode-setおよびtreeのいずれかのタイプを指定できます。同等のJavaタイプについては、この項(「ユーザー定義XPath拡張関数の作成」)の最初の表を参照してください。

    • minOccurs: パラメータの最少繰返し数。0に設定した場合、パラメータはオプションです。1に設定した場合は必須です。現在の制限では、この属性に指定できる値は0または1のみで、オプションのパラメータは必須パラメータの後に定義する必要があります。この属性を指定しない場合、デフォルト値は1です。

    • maxOccurs: パラメータの最大繰返し数。unboundedに設定した場合、パラメータの繰返し数に制限はありません。このパラメータにより、無制限のパラメータを使用する可能性がある、XPath 1.0関数のconcat()などの関数をサポートできます。現在の制限では、関数の最終パラメータ以外のパラメータには、maxOccurs1より大きい値またはunboundedを指定できません。この属性を指定しない場合、デフォルト値は1です。

    • wizardEnabled: パラメータ値の入力にウィザードを使用可能にするかどうかを示します。この指定によって、パラメータ値を入力する必要があるユーザー・インタフェースがサポートされます。trueに設定すると、パラメータ値のフィールドの横にウィザード起動ボタンが表示されます。ウィザード起動ボタンを押すと、ユーザーがパラメータ値を簡単に入力できるポップアップ・ウィザードが起動されます。ウィザード・クラスを後で指定する必要があります。この属性を指定しない場合のデフォルト値はfalseで、デフォルトでは、パラメータに関するウィザードのサポートはありません。

    desc

    関数の説明(オプション)。resourceKeyを指定した場合、説明はルート要素で前に指定したリソース・バンドルから取得されます。

    detail

    関数の長い(詳細な)説明(オプション)。resourceKeyを指定した場合、説明はルート要素で前に指定したリソース・バンドルから取得されます。

    icon

    関数のアイコンのURL(オプション)。resourceKeyを指定した場合、アイコンのURLはルート要素で前に指定したリソース・バンドルから取得されます。関数を表示する必要があるユーザー・インタフェースをサポートするための要素です。

    helpURL

    関数のヘルプHTMLのURL(オプション)。resourceKeyを指定した場合、ヘルプのURLはルート要素で前に指定したリソース・バンドルから取得されます。関数のヘルプ・リンクを表示する必要があるユーザー・インタフェースをサポートするための要素です。

    group

    関数のグループ名(オプション)。resourceKeyを指定した場合、グループ名はルート要素で前に指定したリソース・バンドルから取得されます。関数をグループ化する必要があるユーザー・インタフェースをサポートするための要素です。グループ名を指定しない場合、関数は、ユーザー・インタフェースでグループ化される際に組込みの拡張関数に分類されます。

    wizardClass

    ウィザードを使用可能にしたすべてのパラメータに対するウィザード・クラスの完全修飾クラス名。パラメータ値を入力する必要があるユーザー・インタフェースをサポートするための要素です。このウィザード・クラスは、ウィザード起動ボタンを押すと起動され、ユーザーがパラメータ値を簡単に入力できるようにします。ウィザードを使用可能にするパラメータを指定していない場合、この要素は指定しないでください。

    ノート: この要素は、ユーザー定義関数ではサポートされていません。この機能を現在サポートしているのはシステム関数のみです。

  2. 関数を使用するコンポーネント・タイプに基づいて、ユーザー定義のXPath拡張構成ファイルの名前を指定します。表B-4に、ユーザー定義構成ファイルに使用する命名規則を示します。

    表B-4 ユーザー定義構成ファイル

    関数を使用するコンポーネント 使用する構成ファイル名

    Oracle BPEL Process Manager

    ext-bpel-xpath-functions-config.xml

    Oracle Mediator

    ext-mediator-xpath-functions-config.xml

    XSLTマッパー

    ext-mapper-xpath-functions-config.xml

    ヒューマン・ワークフロー

    ext-wf-xpath-functions-config.xml

    すべてのコンポーネント

    ext-soa-xpath-functions-config.xml

  3. 構成ファイルをコンパイル済クラスとともにJARファイル内に配置します。JARファイル内で、構成ファイルはMETA-INFディレクトリに格納される必要があります。JARファイルは特定のディレクトリに存在する必要はありません。

    ノート:

    customXpathFunction JARは、SOAコンポジットの一部ではないため、明示的に追加する必要があります。

  4. Oracle JDeveloperで、「ツール」「プリファレンス」「SOA」の順に選択します。
  5. 「追加」ボタンをクリックし、JARファイルを選択します。
  6. 変更を有効にするためにOracle JDeveloperを再起動します。

    JARファイルがJVMのクラスパスに自動的に追加され、使用可能になります。