この付録では、XPath拡張関数について説明します。 Oracleには、新しい関数を追加するためにOracle SOA SuiteおよびXPath標準に組み込まれた機能を使用する、XPath関数が用意されています。
項目は次のとおりです。
XPath関数の詳細は、次のURLを参照してください。
http://www.w3.org
この項では、次のSOA XPath拡張関数について説明します。
この項では、次のデータベース関数について説明します。
この関数は、パラメータから生成されたSQL問合せに基づいて文字列を返します。
文字列は、次の問合せを実行することによって取得されます。
SELECT outputColumn FROM table WHERE inputColumn = key
このSQL問合せの対象は、JDBC接続文字列(jdbc:oracle:thin:username/password@host:port:sid)、またはデータソースJNDI識別子のいずれかのデータソースです。 JDBC接続文字列を使用する場合は、Oracle Thinドライバのみがサポートされます。
例: oraext:lookup-table('employee','id','1234','last_name','jdbc:oracle:thin:xyz/xyz@localhost:1521:ORCL')
シグネチャ:
oraext:lookup-table(table, inputColumn, key, outputColumn, data source)
引数:
table: データの抽出元の表
inputColumn: 表内の列
key: 入力列のキーの値
outputColumn: データを出力する列
data source: データのソース
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: oraext
この関数は、指定されたデータベースに対してSQL問合せを実行して、ノードセットを返します。
シグネチャ:
oraext:query-database(sqlquery as string, rowset as boolean, row as boolean, data source as string)
引数:
sqlquery: 実行するSQL問合せ。
rowset: 行を要素で囲むかどうかを指定します。
row: 各行を要素で囲むかどうかを指定します。
data source: データベースのJDBC接続文字列(jdbc:oracle:thin:username/password@host:port:sid)またはJNDI名。
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: oraext
この関数は、Oracleの順序の次の値を返します。
次の値は、次の問合せを実行することによって取得されます。
SELECT sequence.nextval FROM dual
このSQL問合せの対象は、JDBC接続文字列(jdbc:oracle:thin:username/password@host:port:sid)、またはデータソースJNDI識別子のいずれかのデータソースです。 JDBC接続文字列を使用する場合は、Oracle Thinドライバのみがサポートされます。
例: oraext:sequence-next-val('employee_id_sequence','jdbc:oracle:thin:xyz/xyz@localhost:1521:ORCL')
シグネチャ:
oraext:sequence-next-val(sequence as string, data source as string)
引数:
sequence: データベース内の順序番号
data source: JDBC接続文字列またはデータソースJNDI識別子
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: oraext
この項では、次の関数について説明します。
この関数は、指定された期間にdateTimeを加算した新しい日時の値を返します。
期間の値が負の場合、返される値はdateTimeより前の日時になります。
シグネチャ:
xpath20:add-dayTimeDuration-from-dateTime(dateTime as string, duration as string)
引数:
dateTime as string: 期間を加算するdateTime(文字列書式)
duration as string: dateTimeに加算する期間、または期間が負の場合は減算する期間(文字列書式)
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xpath20
この関数は、現在の日付をISO書式YYYY-MM-DDで返します。
シグネチャ:
xpath20:current-date(object)
引数:
Object: 標準書式の時間
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xpath20
この関数は、現在の日時の値をISO書式CCYY-MM-DDThh:mm:ssTZDで返します。
シグネチャ:
xpath20:current-dateTime(object)
引数:
object: 標準書式の時間
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xpath20
この関数は、現在の時間をISO書式で返します。書式はhh:mm:ssTZDです。
シグネチャ:
xpath20:current-time(object)
引数:
object: 標準書式の時間
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xpath20
この関数は、dateTimeから日を返します。デフォルトの日は1です。
シグネチャ:
xpath20:day-from-dateTime(object)
引数:
object: 文字列としての標準書式の時間
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xpath20
この関数は、指定された書式を使用して書式設定したdateTimeの文字列を返します。
シグネチャ:
xpath20:format-dateTime(dateTime as string, format as string)
引数:
dateTime: 書式設定の対象となるdateTime
format: 出力の書式
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xpath20
この関数は、dateTimeから時間を返します。デフォルトの時間は0です。
シグネチャ:
xpath20:hours-from-dateTime(dateTime as string)
引数:
dateTime: 日時の文字列
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xpath20
この関数は、現在のタイムゾーンをUTC(協定世界時)からの偏差を示すISO書式+/- hh:mmで返します。
シグネチャ:
xpath20:implicit-timezone(object)
引数:
object: 標準書式の時間
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xpath20
この関数は、dateTimeから分を返します。デフォルトの分は0です。
シグネチャ:
xpath20:minutes-from-dateTime(dateTime as string)
引数:
dateTime as string: 日時
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xpath20
この関数は、dateTimeから月を返します。デフォルトの月は1(1月)です。
シグネチャ:
xpath20:month-from-dateTime(dateTime as string)
引数:
dateTime as string: 書式設定の対象となるdateTime
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xpath20
この関数は、dateTimeから秒を返します。デフォルトの秒は0です。
シグネチャ:
xpath20:seconds-from-dateTime(dateTime as string)
引数:
dateTime as a string: 文字列としてのdateTime
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xpath20
この関数は、dateTimeから期間を減算して、新規のdateTimeを返します。
期間の値が負の場合、返されるdateTime値は指定したinput-dateTimeより後の日時になります。
シグネチャ:
xpath20:subtract-dayTimeDuration-from-dateTime(dateTime as string, duration as string)
引数:
dateTime as string: 期間を減算するdateTime(文字列書式)
duration as string: dateTimeから減算する期間、または期間が負の場合は加算する期間(文字列書式)
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xp20
この関数は、dateTimeからタイムゾーンを返します。 デフォルトのタイムゾーンはGMT+00:00です。
シグネチャ:
xpath20:timezone-from-dateTime(dateTime as string)
引数:
dateTime as string: タイムゾーンを返す対象となるdateTime
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xpath20
この項では、次の関数について説明します。
この関数は、inputNumberの絶対値を返します。inputNumberが負でない場合は、inputNumberを返します。 inputNumberが負の場合は、inputNumberからマイナス符号をとった値を返します。
例: abs(-1)は1を返します。
シグネチャ:
xpath20:abs(inputNumber as number)
引数:
inputNumber as number: 絶対値を返す対象となる数値
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xpath20
この項では、文字列関数について説明します。
この関数は、inputStringとcompareStringの各文字のUnicode値を比較して、これらの文字列間の辞書的な差異を返します。
inputStringがcompareStringより辞書的に前にある場合は、-1を返します。
inputStringとcompareStringが等しい場合は、0を返します。
inputStringがcompareStringより辞書的に後にある場合は、1を返します。
例: xpath20:compare('Audi', 'BMW')は-1を返します。
シグネチャ:
xpath20:compare(inputString as string, compareString as string)
引数:
variableName: データのソース変数
propertyName: プロパティの修飾名(QName)
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xpath20
この関数は、大/小文字を無視してinputStringとcompareStringの各文字のUnicode値を比較して、これらの文字列間の辞書的な差異を返します。
inputStringがcompareStringより辞書的に前にある場合は、-1を返します。
inputStringとcompareStringが等しい場合は、0を返します。
inputStringがcompareStringより辞書的に後にある場合は、1を返します。
例: xpath20:compare-ignore-case('Audi','bmw')は-1を返します。
シグネチャ:
xp:compare-ignore-case(inputString as string, compareString as string)
引数:
inputString: 検索されるデータの文字列
CompareString: 入力文字列と比較される文字列
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xpath20
この関数は、nodeSetから作成されたデリミタ付き文字列を返します。
シグネチャ:
oraext:create-delimited-string(nodeSet as node-set, delimiter as string)
引数:
nodeSet: デリミタ付き文字列に変換するノードセット
delimiter: 出力文字列の項目を区切る文字(例: カンマ、セミコロン)
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: oraext
この関数は、inputStringがsearchStringで終わる場合にtrueを返します。
例: xpath20:ends-with('XSL Map','Map')は、trueを返します。
シグネチャ:
xpath20:ends-with(inputString as string, searchString as string)
引数:
inputString: 検索されるデータの文字列
searchString: 検索する文字列
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xpath20
この関数は、渡された引数で書式設定されたメッセージを返します。 引数は、少なくとも1つが必須で最大10個までサポートされます。
例: oraext:format-string('{0} + {1} = {2}','2','2','4')は、'2 + 2 = 4'を返します。
シグネチャ:
oraext:format-string(string,string,string...)
引数:
string: 書式設定された出力に使用する文字列の1つ
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: oraext
この関数は、入力要素のXML表現を返します。
シグネチャ:
oraext:get-content-as-string(element as node-set)
引数:
element as node-set: XML表現として返される入力要素
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: oraext
この関数は、ファイルのコンテンツを返します。
シグネチャ:
oraext:get-content-from-file-function(object)
引数:
object:
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: oraext
この関数は、キーに対してロケール固有の文字列を返します。言語、国、変数およびリソース・バンドルを使用して、正しいリソース・バンドルを特定します。
リソース・バンドルは、resourceLocationに対してresourceBaseURLを解決することによって取得されます。URLは、/で終わる場合にかぎりディレクトリとみなされます。
使用方法: oraext:get-localized-string(resourceBaseURL as string, resourceLocation as string, resource bundle as string, language as string, country as string, variant as string, key as string)
例: oraext:get-localized-string('file:/c:/','','MyResourceBundle','en','US','','MSG_KEY')は、C:\ディレクトリにあるリソース・バンドル'MyResourceBundle'からロケール固有の文字列を返します。
シグネチャ:
oraext:get-localized-string(resourceURL,resourceLocation,resourceBundleName,language,country,variant,messageKey)
引数:
resourceURL: リソースのURL
resourceLocation: リソースのサブディレクトリの場所
resourceBundleName: リソース・バンドルが含まれるZIPファイルの名前
language: ローカライズされる出力の言語
country: ローカライズされる出力の国
variant: ローカライズされる出力の言語変数
messageKey: リソース・バンドルのメッセージ・キー
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: oraext
この関数は、inputString内で最初に出現するsearchStringのゼロから始まる索引を返します。
searchStringが見つからない場合は-1を返します。
例: oraext:index-within-string('ABCABC, 'B')は1を返します。
シグネチャ:
oraext:index-within-string(inputString as string, searchString as string)
引数:
inputString: 検索されるデータの文字列
searchString: inputString内で検索する文字列
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: oraext
この関数は、inputString内で最後に出現するsearchStringのゼロから始まる索引を返します。
searchStringが見つからない場合は-1を返します。
例: oraext:last-index-within-string('ABCABC', 'B')は4を返します。
シグネチャ:
oraext:last-index-within-string(inputString as string, searchString as string)
引数:
inputString: 検索されるデータの文字列
searchString: inputString内で検索する文字列
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: oraext
この関数は、inputStringから先頭の空白文字をすべて削除した値を返します。
例: oraext:left-trim(' account ')は、'account 'を返します。
シグネチャ:
oraext:left-trim(inputString)
引数:
inputString: 先頭の空白を削除する文字列
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: oraext
この関数は、inputStringのすべての文字を対応する小文字に変換した値を返します。
例: xpath20:lower-case('ABc!D')は、'abc!d'を返します。
シグネチャ:
xpath20:lower-case(inputString)
引数:
inputString: 小文字にするデータの文字列
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xpath20
この関数は、intputStringが正規表現パターンregexPatternに一致する場合にtrueを返します。
例: xpath20:matches('abracadabra', '^a.*a$')は、trueを返します。
シグネチャ:
xpath20:matches(intputString, regexPattern)
引数:
inputString: 一致する必要のあるデータの文字列
regexPattern: 正規表現パターン
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xpath20
この関数は、inputStringから末尾の空白文字をすべて削除した値を返します。
例: oraext:right-trim(' account ')は、' account'を返します。
シグネチャ:
oraext:right-trim(inputString as string)
引数:
inputString: 末尾の空白を削除する入力文字列
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: oraext
この関数は、inputStringのすべての文字を対応する大文字に変換した値を返します。
例: xpath20:upper-case('abCd0')は、'ABCD0'を返します。
シグネチャ:
xpath20:upper-case(inputString as string)
引数:
inputString: 大文字にするデータの文字列
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xpath20
この項では、次のBPEL XPath拡張関数について説明します。
この関数は、stringの内容を一重引用符で囲んで返します。
シグネチャ:
ora:addQuotes(string)
引数:
string: 引用符を追加する文字列
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数はノード・リストに追加します。NULLまたは空のノード・リストは追加先にできません。
シグネチャ:
ora:appendToList('variableName', 'partName'?, 'locationPath'?, Object)
引数:
variableName: データのソース変数。
partName: 変数から選択するパート(オプション)。
locationPath: 絶対ロケーション・パスを指定して(/は、パート全体を表す文書フラグメントのルートを意味する)、パートを表す文書フラグメント内のサブツリーのルートを識別します(オプション)。
Object: リストまたは単一のアイテムを指定できます。リストを指定した場合は、リスト内の各アイテムが追加されます。追加される各アイテムは、要素、または作成されるノードの文字列値を持つ要素です。
プロパティID:
deprecated
リストに追加するには、bpelx:copyListまたはbpelx:append拡張アクティビティを使用してください。
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、ノード・リストまたはノードをコピーします。NULLまたは空のノード・リストはコピー先にできません。
シグネチャ:
ora:copyList('variableName', 'partName'?, 'locationPath'?, Object)
引数:
variableName: データのソース変数。
partName: 変数から選択するパート(オプション)。
locationPath: 絶対ロケーション・パスを指定して(/は、パート全体を表す文書フラグメントのルートを意味する)、パートを表す文書フラグメント内のサブツリーのルートを識別します(オプション)。
Object: リストまたは単一のアイテムを指定できます。リストを指定した場合は、リスト内の各アイテムがコピーされます。コピーされる各アイテムは、要素、または作成されるノードの文字列値を持つ要素です。
プロパティID:
deprecated
リストに追加するには、bpelx:copyList拡張アクティビティを使用してください。
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
|
注意: countNodes関数を引き続き使用することもできますが、要素のサイズを整数として返すには、バージョン1.0のXPath count()関数を使用することをお薦めします。 |
この関数は、要素のサイズを整数として返します。
シグネチャ:
ora:countNodes('variableName', 'partName'?, 'locationPath'?)
引数:
variableName: データのソース変数。
partName: 変数から選択するパート(オプション)。
locationPath: 絶対ロケーション・パスを指定して(/は、パート全体を表す文書フラグメントのルートを意味する)、パートを表す文書フラグメント内のサブツリーのルートを識別します(オプション)。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、XMLファイルのコンテンツを返します。
シグネチャ:
ora:doc('fileName','xpath'?)
引数:
fileName: XMLファイルの名前
xpath: ファイルへのパス
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、ストリーミングXPath APIを使用して変換します。 この関数は、バッチ処理と呼ばれる固有の概念を使用し、トランスフォーメーション・エンジンによってトランスフォーメーションの結果がメモリーにマテリアライズされないようにします。この結果、ギガバイト単位の大規模なペイロードを任意に処理できるようになります。 ただし、処理できるのは、for-eachなど、順方向のみのXSLコンストラクトのみです。 targetTypeには、SDOMまたはATTACHMENTを指定できます。
シグネチャ:
ora:doStreamingTranslate('input SDOM or attachment element', 'streaming xpath context', 'SDOM or ATTACHMENT', 'attachment element?')
引数:
input SDOM or attachment element
streaming xpath context
SDOM or ATTACHMENT
attachment element
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、入力データをXMLに変換します。入力データには、Base64エンコード・データが含まれる文字列、添付ファイルまたは要素を指定できます。 targetTypeには、DOM、ATTACHMENTまたはSDOMを指定できます。
シグネチャ:
ora:doTranslateFromNative('input','nxsdTemplate','nxsdRoot','targetType','attachment element?')
引数:
input: XPath関数の入力データ。
nxsdTemplate: 入力データからXMLフォーマットへの変換に使用するNXSDスキーマ。
nxsdRoot: NXSDスキーマのルート要素。
targetType: XPath関数がネイティブ・データをXMLに変換する方法を指定します。
attachment element: 返されるXMLの添付ファイルです。 このパラメータはオプションです。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、入力のDOMを文字列または添付ファイルに変換します。 targetTypeには、STRINGまたはATTACHMENTを指定できます。
シグネチャ:
ora:doTranslateToNative('input','nxsdTemplate','nxsdRoot','targetType','attachment element?')
引数:
input: XPath関数の入力データ。
nxsdTemplate: 入力データからXMLフォーマットへの変換に使用するNXSDスキーマ。
nxsdRoot: NXSDスキーマのルート要素。
targetType: XPath関数がネイティブ・データをXMLに変換する方法を指定します。
attachment element: 返されるXMLの添付ファイルです。 このパラメータはオプションです。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、XSLTの複数パラメータをサポートするWS-BPEL 2.0のdoXSLTransform機能を実装します。 この関数を使用する場合は、XSL template matchをルート(/)に設定しないでください。 ルート要素に設定する必要があります。
シグネチャ:
ora:doXSLTransform('url_to_xslt',input,['paramQname',paramValue]*)
引数:
url_to_xslt: XSLスタイルシートのURLを指定します。
input: 入力変数名を指定します。
paramQname: パラメータQNameを指定します。
paramValue: パラメータ値を指定します。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、doXSLTransform()の補完XPath関数です。 この関数の目的は、XSLTテンプレートがドキュメントに一致したときにトランスフォーメーションを実行することです。
シグネチャ:
ora:doXSLTransformForDoc('url_to_xslt',input,['paramQname',paramValue]*)
引数:
url_to_xslt: XSLスタイルシートのURLを指定します。
input: 入力変数名を指定します。
paramQname: パラメータQNameを指定します。
paramValue: パラメータ値を指定します。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、標準XSD日付書式を出力に適した文字に変換します。
シグネチャ:
ora:formatDate('dateTime', 'format')
引数:
dateTime: 日付関連の値をXSD形式で指定します。引数が文字列でない場合、この関数は、string()関数が適用された場合と同じように動作します。引数が日付でない場合、出力は空の文字列になります。引数が有効なXSD日付で、フィールドの一部が空の場合は、未指定のフィールドの充填が試みられます。たとえば、2003-06-10T15:56:00のようになります。
format: java.text.SimpleDateFormat書式に従って書式設定された文字列を指定します。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
一意のGUIDを生成します。
シグネチャ:
ora:generateGUID()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、アプリケーション名を返します。
シグネチャ:
ora:getApplicationName()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、href関数から添付ファイルのコンテンツを取得します。
シグネチャ:
ora:getAttachmentContent(varName[, partName[, query]])
引数:
varName: データのソース変数を指定します。
partName: 変数から選択するパートを指定します(オプション)。
query: 絶対ロケーション・パスを指定して(/は、パート全体を表す文書フラグメントのルートを意味する)、パートを表す文書フラグメント内のサブツリーのルートを識別します(オプション)。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、コンポーネント名を返します。
シグネチャ:
ora:getComponentName()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、コンポーネント・インスタンスIDを返します。
シグネチャ:
ora:getComponentInstanceID()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、コンポジット名を返します。
シグネチャ:
ora:getCompositeName()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、BPELプロセスのコンポジット・インスタンスIDを返します。
シグネチャ:
ora:getCompositeInstanceID()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、コンポジットURLを返します。
シグネチャ:
ora:getCompositeURL()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、要素のコンテンツをXML文字列として返します。
シグネチャ:
ora:getContentAsString(element elementAsNodeList)
引数:
element: 要素(データのソース)
elementAsNodeList: ノード・リストとしての要素
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、対話IDを返します。
シグネチャ:
ora:getConversationId()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、インスタンスの作成者を返します。
シグネチャ:
ora:getCreator()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、現在の日付を文字列として返します。
シグネチャ:
ora:getCurrentDate('format'?)
引数:
format: java.text.SimpleDateFormat書式に従って書式設定された文字列を指定します(オプション)。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、現在の日時を文字列として返します。
シグネチャ:
ora:getCurrentDateTime('format'?)
引数:
format: java.text.SimpleDateFormat書式に従って書式設定された文字列を指定します(オプション)。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、現在の時間を文字列として返します。
シグネチャ:
ora:getCurrentTime('format'?)
引数:
format: java.text.SimpleDateFormat書式に従って書式設定された文字列を指定します(オプション)。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、現在のドメインIDを返します。
シグネチャ:
ora:getDomainId()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数はECIDを返します。
シグネチャ:
ora:getECID()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、要素の配列から、indexを使用して要素を返します。
シグネチャ:
ora:getElement('variableName', 'partName', 'locationPath', index)
引数:
variableName: データのソース変数。
partName: 変数から選択するパート(必須)。
locationPath: 絶対ロケーション・パスを指定して(/は、パート全体を表す文書フラグメントのルートを意味する)、パートを表す文書フラグメント内のサブツリーのルートを識別します(必須)。
index: 動的索引値。最初のノードの索引は1です。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、フォルトを文字列値として返します。
シグネチャ:
ora:getFaultAsString()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、フォルト名を返します。
シグネチャ:
ora:getFaultName()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、BPELスーツケース・ディスクリプタのTaskServiceAliasesセクションで指定されているグループ・エイリアスのユーザーIDのListを返します。
シグネチャ:
ora:getGroupIdsFromGroupAlias(String aliasName)
引数:
aliasName: ユーザーまたはグループのリストのエイリアス
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、インスタンスIDを返します。
シグネチャ:
ora:getInstanceId()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、DOMノードの値を文字列として返します。
シグネチャ:
ora:getNodeValue(node)
引数:
node: DOMノード
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、ノード・リストを取得します。これは、ノード・リストを返さないbpws:getVariableDataの代用として実装されます。
シグネチャ:
ora:getNodes('variableName', 'partName'?, 'locationPath'?)
引数:
variableName: データのソース変数。
partName: 変数から選択するパート(オプション)。
locationPath: 絶対ロケーション・パスを指定して(/は、パート全体を表す文書フラグメントのルートを意味する)、パートを表す文書フラグメント内のサブツリーのルートを識別します(オプション)。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、ノードに関連付けられているドキュメント・オブジェクトを返します。
シグネチャ:
ora:getOwnerDocument(node)
引数:
node: XMLノードを指定します。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、BPELプロセス・インスタンスの親コンポーネント・インスタンスIDを返します。
シグネチャ:
ora:getParentComponentInstanceID()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、BPELスーツケース・ディスクリプタのpreferencesセクションで指定されているプロパティの値を返します。
シグネチャ:
ora:getPreference(preferenceName)
引数:
preferenceName: BPELスーツケース・ディスクリプタで指定されているプリファレンスの名前
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、現在のBPELプロセスのIDを返します。
シグネチャ:
ora:getProcessId()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、プロセスの所有者であるユーザーがBPELスーツケース・ディスクリプタのTaskServiceAliasesセクションで指定されている場合に、そのユーザーのIDを返します。
シグネチャ:
ora:getProcessOwnerId()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、現在のBPELプロセスのルートURLを返します。
シグネチャ:
ora:getProcessURL()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、現在のプロセス・バージョンを返します。
シグネチャ:
ora:getProcessVersion()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、BPELスーツケース・ディスクリプタのTaskServiceAliasesセクションで指定されているエイリアスのユーザーIDを返します。
シグネチャ:
ora:getUserAliasId (String aliasName)
引数:
aliasName: ユーザーまたはグループのリストのエイリアス
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、BPELスーツケース・ディスクリプタのTaskServiceAliasesセクションで指定されているグループ・エイリアスのユーザーIDのListを返します。
シグネチャ:
ora:getUserIdsFromGroupAlias( String aliasName )
引数:
aliasName: グループのエイリアス名
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、タイトルをコンポジット・インスタンスに設定します。このタイトルは、後でインスタンスの検索時に基準の1つとして使用できます。 この関数は、引数として渡される文字列と同じ文字列を返します。
シグネチャ:
med:setCompositeInstanceTitle(title)
引数:
title: コンポジット・インスタンスのタイトルを指定します。 このタイトルは、XPath式としてメッセージ・ペイロードに指定できます。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、BPEL変数から任意の値を抽出します。
シグネチャ:
ora:instanceOf(an_xpath_expression, 'typeQName')
引数:
an_xpath_expression: 要素を返すXPath式
typeQName: グローバル宣言済XSDタイプのQName
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、ノードのコンテンツを整数として返します。
シグネチャ:
ora:integer(node)
引数:
node: 入力ノード
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、文字列をDOMに解析します。
シグネチャ:
ora:parseEscapedXML(contentString)
引数:
contentString: DOMに解析する文字列
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、文字列をDOMに解析します。
シグネチャ:
ora:parseXML(contentString)
引数:
contentString: DOMに解析する文字列
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、XQueryトランスフォーメーションの結果を返します。
シグネチャ:
ora: ry('template','context'?)
引数:
template: XSLTテンプレート
input: 変換する入力データ
properties: bpel.xmlファイルに定義されているプロパティ
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、Oracle XDK XSLTプロセッサを使用してXSLTトランスフォーメーションの結果を返します。
シグネチャ:
xdk:processXSLT('template','input','properties'?)
引数:
template: XSLTテンプレート
input: 変換する入力データ
properties: bpel.xmlファイルに定義されているプロパティ
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: xdk
この関数は、Oracle XDK XSLTプロセッサを使用してXSLTトランスフォーメーションの結果を返します。この関数は、XML添付ファイルとの間のトランスフォーメーションもサポートします。
シグネチャ:
ora:processXSLTAttachment('template','input','href'?,'properties'?)
引数:
template: XSLTテンプレート
input: 変換する入力データ
href: 実際のデータの場所
properties: bpel.xmlファイルに定義されているプロパティ
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、XSQLリクエストの結果を返します。
シグネチャ:
ora:processXSQL('template','input','properties'?)
引数:
template: XSLTテンプレート
input: 変換する入力データ
properties: bpel.xmlファイルに定義されているプロパティ
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、ファイルからデータを読み取ります。
シグネチャ:
ora:readBinaryFromFile(fileName)
引数:
fileName: データの読取り元のファイル名
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、ファイルのコンテンツを返します。
シグネチャ:
ora:readFile('fileName','nxsdTemplate'?,'nxsdRoot'?)
引数:
fileName: ファイルの名前。または、HTTP URLも指定できます。
この関数では、デフォルトで、プロセス用のスーツケースJARファイルからの相対パスでファイルが読み取られます。読み取るファイルが別のディレクトリ・パスにある場合は、絶対パスであることを示す追加のディレクトリのスラッシュ(/)を指定する必要があります。次に例を示します。
ora:readFile('file:///c:/temp/test.doc')
ディレクトリのスラッシュの指定が2つのみ(//)の場合は、次のようなエラーを受け取ります。
XPath expression failed to execute.
Error while processing xpath expression,
the expression is "ora:readFile("file://c:/temp/test.doc")",
the reason is c. Verify the xpath query.
nxsdTemplate: 出力のNXSDテンプレート。
nxsdRoot: NXSDルート。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
|
注意: 現在、readFile関数では、認可が必要なWebサーバーのファイルにアクセスする機能がサポートされていません。 そのようなファイルへのアクセスを試行すると、次のエラーを受け取ります。
|
この関数は、変数(または変数のパート)のバイナリ・バイトを指定のファイル名のファイルに書き込みます。
シグネチャ:
ora:writeBinaryToFile(varName[, partName[, query]])
引数:
varName: 変数の名前
partName: messageType変数のパートの名前
query: ルート要素の子に対する問合せ文字列
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この項では、BPEL拡張関数について説明します。
この関数は、リンクのステータスを示すブール値を返します。リンクのステータスが正の場合、値はtrueです。それ以外の場合、値はfalseです。この関数はjoin条件でのみ使用できます。
linkName引数は、結合条件に関連付けられたアクティビティの着信リンクの名前を表します。
シグネチャ:
bpws:getLinkStatus ('linkName')
引数:
variableName: データのソース変数
propertyName: プロパティのQName
プロパティID:
namespace-uri: http://schemas.xmlsoap.org/ws/2003/03/business-process/
namespace-prefix: bpws
この関数は、BPEL変数から任意の値を抽出します。
第1引数のみが指定されている場合は、変数の値を抽出しますが、この場合、変数はXMLスキーマの単純型または要素を使用して定義されている必要があります。それ以外の場合、この関数の戻り値は、メッセージ・タイプのパート全体(第2引数が指定され、第3引数が指定されない場合)、またはlocationPathに基づく選択の結果(オプションの引数が両方とも指定されている場合)を表す単一ノードが含まれるノードセットです。指定されたlocationPathによって選択されるノードセットのサイズが実行時に選択されるノードセットのサイズと異なる場合は、標準のフォルトbpws:selectionFailureがスローされます。
シグネチャ:
bpws:getVariableData ('variableName', 'partName'?, 'locationPath'?)
引数:
variableName: データのソース変数。
partName: 変数から選択するパート(オプション)。
locationPath: 絶対ロケーション・パスを指定して(/は、パート全体を表す文書フラグメントのルートを意味する)、パートを表す文書フラグメント内のサブツリーのルートを識別します(オプション)。
プロパティID:
namespace-uri: http://schemas.xmlsoap.org/ws/2003/03/business-process/
namespace-prefix: bpws
この関数は、BPEL変数から任意の値を抽出します。
指定されたプロパティによって選択されるノードセットのサイズが実行時に選択されるノードセットのサイズと異なる場合は、標準のフォルトbpws:selectionFailureがスローされます。
シグネチャ:
bpws:getVariableProperty ('variableName', 'propertyname')
引数:
variableName: データのソース変数。
propertyName: プロパティのQName。
locationPath: 絶対ロケーション・パスを指定して(/は、パート全体を表す文書フラグメントのルートを意味する)、パートを表す文書フラグメント内のサブツリーのルートを識別します(オプション)。
プロパティID:
namespace-uri: http://schemas.xmlsoap.org/ws/2003/03/business-process/
namespace-prefix: bpws
この項では、ユーティリティ関数について説明します。
この関数は、バッチ内のアクティブ・プロセス数を返します。
シグネチャ:
ora:batchProcessActive(String batchId, String processId)
引数:
batchId: バッチのID
processId: プロセスのID
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、バッチ内の完了プロセス数を返します。
シグネチャ:
ora:batchProcessCompleted(String batchId, String processId)
引数:
batchId: バッチのID
processId: プロセスのID
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、Javaのメッセージ書式を使用してメッセージを書式設定します。
シグネチャ:
ora:format(formatStrings, args+)
引数:
formatStrings: 書式設定するデータの文字列。
args+: 書式文字列の書式指定子によって参照される引数。 引数が書式指定子よりも多い場合、余分な引数は無視されます。 引数の数は変数で、0(ゼロ)の場合があります。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、指定されたQNameに対する空要素のリストを生成します。
シグネチャ:
ora:genEmptyElem('ElemQName',size?, 'TypeQName'?, xsiNil?)
引数:
ElemQName: 最初の引数は、空要素のQNameです。
size: 2番目の引数は整数型で、空要素の数を示します(オプション)。指定されていない場合、デフォルトのサイズは1です。
TypeQName: 3番目の引数は、生成される空の名前のxsi:typeとなるQNameです(オプション)。このxsi:typeパターンは、SOAPENC:Arrayに相当します。指定されていないか、空の文字列である場合、xsi:type属性は生成されません。
xsiNil: 4番目の引数はブール型で、生成される空の要素において、XSD-nillableがtrueの場合に、XSI - nilをtrueにするかどうかを指定します(オプション)。デフォルトはfalseです。指定されていないか、falseである場合、xsi:nilは生成されません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、指定された要素の子要素を取得します。
シグネチャ:
ora:getChildElement(element, index)
引数:
element: データのソース
index: 子要素の索引の整数値
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、引数に基づいてメッセージを取得します。
シグネチャ:
ora:getMessage(locale, relativeLocation, resourceName, resourceKey, resourceLocation?)
引数:
locale: メッセージのロケール
relativeLocation: メッセージのサブディレクトリ
resourceName: メッセージ・リソースの名前
resourceKey: リソースのキー
resourceLocation: リソースの場所
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、入力数値のリストであるノードセットinputNumberから最大値を返します。
ノードセットinputNumberには、テキスト・ノードの集合、またはテキスト・ノードが含まれる要素の集合を指定できます。
要素の場合、最初のテキスト・ノードの値が対象になります。
シグネチャ:
oraext:max-value-among-nodeset(inputNumber as node-set)
引数:
inputNumber: 入力数値のノードセット
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: oraext
この関数は、入力数値のリストであるノードセットinputNumbersから最小値を返します。ノードセットには、テキスト・ノードの集合、またはテキスト・ノードが含まれる要素の集合を指定できます。要素の場合、最初のテキスト・ノードの値が対象になります。
シグネチャ:
oraext:min-value-among-nodeset(inputNumbers as node-set)
引数:
inputNumber: 入力数値のノードセット
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: oraext
この関数は、inputNumberの平方根を返します。
例: oraext:square-root(25)は、5を返します。
シグネチャ:
oraext:square-root(inputNumber as number)
引数:
inputNumber: 平方根を計算する入力数値
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: oraext
この関数は、入力ストリームをXMLファイルに変換します。
シグネチャ:
ora:translateFromNative('string','nxsdTemplate'?,'nxsdRoot'?)
引数:
string: XMLファイルに変換するデータ
nxsdTemplate: トランスレーションの実行方法を定義するXSDファイル
nxsdRoot: XSDファイルに定義されているルート要素
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
XMLをネイティブ・データに変換します。
シグネチャ:
ora:translateFromNative('string','nxsdTemplate'?,'nxsdRoot'?)
引数:
string: 文字列に変換するXMLファイル
nxsdTemplate: トランスレーションの実行方法を定義するXSDファイル
nxsdRoot: XSDファイルに定義されているルート要素
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、入力ストリームをXMLに変換します。
シグネチャ:
ora:translateFromNativeAttachment('string','nxsdTemplate'?,'nxsRoot'?)
引数:
string: XMLファイルに変換するデータ
nxsdTemplate: トランスレーションの実行方法を定義するXSDファイル
nxsdRoot: XSDファイルに定義されているルート要素
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数は、XMLをネイティブ・データに変換します。
シグネチャ:
ora:translateFromNativeAttachment('string','nxsdTemplate'?,'nxsRoot'?)
引数:
string: XMLファイルに変換するデータ
nxsdTemplate: トランスレーションの実行方法を定義するXSDファイル
nxsdRoot: XSDファイルに定義されているルート要素
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この項では、次の関数について説明します。
この関数は、コンポーネント・インスタンスIDを返します。
シグネチャ:
mdhr:getComponentInstanceId()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: mdhr
この関数は、コンポーネント名を返します。
シグネチャ:
mdhr:getComponentName()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: mdhr
この関数は、コンポジット・インスタンスIDを返します。
シグネチャ:
mdhr:getComponentInstanceId()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: mdhr
この関数は、コンポジット名を返します。
シグネチャ:
mdhr:getCompositeName()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: mdhr
この関数は、メディエータ・メッセージ・ヘッダーからXPath式の値を返します。
|
注意: getHeader関数は、2つのパラメータが指定された場合のみ機能します。 |
シグネチャ:
mdhr:getHeader(xpath as string, namespaces as string)
引数:
xpath: 横断するスキーマからのパスを表します。
namespaces: XPath式のコンテキストを格納する抽象コンテナを表します。 この引数は必須です。 ネームスペース宣言の形式は、次のとおりです。
'prefix=namespace;
ネームスペース宣言の後にセミコロンがあることに注意してください。次に例を示します。
getHeader("in.header.ns9_name/ns9:name/ns9:first","ns9=http//exmaple.com;")
Oracle JDeveloperのXSLTマッパーで、getHeader関数をマッパーにドラッグします。 「関数の編集 - getHeader」ダイアログで、「追加」をクリックします。 namespaces引数が追加されるため、ここで必須情報を入力します。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix:mdhr
この関数はECIDを返します。
シグネチャ:
mdhr:getECID()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: mdhr
この関数は、メディエータ・インスタンスの親コンポーネント・インスタンスIDを返します。
シグネチャ:
mdhr:getParentComponentInstanceId()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: mdhr
この関数は、タイトルをコンポジット・インスタンスに設定します。このタイトルは、後でインスタンスの検索時に基準の1つとして使用できます。 この関数は、引数として渡される文字列と同じ文字列を返します。
シグネチャ:
mdhr:setCompositeInstanceTitle(title)
引数:
title: コンポジット・インスタンスのタイトルを指定します。 このタイトルは、XPath式としてメッセージ・ペイロードに指定できます。
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: mdhr
この項では、拡張関数について説明します。
この関数は、デリミタ付き文字列を入力としてとり、nodeSetを返します。
シグネチャ:
oraext:create-nodeset-from-delimited-string(qname, delimited-string, delimiter)
引数:
qname: ノードセットの各ノードを作成する際の修飾名。QNameは、次の2つの形式で表現できます。
task:assignee
{http://mytask/task}assignee
delimited-string: デリミタで区切られた要素の文字列。
delimiter: 入力文字列の項目を区切る文字(例: カンマ、セミコロン)。
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: oraext
この関数は、一意のGUIDを生成します。
シグネチャ:
oraext:generate-guid()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: oraext
この関数は、参照列の値に対応する単一または複数の値を相互参照列で参照するために使用します。
シグネチャ:
xref:lookupPopulatedColumns(tableName,columnName,value,needAnException)
引数:
xrefTableName: 参照表の名前。
xrefColumnName: 参照列の名前。
xrefValue: 参照列名に対応する値。
needAnException: 値がtrueに設定されると、参照列に値が見つからない場合に例外がスローされます。trueに設定されていない場合は、空のノードセットが返されます。
プロパティID:
namespace-uri:http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions
namespace-prefix: xref
この関数は、ソース列に指定のソース値を含むドメイン値マップでターゲット列の値をルックアップすることにより、文字列を返します。
シグネチャ:
dvm:lookupValue(dvmLocation,sourceColumnName,sourceValue,targetColumnName,defaultValue)
引数:
dvmLocation: ドメイン値マップのURI。
sourceColumnName: ソース列名。
sourceValue: ソース値(XSLTトランスフォーメーションのソース文書にバインドされるXPath式)。
targetColumnName: ターゲット列名。
defaultValue: 値が見つからない場合は、デフォルト値が返されます。
QualifierSourceColumn: 修飾子列の名前。
QualifierSourceValue: 修飾子の値。
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.dvm.LookupValue
namespace-prefix: dvm
この関数は、ソース列の値がソース値と等しいドメイン値マップの複数のターゲット列の値を格納する、XMLドキュメント・フラグメントを返します。
シグネチャ:
dvm:lookupValue1M(dvmLocation,sourceColumnName,sourceValue,targetColumnName1,targetColumnName2...)
引数:
dvmMetadataURI: ドメイン値マップのURI。
SourceColumnName: ソース列名。
SourceValue: ソース値(XSLTトランスフォーメーションのソース文書にバインドされるXPath式)。
TargetColumnName: ターゲット列名。1つ以上の列名を指定する必要があります。 疑問符記号(?)は複数のターゲット列名を指定できることを示します。
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.dvm.LookupValue
namespace-prefix:dvm
この関数は、参照列の値に対応する値を相互参照列で参照するために使用します。
シグネチャ:
xref:lookupXRef(tableName,referenceColumnName,referenceValue,columnName,needAnException)
引数:
xrefLocation: 相互参照URI。
xrefReferenceColumnName: 参照列の名前。
xrefReferenceValue: 参照列名に対応する値。
xrefColumnName: 値が参照される列の名前。
needAnException: 値がtrueに設定されると、値が見つからない場合に例外がスローされ、そうでない場合は空の値が返されます。
プロパティID:
namespace-uri:http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions
namespace-prefix: xref
この関数は、参照列の値に対応する複数の値を相互参照列で参照するために使用します。
シグネチャ:
xref:lookupXRef1M(tableName,referenceColumnName,referenceValue,columnName,needAnException)
引数:
xrefLocation: 相互参照URI。
xrefReferenceColumnName: 参照列の名前。
xrefReferenceValue: 参照列名に対応する値。
xrefColumnName: 値が参照される列の名前。
needAnException: 値がtrueに設定されると、参照値が見つからない場合に例外がスローされます。trueに設定されていない場合は、空のノードセットが返されます。
プロパティID:
namespace-uri:http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions
namespace-prefix: xref
この関数は、XMLファイル(docURL)で、親XPath(parentXPath)、キーXPath(keyXPath)およびキー値(key)を指定されたlookupXPathで定義されている要素の文字列値を返します。
例: oraext:lookup-xml('file:/d:/country_data.xml', '/Countries/Country', 'Abbreviation', 'FullName', 'UK')は、ファイルD:\country_data.xmlで、Abbreviation = 'UK'である/Countries/Countryの子要素FullNameの値を返します。
シグネチャ:
oraext:lookup-xml(docURL, parentXPath, keyXPath, lookupXPath, key)
引数:
docURL: XMLファイル
parentXPath: 親XPath
keyXPath: キーXPath
lookupXPath: 参照XPath
key: キー値
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: oraext
この関数は、相互参照表の値を削除するために使用します。列の値には、削除済のマークが付きます。 この関数は、削除に成功した場合はtrue、それ以外の場合はfalseを返します。
シグネチャ:
xref:markForDelete(tableName,columnName,value)
引数:
xrefTableName: 相互参照表の名前
xrefColumnName: 値を削除する列の名前
xrefValueToDelete: 削除する値
プロパティID:
namespace-uri:http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions
namespace-prefix: xref
この関数は、参照列に参照値がある相互参照表(XREF)に列名を移入します。
シグネチャ:
xref:populateXRefRow(tableName,referenceColumnName,referenceValue,columnName,value,mode)
引数:
xrefLocation: 相互参照URI
xrefReferenceColumnName: 参照列の名前
xrefReferenceValue: 参照列名に対応する値
xrefColumnName: 値が参照される列の名前
xrefvalue: 参照列名に対応する値
xrefmode: XREFの移入モードの名前
プロパティID:
namespace-uri:http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions
namespace-prefix: xref
この関数は、参照列に参照値がある相互参照表(XREF)の参照列に複数の値を移入します。
シグネチャ:
xref:populateXRefRow1M(tableName,referenceColumnName,referenceValue,columnName,value,mode)
引数:
xrefLocation: 相互参照URI
xrefReferenceColumnName: 参照列の名前
xrefReferenceValue: 参照列名に対応する値
xrefColumnName: 値が参照される列の名前
xrefvalue: 参照列名に対応する値
xrefmode: XREFの移入モードの名前
プロパティID:
namespace-uri:http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions
namespace-prefix: xref
この項では、ワークフロー・サービス関数について説明します。
この関数は、現在のタスク割当て先を消去します。
シグネチャ:
hwf:clearTaskAssignees(taskID)
引数:
task: タスクのタスクID
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath
namespace-prefix: hwf
この関数は、Microsoft Word ML文書をBase 64でエンコードされた文字列として作成します。
シグネチャ:
hwf:createWordMLDocument(node, xsltURI)
引数:
node: このノードは、トランスフォーメーションへの入力であるXMLノードです。
xsltURI: ノード(第1引数)からMicrosoft Word MLへの変換に使用されるXSLT。
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath
namespace-prefix: hwf
この関数は、通知プロパティを取得します。 通知ごとに対応する値に評価されます。この関数は、通知コンテンツのXPath式でのみ使用してください。他の場所で使用すると、nullが返されます。
シグネチャ:
hwf:getNotificationProperty(propertyName)
引数:
propertyName: 通知プロパティの名前。次のいずれかの値です。
recipient: 通知の受信者
recipientDisplay: 受信者の表示名
taskAssignees: タスクの割当て先
taskAssigneesDisplay: タスク割当て先の表示名
locale: 受信者のロケール
taskId: 通知対象となるタスクのタスクID
taskNumber: 通知対象となるタスクのタスク番号
appLink: Oracle BPM Worklistのタスク詳細ページへのHTMLリンク
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath
namespace-prefix: hwf
この関数は、タスクが承認された回数を計算します。
シグネチャ:
hwf:getNumberOfTaskApprovals(taskId)
引数:
taskId: タスクのID
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath
namespace-prefix: hwf
この関数は、前のタスク承認者を取得します。
シグネチャ:
hwf:getPreviousTaskApprover(taskId)
引数:
taskId: タスクのID
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath
namespace-prefix: hwf
この関数は、指定された索引にあるタスクの添付ファイルを取得します。
シグネチャ:
hwf:getTaskAttachmentByIndex(taskId, attachmentIndex)
引数:
taskId: タスクのタスクID。
attachmentIndex: 添付ファイルの索引。索引は1から始まります。attachmentIndex引数には、値が索引番号の文字列として評価されるノードを指定できます(すべてのノード値は文字列です)。静的に指定する場合は、'1'として指定できます。
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath
namespace-prefix: hwf
この関数は、添付ファイル名でタスクの添付ファイルを取得します。
シグネチャ:
hwf:getTaskAttachmentByName(taskId, attachmentName)
引数:
taskId: タスクのタスクID
attachmentName: 添付ファイルの名前
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath
namespace-prefix: hwf
この関数は、添付ファイル名でタスクの添付ファイルのコンテンツを取得します。
シグネチャ:
hwf:getTaskAttachmentContents(taskId, attachmentName)
引数:
taskId: タスクのタスクID
attachmentName: 添付ファイルの名前
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath
namespace-prefix: hwf
この関数は、タスクの添付ファイル数を取得します。
シグネチャ:
hwf:getTaskAttachmentsCount(taskId)
引数:
taskId: タスクのタスクID
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath
namespace-prefix: hwf
この関数は、タスク定義に関連付けられているリソース・バンドルから国際化されたリソース値を返します。
シグネチャ:
hwf:getTaskResourceBundleString(taskId, key, locale?)
引数:
taskId: タスクのタスクID。
key: リソースへのキー。
locale: ロケール(オプション)。この値は、デフォルトでシステム・ロケールに設定されます。この場合、ネームスペースhttp://xmlns.oracle.com/bpel/services/taskServiceのresourceString XML要素が返されます。これにはリソース・バンドルからの文字列が含まれます。
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath
namespace-prefix: hwf
この関数は、指定の割当てパターンに従って選択されたアイデンティティ・サービス・グループの名前を取得します。グループは、指定したグループの下位グループ(単一のグループ名を指定した場合)またはグループ・リスト(ユーザー名リストを指定した場合)から選択されます。アイデンティティ・サービスが複数のレルムで構成されている場合は、グループのレルム名も指定する必要があります。追加の割当てパターン固有のパラメータも指定できます。これらの追加パラメータは、使用する特定の割当てパターンの詳細によってはオプションです。
この関数には2つのシグネチャがあります。
シグネチャ1:
hwf:wfDynamicGroupAssign('patternName','groupName','realmName'?,'patternParam1'?,'patternParam2'?,...,'patternParamN'?)
引数1:
patternName: 割当てパターンの名前(例: ROUND_ROBIN)
groupName: 下位グループの選択元となるグループの名前
realmName: グループが属しているアイデンティティ・サービス・レルムの名前
patternParam1...patternParamN: 割当てパターン実装に必要な追加パラメータ(パターンによってはオプション)
シグネチャ2:
hwf:wfDynamicGroupAssign('patternName','groupList','realmName'?,'patternParam1'?,'patternParam2'?,...,'patternParamN'?)
引数2:
patternName: 割当てパターンの名前(例: ROUND_ROBIN)
groupList: グループの選択元となるグループ・リスト
realmName: グループが属しているアイデンティティ・サービス・レルムの名前
patternParam1...patternParamN: 割当てパターン実装に必要な追加パラメータ(パターンによってはオプション)
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath
namespace-prefix: hwf
この関数は、指定の割当てパターンに従って選択されたアイデンティティ・サービス・ユーザーの名前を返します。ユーザーは、指定したグループの下位ユーザー(単一のグループ名を指定した場合)またはユーザー・リスト(ユーザー名リストを指定した場合)から選択されます。アイデンティティ・サービスが複数のレルムで構成されている場合は、グループおよびユーザーのレルム名も指定する必要があります。追加の割当てパターン固有のパラメータも指定できます。これらの追加パラメータは、使用する特定の割当てパターンの詳細によってはオプションです。
この関数には2つのシグネチャがあります。
シグネチャ1:
hwf:wfDynamicUserAssign('patternName','groupName','realmName'?,'patternParam1'?,....,'patternParam2'?,...,'patternParamN'?)
引数1:
patternName: 割当てパターンの名前(例: ROUND_ROBIN)
groupName: 下位ユーザーの選択元となるグループの名前
realmName: グループが属しているアイデンティティ・サービス・レルムの名前
patternParam1 ... patternParamN: 割当てパターン実装に必要な追加パラメータ(パターンによってはオプション)
シグネチャ2:
hwf:wfDynamicUserAssign(patternName,userList,realmName?,patternParam1?,patternParam2?,...,patternParamN?)
引数2:
patternName: 割当てパターンの名前(例: ROUND_ROBIN)
userList: ユーザーの選択元となるユーザー・リスト
realmName: ユーザーが属しているアイデンティティ・サービス・レルムの名前
patternParam1...patternParamN: 割当てパターン実装に必要な追加パラメータ(パターンによってはオプション)
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/workflow/xpath
namespace-prefix: hwf
この項では、アイデンティティ・サービス関数について説明します。
この関数は、デフォルトのレルム名を返します。
シグネチャ:
ids:getDefaultRealmName()
引数: この関数には引数がありません。
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/services/IdentityService/xpath
namespace-prefix: ids
この関数は、指定したグループのプロパティ値を返します。グループまたは属性が存在しない場合は、nullを返します。
シグネチャ:
ids:getGroupProperty(groupName, attributeName, realmName)
引数:
groupName: 属性を取得するグループを含む文字列または要素。
attributeName: グループ属性の名前を含む文字列または要素。属性名は次のいずれかの値です。
displayName
email
アイデンティティ・サービスでLDAP providerTypeまたはJAZN LDAPベースのプロバイダが使用される場合は、これらの属性で検索できるようにLDAPサーバーを構成します。
realmName: レルム名。この引数はオプションです。指定しない場合は、デフォルトのレルムが使用されます。
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/services/IdentityService/xpath
namespace-prefix: ids
この関数は、指定したユーザーのマネージャを取得します。ユーザーが存在しない、またはこのユーザーにマネージャが存在しない場合は、nullを返します。
シグネチャ:
ids:getManager(userName, realmName)
引数:
userName: ユーザー名。
realmName: レルム名。この引数はオプションです。指定しない場合は、デフォルトのレルムが使用されます。
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/services/IdentityService/xpath
namespace-prefix: ids
この関数は、ユーザーの報告先を取得します。ユーザーが存在しない場合は、nullを返します。この関数はノードのリストを返します。リストの各ノードはuserです。
シグネチャ:
ids:getReportees(userName, upToLevel, realmName)
引数:
userName: ユーザー名。
upToLevel: 結果に含める間接報告先のレベル数を定義します。値が1の場合は、直接報告先のみが返されます。値が-1の場合は、全レベルの報告先が返されます。値xsd:numberを含む要素、または文字列(例: '1')のいずれかを指定できます。
realmName: レルム名。この引数はオプションで、指定しない場合はデフォルトのレルムが使用されます。
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/services/IdentityService/xpath
namespace-prefix: ids
この関数は、サポートされるレルム名を返します。
シグネチャ:
ids:getSupportedRealms()
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/services/IdentityService/xpath
namespace-prefix: ids
この関数は、ユーザーのプロパティを返します。ユーザーまたは属性が存在しない場合は、nullを返します。
シグネチャ:
ids:getUserProperty(userName, attributeName, realmName)
引数:
userName: 属性を取得するユーザーを含む文字列または要素。
attributeName: ユーザー属性の名前。属性名は次のいずれかの値です。
givenName
middleName
sn
displayName
mail
telephoneNumber
homephone
mobile
facsimile
pager
preferredlanguage
title
manager
アイデンティティ・サービスでLDAP providerTypeまたはJAZN LDAPベースのプロバイダが使用される場合は、これらの属性で検索できるようにLDAPサーバーを構成します。
realmName: レルム名。この引数はオプションです。指定しない場合は、デフォルトのレルム名が使用されます。
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/services/IdentityService/xpath
namespace-prefix: ids
この関数は、ユーザー・ロールを取得します。roleTypeに応じて、アプリケーション・ロールまたはグループのいずれかのオブジェクト・リストを返します。ユーザーまたはロールが存在しない場合は、nullを返します。
シグネチャ:
ids:getUserRoles(userName, roleType, direct)
引数:
userName: ロールを取得するユーザーを含む文字列または要素。
roleType: ロール・タイプ。3つの値ApplicationRole、EnterpriseRoleまたはAnyRoleのいずれかです。
direct: 直接ロールをフェッチするか間接ロールをフェッチするかを示す文字列または要素。この引数はオプションです。指定しない場合は、直接ロールのみがフェッチされます。xsd:booleanまたは文字列true/falseを指定します。
プロパティID:
namespace-uri:http://xmlns.oracle.com/bpel/services/IdentityService
namespace-prefix: ids
この関数は、グループ内のユーザーを取得します。グループが存在しない場合は、nullを返します。この関数はノードのリストを返します。リストの各ノードはuserです。
シグネチャ:
ids:getUsersInGroup(groupName, direct, realmName)
引数:
groupName: グループ名。
direct: ブール・フラグ。trueの場合は、直接ユーザー権限受領者が返され、それ以外の場合はすべてのユーザー権限受領者が返されます。値xsd:booleanを含む要素、または文字列'true'/'false'のいずれかを指定できます。
realmName: レルム名。この引数はオプションです。指定しない場合は、デフォルトのレルム名が使用されます。
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/services/IdentityService/xpath
namespace-prefix: ids
この関数は、ユーザーに指定ロールがあるかどうかを検証します。
シグネチャ:
ids:isUserInRole(userID, roleName, realmName)
引数:
userID: ロールの付与を検証するユーザーを含む文字列または要素。
roleName: ロール名。
realmName: レルム名。この引数はオプションです。指定しない場合は、デフォルトのレルム名が使用されます。
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/services/IdentityService/xpath
namespace-prefix: ids
この関数は、グループを取得します。グループが存在しない場合は、nullを返します。
シグネチャ:
ids:lookupGroup(groupName, realmName)
引数:
groupName: グループ名。
realmName: レルム名。この引数はオプションです。指定しない場合は、デフォルトのレルム名が使用されます。
プロパティID:
namespace-uri: http://xmlns.oracle.com/bpel/services/IdentityService/xpath
namespace-prefix: ids
XPathビルディング・アシスタントを使用してXPath式を作成できます。
次のような様々なダイアログの様々な場所でXPath式を指定できます。
XPath式ビルダーの「式」フィールド
assignアクティビティの「コピー操作」タブで作成される操作の「式」フィールド
while、wait、switchおよびpick(onAlarmブランチ)アクティビティの「式」フィールド
XSLTマッパーの「XPath式の編集」および「関数の編集」ダイアログ
長い式および複雑な式を手動で指定できますが、非効率的で間違いやすいプロセスになる可能性があります。XPathビルディング・アシスタントには、このプロセスを簡素化する一連の機能が用意されています。
次の項目に関する自動完了機能
要素および属性
関数
BPEL変数およびパート
関数パラメータのツールのヒント
XPathの構文検証およびセマンティク検証
XPathビルディング・アシスタントを起動するには、「式」フィールド内をクリックし、[Ctrl]キーを押しながら[Space]キーを押します。 XPathビルディング・アシスタントは、XPath式を入力する必要がある、Oracle JDeveloperおよびXSLTマッパーの関数ダイアログの全フィールド内で使用できます。

この項では、XPathビルディング・アシスタントを使用して、「コピー操作の作成」ダイアログの「式」フィールドの「From」セクションで式を作成する方法の例を示します。この例では、注文書内のOrderCommentsに文字列値を追加するXPath式をモデル化します。注文書要素は、使用可能ないずれかのBPEL変数のパートです。
カーソルを「式」フィールド内に置きます。

[Ctrl]キーを押しながら[Space]キーを押して、式を作成するための値リストを表示します。

次のいずれかの方法でリストから値を選択します(この例では、「concat(String) as String」を選択)。
リストを下へスクロールして、「concat(String) as String」をダブルクリックします。
cを入力して、その文字で始まる項目のみを表示し、「concat(String) as String」をダブルクリックします。
この値が「式」フィールドに追加されます。別のオプションのリストが再度自動的に表示され、XPath式の次の部分を入力するように求められます。
次の部分を選択してダブルクリックします(この例では、「bpws」の2番目のエントリを選択)。

この値が「式」フィールドに追加されます。リストが再度自動的に表示され、XPath式の次の部分を入力するように求められます。
「inputVariable」を選択してダブルクリックします。

このプロセスを続けて実行して、XPath式の残りの部分を作成します(この例では、表示順に「payload」→「ns1:/PurchaseOrder」→「ns1:/OrderInfo」→「ns1:OrderComments」をそれぞれダブルクリック)。

必要に応じてテキストを手動で追加します(この例では「,',Selected: Select Manufacturing'」を追加)。必要な場合は、論理演算子(>、<など)を手動で入力することもできます。

|
注意: XPathビルディング・アシスタントのポップアップでダブルクリックを使用するかわりに、[Enter]キーを押して選択することもできます。式の入力の完了後も情報の入力を求めるプロンプトが表示される場合は、[Esc]キーを押してください。この操作でリストが閉じます。 |
この項では、XPathビルディング・アシスタントを使用して、XSLTマッパーの「XPath式の編集」ダイアログで式を作成する方法の例を示します。
「トランスフォーメーション」ダイアログに移動します。
「コンポーネント・パレット」リストから「Advanced Functions」を選択します。
リストを下へスクロールして「xpath-expression」を見つけます。
「xpath-expression」を「トランスフォーメーション」ダイアログにドラッグ・アンド・ドロップします。

関数をダブルクリックして、「XPath式の編集」ダイアログを表示します。
「XPath式」フィールド内でカーソルをクリックします。
[Ctrl]キーを押しながら[Space]キーを押して、式を作成するための値リストを表示します。

次のいずれかの方法でリストから値を選択します(この例では、「concat(String) as String」を選択)。
リストを下へスクロールして、「concat(String) as String」をダブルクリックします。
cを入力して、その文字で始まる項目のみを表示し、「concat(String) as String」をダブルクリックします。

この選択値が「XPath式」フィールドに追加されます。別のオプションのリストが再度自動的に表示され、XPath式の次の部分を入力するように求められます。
このプロセスを続けて実行して、XPath式の残りの部分を作成します(この例では、表示順に「po:PurchaseOrder」→「po:ShipTo」→「po:Name」→「po:First」をそれぞれダブルクリック)。
このプロセスを続けて実行して、式の残りの部分を作成します。
完了後、「OK」をクリックして「XPath式の編集」ダイアログを閉じます。
関数パラメータのツールのヒントでは、選択したXPath関数の適切な引数が表示されます。たとえば、関数concatを手動で入力し、次に(を入力すると、パラメータのツールのヒントが表示され、concat関数の適切な引数が表示されます。関数の現在の引数名が太字でハイライト表示されます。

1つの引数の指定が終わり、カンマを入力して次の引数に進むと、ツールのヒントが更新されて2番目の引数名が太字でハイライト表示されます。以降も同様に処理されます。関数が含まれている既存のXPathの編集中に、パラメータのツールのヒントを再起動するには、関数内にカーソルを置き、[Ctrl]キーと[Shift]キーを押しながら[Space]キーを押します。
Oracle JDeveloper内では、XPath式は、XPath 1.0仕様に準拠している場合は構文的に有効であるとみなされます。XPathビルディング・アシスタントでは、構文的に誤りのあるXPath(例: カッコやアポストロフィの欠落)については、誤りのある部分に赤い下線が付けられて警告されます。この部分にマウス・ポインタを移動します。これにより、エラー・メッセージがツールのヒントとして表示されます。エラーを修正すると、赤い下線付きのエラー表示は表示されなくなります。

構文的に有効なXPathがセマンティク的には無効な場合があります。この場合は、実行時に予期しないエラーが発生する可能性があります。たとえば、要素、変数、関数またはパートの名前の綴りが間違っていることがあります。XPathビルディング・アシスタントでは、セマンティク・エラーについては、誤りのある部分に青い下線が付けられて警告されます。この部分にマウス・ポインタを移動します。これにより、エラー・メッセージがツールのヒントとして表示されます。エラーを修正すると、青い下線付きのエラー表示は表示されなくなります。

一部のダイアログでは、フリー・フォーム・テキストとXPath式を組み合せて使用できます。
フィールドにカーソルを置くと、この機能を説明するポップアップ・メッセージが表示されます。

フリー・フォーム・テキストを入力します(この例では、'Hello, your telephone number')。

XPathビルディング・アシスタントを起動する準備が整ったところで<%と入力します。

赤い下線が表示されます。これは、追加情報の入力を求められていることを示します。
[Ctrl]キーを押しながら[Space]キーを押して、XPathビルディング・アシスタントを起動します。

リストを下へスクロールして、選択する値をダブルクリックします。
このプロセスを続けて実行して、式の残りの部分を作成します。
Oracle SOA Suiteで使用するためのユーザー定義(カスタム)XPath拡張関数を作成できます。これらの関数は、次のコンポーネントに対して作成できます。
Oracle BPEL Process Manager
Oracle Mediator
XSLTマッパー
ヒューマン・ワークフロー
これらのすべてのコンポーネントで共有
Oracle SOA SuiteのXPath拡張関数は、次の標準に従います。
単一のスキーマで、システム関数とユーザー定義関数の両方の構成構文を定義します。
XPath関数は、使用方法(Oracle BPEL Process Manager、Oracle Mediator、ヒューマン・ワークフロー、XSLTマッパーおよびすべてで共通使用)に基づいて分類されます。
システム関数は、ユーザー定義関数と区別されます。
リポジトリで、システム関数の構成ファイルとユーザー定義関数の構成ファイルの両方をホストします。
リポジトリで、ユーザー定義関数の実装JARファイルをホストし、自動的にJava仮想マシン(JVM)(クラス・ローダー)で使用できるようにします。
関数の作成に関する次の規則に従うことをお薦めします。
可能な場合は、すべてのコンポーネントで共有できる関数を作成します。すべてのコンポーネントで共有される関数は、ext-soa-xpath-functions-config.xmlという構成ファイルに作成できます。XSLTマッパーの関数は、Oracle BPEL Process Manager、Oracle Mediatorおよびヒューマン・ワークフローの関数と異なる方法で実装する必要があることに注意してください。
これらの実装に関する相違点の説明は、B.7.1項「ユーザー定義XPath拡張関数の実装方法」を参照してください。
あるコンポーネント用で他のコンポーネントでは使用できない関数(例: Oracle Mediatorまたはヒューマン・ワークフローで使用できないOracle BPEL Process Manager用の関数)を作成する場合は、その関数をそのコンポーネントに固有の構成ファイルに作成します。この例では、Oracle BPEL Process Managerの関数をext-bpel-xpath-functions-config.xmlという構成ファイルに作成する必要があります。
例B-1に、システム関数およびユーザー定義関数で使用される関数スキーマを示します。
例B-1 関数スキーマ
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://xmlns.oracle.com/soa/config/xpath"
targetNamespace="http://xmlns.oracle.com/soa/config/xpath"
elementFormDefault="qualified">
<element name="soa-xpath-functions" type="tns:XpathFunctionsConfig"/>
<element name="function" type="tns:XpathFunction"/>
<complexType name="XpathFunctionsConfig">
<sequence>
<element ref="tns:function" minOccurs="1" maxOccurs="unbounded"/>
</sequence>
<attribute name="resourceBundle" type="string"/>
<attribute name="version" type="string"/>
</complexType>
<complexType name="XpathFunction">
<sequence>
<element name="className" type="string"/>
<element name="return">
<complexType>
<attribute name="type" type="tns:XpathType"
use="required"/>
</complexType>
</element>
<element name="params" type="tns:Params" minOccurs="0"
maxOccurs="1"/>
<element name="desc">
<complexType>
<simpleContent>
<extension base="string">
<attribute name="resourceKey"
type="string"/>
</extension>
</simpleContent>
</complexType>
</element>
<element name="detail" minOccurs="0">
<complexType>
<simpleContent>
<extension base="string">
<attribute name="resourceKey"
type="string"/>
</extension>
</simpleContent>
</complexType>
</element>
<element name="icon" minOccurs="0">
<complexType>
<simpleContent>
<extension base="string">
<attribute name="resourceKey"
type="string"/>
</extension>
</simpleContent>
</complexType>
</element>
<element name="helpURL" minOccurs="0">
<complexType>
<simpleContent>
<extension base="string">
<attribute name="resourceKey"
type="string"/>
</extension>
</simpleContent>
</complexType>
</element>
<element name="group" minOccurs="0">
<complexType>
<simpleContent>
<extension base="string">
<attribute name="resourceKey" type="string"/>
</extension>
</simpleContent>
</complexType>
</element>
<element name="wizardClass" type="string" minOccurs="0"/>
</sequence>
<attribute name="name" type="string" use="required"/>
<attribute name="deprecated" type="boolean" use="optional"/>
</complexType>
<complexType name="Params">
<sequence>
<element name="param" minOccurs="1" maxOccurs="unbounded">
<complexType>
<attribute name="name" type="string" use="required"/>
<attribute name="type" type="tns:XpathType"
use="required"/>
<attribute name="minOccurs" type="string"
default="1"/>
<attribute name="maxOccurs" type="string"
default="1"/>
<attribute name="wizardEnabled" type="boolean"
default="false"/>
</complexType>
</element>
</sequence>
</complexType>
<simpleType name="XpathType">
<restriction base="string">
<enumeration value="string"/>
<enumeration value="boolean"/>
<enumeration value="number"/>
<enumeration value="node-set"/>
<enumeration value="tree"/>
</restriction>
</simpleType>
</schema>
この項では、Oracle SOA Suiteコンポーネントのユーザー定義XPath拡張関数を実装する方法を説明します。
XSLTマッパーのユーザー定義XPath拡張関数の実装は、他のコンポーネントと次のように異なります。
各XSLTマッパー関数に、public staticクラスの対応するpublic staticメソッドが必要です。関数名とメソッド名が一致する必要があります。
XSLTマッパー関数のネームスペースの形式はhttp://www.oracle.com/XSL/Transform/java/mypackage.MyFunctionClassである必要があります。mypackage.MyFunctionClassは、関数のpublic staticメソッドが含まれているpublic staticクラスの完全修飾クラス名です。
XSLTマッパーのユーザー定義XPath拡張関数の作成に関する詳細は、第45.3.4.4項「ユーザー定義関数のインポート」を参照してください。
Oracle BPEL Process Manager、Oracle Mediatorおよびヒューマン・ワークフローの関数では、oracle.fabric.common.xml.xpath.IXPathFunctionインタフェース(fabric-runtime.jarファイルで定義)またはjavax.xml.xpath.XPathFunctionを実装する必要があります。
他のすべてのコンポーネントに対する関数を実装する手順は、次のとおりです。
XPath関数用のoracle.fabric.common.xml.xpath.IXPathFunctionインタフェースを実装します。IXPathFunctionインタフェースには、call(context, args)という1つのメソッドがあります。このメソッドのシグネチャは次のとおりです。
package oracle.fabric.common.xml.xpath;
public interface IXPathFunction
{
/** Call this function.
*
* @param context The context at the point in the
* expression when the function is called.
* @param args List of arguments provided during
* the call of the function.
*/
public Object call(IXPathContext context, List args) throws
XPathFunctionException;
}
内容は次のとおりです。
context: 関数をコールした時点の式内のコンテキスト
args: 関数のコール時に指定する引数のリスト
次の例では、w3c nodeの値を取得するgetNodeValue(arg1)という関数が実装されます。
package com.collaxa.cube.xml.xpath.dom.functions;
import oracle.fabric.common.xml.xpath.IXPathFunction;
import oracle.fabric.common.xml.xpath.IXPathFunction
. . .
public class GetNodeValue implements IXPathFunction {
Object call(IXPathContext context, List args) throws XPathFunctionException
{
org.w3c.dom.Node node = (org.w3c.dom.Node) args.get(0);
return node.getNodeValue()
}
}
この項では、ユーザー定義XPath拡張関数の構成方法について説明します。
ユーザー定義XPath拡張関数を構成する手順は、次のとおりです。
関数を定義するXPath拡張構成ファイルを作成します。例B-2に、例B-1で示した関数スキーマに基づくサンプル構成ファイルを示します。この例では、mf:myFunction1とmf:myFunction2の2つの関数が作成されます。
例B-2 XML拡張構成ファイルのサンプル
<?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-1に、構成ファイルの要素を示します。各関数の構成ファイルで、そのルート要素としてsoa-xpath-functionsが使用されます。ルート要素にはオプションのresourceBundle属性があります。 resourceBundleの値は、すべての関数構成に対するNLSサポートを提供するリソース・バンドル・クラスの完全修飾クラス名です。
表B-1 関数スキーマの要素
| 要素 | 説明 |
|---|---|
|
|
関数実装クラスの完全修飾クラス名。 |
|
|
関数の戻り型。XPathおよびXSLTでサポートされているstring、number、boolean、node-setおよびtreeのいずれかを指定できます。 |
|
|
関数のパラメータ。関数にはパラメータがない場合があります。パラメータには次の属性があります。
|
|
|
関数の説明(オプション)。 |
|
|
関数の長い(詳細な)説明(オプション)。 |
|
|
関数のアイコンのURL(オプション)。 |
|
|
関数のヘルプHTMLのURL(オプション)。 |
|
|
関数のグループ名(オプション)。 |
|
|
ウィザードを使用可能にしたすべてのパラメータに対するウィザード・クラスの完全修飾クラス名。パラメータ値を入力する必要があるユーザー・インタフェースをサポートするための要素です。このウィザード・クラスは、ウィザード起動ボタンを押すと起動され、ユーザーがパラメータ値を簡単に入力できるようにします。ウィザードを使用可能にするパラメータを指定していない場合、この要素は指定しないでください。 注意: この要素は、ユーザー定義関数ではサポートされていません。この機能を現在サポートしているのはシステム関数のみです。 |
関数を使用するコンポーネント・タイプに基づいて、ユーザー定義のXPath拡張構成ファイルの名前を指定します。表B-2に、ユーザー定義構成ファイルに使用するネーミング規則を示します。
表B-2 ユーザー定義構成ファイル
| 関数を使用するコンポーネント | 使用する構成ファイル名 |
|---|---|
|
Oracle BPEL Process Manager |
|
|
Oracle Mediator |
|
|
XSLTマッパー |
|
|
ヒューマン・ワークフロー |
|
|
すべてのコンポーネント |
|
構成ファイルをコンパイル済クラスとともにJARファイル内に配置します。JARファイル内で、構成ファイルはMETA-INFディレクトリに格納される必要があります。JARファイルは特定のディレクトリに存在する必要はありません。
|
注意: customXpathFunction jarは、SOAコンポジットの一部ではないため、明示的に追加する必要があります。 |
Oracle JDeveloperで、「ツール」→「プリファレンス」→「SOA」の順に選択します。
「追加」ボタンをクリックし、JARファイルを選択します。
変更を有効にするためにOracle JDeveloperを再起動します。
JARファイルがJVMのクラスパスに自動的に追加され、使用可能になります。
ユーザー定義関数をランタイム環境にデプロイできます。
ユーザー定義関数をランタイムにデプロイする手順は、次のとおりです。
ユーザー定義関数のJARファイルをBEA_Home/user_projects/domains/domain_name/libまたはlibのサブディレクトリにコピーします。
domain_nameは、Oracle WebLogic Serverドメインの名前です(例: soainfra)。
Oracle WebLogic Serverを再起動します。
|
注意: 別の方法として、BEA_Home/user_projects/domains/domain_name/libディレクトリをクラス・ローダーに追加できます。 これによって、Oracle WebLogic Serverを再起動する必要がなくなります。 |