- Oracle SOAスイートでのSOAアプリケーションの開発
- XPath拡張関数
- ユーザー定義XPath拡張関数の作成
- ユーザー定義XPath拡張関数の構成方法
ユーザー定義XPath拡張関数の構成方法
ユーザー定義XPath拡張関数を構成するには:
- 関数を定義するXPath拡張構成ファイルを作成します。次の例は、「ユーザー定義XPath拡張関数の作成」で示した関数スキーマに基づくサンプル構成ファイルを示しています。この例では、
mf:myFunction1
とmf: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でサポートされている
string
、number
、boolean
、node-set
およびtree
のいずれかのタイプを指定できます。同等のJavaタイプについては、この項(「ユーザー定義XPath拡張関数の作成」)の最初の表を参照してください。params
関数のパラメータ。関数にはパラメータがない場合があります。パラメータには次の属性があります。
-
name
: パラメータの名前。 -
type
: パラメータのタイプ。XPathおよびXSLTでサポートされているstring
、number
、boolean
、node-set
およびtree
のいずれかのタイプを指定できます。同等のJavaタイプについては、この項(「ユーザー定義XPath拡張関数の作成」)の最初の表を参照してください。 -
minOccurs
: パラメータの最少繰返し数。0
に設定した場合、パラメータはオプションです。1
に設定した場合は必須です。現在の制限では、この属性に指定できる値は0
または1
のみで、オプションのパラメータは必須パラメータの後に定義する必要があります。この属性を指定しない場合、デフォルト値は1
です。 -
maxOccurs
: パラメータの最大繰返し数。unbounded
に設定した場合、パラメータの繰返し数に制限はありません。このパラメータにより、無制限のパラメータを使用する可能性がある、XPath 1.0関数のconcat()
などの関数をサポートできます。現在の制限では、関数の最終パラメータ以外のパラメータには、maxOccurs
に1
より大きい値またはunbounded
を指定できません。この属性を指定しない場合、デフォルト値は1
です。 -
wizardEnabled
: パラメータ値の入力にウィザードを使用可能にするかどうかを示します。この指定によって、パラメータ値を入力する必要があるユーザー・インタフェースがサポートされます。true
に設定すると、パラメータ値のフィールドの横にウィザード起動ボタンが表示されます。ウィザード起動ボタンを押すと、ユーザーがパラメータ値を簡単に入力できるポップアップ・ウィザードが起動されます。ウィザード・クラスを後で指定する必要があります。この属性を指定しない場合のデフォルト値はfalse
で、デフォルトでは、パラメータに関するウィザードのサポートはありません。
desc
関数の説明(オプション)。
resourceKey
を指定した場合、説明はルート要素で前に指定したリソース・バンドルから取得されます。detail
関数の長い(詳細な)説明(オプション)。
resourceKey
を指定した場合、説明はルート要素で前に指定したリソース・バンドルから取得されます。icon
関数のアイコンのURL(オプション)。
resourceKey
を指定した場合、アイコンのURLはルート要素で前に指定したリソース・バンドルから取得されます。関数を表示する必要があるユーザー・インタフェースをサポートするための要素です。helpURL
関数のヘルプHTMLのURL(オプション)。
resourceKey
を指定した場合、ヘルプのURLはルート要素で前に指定したリソース・バンドルから取得されます。関数のヘルプ・リンクを表示する必要があるユーザー・インタフェースをサポートするための要素です。group
関数のグループ名(オプション)。
resourceKey
を指定した場合、グループ名はルート要素で前に指定したリソース・バンドルから取得されます。関数をグループ化する必要があるユーザー・インタフェースをサポートするための要素です。グループ名を指定しない場合、関数は、ユーザー・インタフェースでグループ化される際に組込みの拡張関数に分類されます。wizardClass
ウィザードを使用可能にしたすべてのパラメータに対するウィザード・クラスの完全修飾クラス名。パラメータ値を入力する必要があるユーザー・インタフェースをサポートするための要素です。このウィザード・クラスは、ウィザード起動ボタンを押すと起動され、ユーザーがパラメータ値を簡単に入力できるようにします。ウィザードを使用可能にするパラメータを指定していない場合、この要素は指定しないでください。
ノート: この要素は、ユーザー定義関数ではサポートされていません。この機能を現在サポートしているのはシステム関数のみです。
-
- 関数を使用するコンポーネント・タイプに基づいて、ユーザー定義の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
- 構成ファイルをコンパイル済クラスとともにJARファイル内に配置します。JARファイル内で、構成ファイルは
META-INF
ディレクトリに格納される必要があります。JARファイルは特定のディレクトリに存在する必要はありません。ノート:
customXpathFunction
JARは、SOAコンポジットの一部ではないため、明示的に追加する必要があります。 - Oracle JDeveloperで、「ツール」→「プリファレンス」→「SOA」の順に選択します。
- 「追加」ボタンをクリックし、JARファイルを選択します。
- 変更を有効にするためにOracle JDeveloperを再起動します。
JARファイルがJVMのクラスパスに自動的に追加され、使用可能になります。