Oracleには、ビルトインのESB機能とXPath標準を使用するXPath拡張関数が用意されています。この章では、各XPath拡張関数の説明、シグネチャ、引数の説明およびプロパティID情報を提供します。
項目は次のとおりです。
この関数では、指定された期間にdateTimeを加算した新しい日時の値が返されます。
期間の値が負の場合、結果の値はdateTimeより前の日時になります。
シグネチャ:
xp20: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: xp20
この関数では、inputStringとcompareStringの各文字のUnicode値が比較され、これらの文字列間の辞書的な差異が返されます。
inputStringが辞書的にcompareStringより前にある場合は、-1が返されます。
inputStringとcompareStringが等しい場合は、0が返されます。
inputStringが辞書的にcompareStringより後にある場合は、1が返されます。
例:
xp20:compare('Audi', 'BMW')の場合は、-1が返されます。
シグネチャ:
xp20: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: xp20
この関数では、大/小文字を無視してinputStringとcompareStringの各文字のUnicode値が比較され、これらの文字列間の辞書的な差異が返されます。
inputStringが辞書的にcompareStringより前にある場合は、-1が返されます。
inputStringとcompareStringが等しい場合は、0が返されます。
inputStringが辞書的にcompareStringより後にある場合は、1が返されます。
例:
xp20:compare-ignore-case('Audi','bmw')の場合は、-1が返されます。
シグネチャ:
orcl:compare-ignore-case(inputString as string, compareString as string)
引数:
inputString as string: 入力文字列
compareString as string: 入力文字列と比較される文字列
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xp20
この関数では、nodeSetから作成され、デリミタで区切られた文字列が返されます。
シグネチャ:
orcl: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: orcl
この関数では、現在の日付がISO書式YYYY-MM-DDで返されます。
シグネチャ:
xp20:current-date(object)
引数:
object: 標準書式の時刻
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xp20
この関数では、現在の日時がISO書式CCYY-MM-DDThh:mm:ssTZDで返されます。
シグネチャ:
xp20:current-dateTime(object)
引数:
object: 標準書式の時刻
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xp20
この関数では、現在の時刻がISO書式で返されます。この書式はhh:mm:ssTZDです。
シグネチャ:
xp20:current-time(object)
引数:
object: 標準書式の時刻
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xp20
この関数では、dateTimeに含まれる日の情報が返されます。デフォルトの日は1です。
シグネチャ:
xp20:day-from-dateTime(object)
引数:
object: 標準書式の時刻
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xp20
この関数では、XMLファイルのコンテンツが返されます。
シグネチャ:
ora:doc('fileName','xpath'?)
引数:
fileName: XMLファイルの名前
xpath: XMLファイルのパス
プロパティID:
namespace-uri: http://schemas.oracle.com/xpath/extension
namespace-prefix: ora
この関数では、inputStringがsearchStringで終わる場合、trueが返されます。
例:
xp20:ends-with('XSL Map','Map')の場合は、trueが返されます。
シグネチャ:
xp20: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: xp20
この関数では、指定した書式を使用して書式設定されたdateTimeの文字列が返されます。
シグネチャ:
xp20: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: xp20
この関数では、渡した引数を使用して書式設定されたメッセージが返されます。少なくとも1つの引数が必要であり、最大10の引数がサポートされます。
例:
orcl:format-string('{0} + {1} = {2}','2','2','4')の場合は、'2 + 2 = 4'が返されます。
シグネチャ:
orcl: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: orcl
この関数では、一意のGUIDが生成されます。
シグネチャ:
orcl:generate-guid()
引数:
なし
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: orcl
この関数では、入力要素のXML表現が返されます。
シグネチャ:
orcl: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: orcl
この関数では、キーに対するロケール固有の文字列が返されます。言語、国、変数およびリソース・バンドルを使用して、正しいリソース・バンドルが識別されます。
リソース・バンドルは、resourceBaseURLに対してresourceLocationを解決することによって取得されます。URLは、/で終わる場合にかぎりディレクトリとみなされます。
使用方法:
orcl: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)
例: orcl:get-localized-string('file:/c:/','','MyResourceBundle','en','US','','MSG_KEY')の場合は、C:¥ディレクトリのリソース・バンドル'MyResourceBundle'からロケール固有の文字列が返されます。
シグネチャ:
orcl: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: orcl
この関数では、インバウンド・レスポンス・ヘッダーから文字列値が取得されます。
シグネチャ:
ehdr:getInboundResponseHeader(headerXPath, namespaceDeclarations)
引数:
headerXPathは、ヘッダー文書へのXPathです。
namespaceDeclarationsは、headerXPath内でprefix=Namespace-URIとして使用されます。
プロパティID:
http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.headers.ESBHeaderFunctions
namespace-prefix: ehdr
この関数では、リクエスト・メッセージ・ヘッダーから文字列値が取得されます。
シグネチャ:
ehdr:getRequestHeader(headerXPath, namespaceDeclarations)
引数:
headerXPathは、ヘッダー文書へのXPathです。
namespaceDeclarationsは、headerXPath内でprefix=Namespace-URIとして使用されます。
プロパティID:
http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.headers.ESBHeaderFunctions
namespace-prefix: ehdr
この関数では、dateTimeに含まれる時間の情報が返されます。デフォルトの時間は0です。
シグネチャ:
xp20:hours-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: xp20
この関数では、現在のタイムゾーンが、UTC(協定世界時)からの偏差を示すISO書式+/- hh:mmで返されます。
シグネチャ:
xp20:implicit-timezone(object)
引数:
object: 標準書式の時刻
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xp20
この関数では、inputStringの中で最初に出現するsearchStringのゼロから始まる索引が返されます。
searchStringが見つからない場合は、-1が返されます。
例:
orcl:index-within-string('ABCABC, 'B')の場合は、1が返されます。
シグネチャ:
orcl: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: orcl
この関数では、inputStringの中で最後に出現するsearchStringのゼロから始まる索引が返されます。
searchStringが見つからない場合は、-1が返されます。
例:
orcl:last-index-within-string('ABCABC', 'B')の場合は、4が返されます。
シグネチャ:
orcl: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: orcl
この関数では、inputStringから先頭の空白文字をすべて削除した値が返されます。
例:
orcl:left-trim(' account ')の場合は、'account 'が返されます。
シグネチャ:
orcl:left-trim(inputString)
引数:
inputString: 左側の空白を切り捨てる文字列
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: orcl
この関数では、ソース列の値がソースの値と等しいDVM内のターゲット列の値が検索され、文字列が返されます。ソースの値は、XSLTトランスフォーメーションのソース文書にバインドされるXPath式です。式はトランスフォーメーション中に評価され、結果の値がルックアップ用のソースの値として渡されます。この関数には5つのパラメータがあります。
例:
orcl:lookup-dvm ('StateCodes','Long',/inp1:Customer/Profile/AccountRep/Address/State,'Short',"")
シグネチャ:
orcl:lookup-dvm (dvmName as string, sourceColumn as string, sourceValue as xpath expression, targetColumnName as string, defaultValue as string)
引数:
dvmName
sourceColumnName
sourceValue
targetColumnName
defaultValue
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: orcl
この関数では、パラメータから生成されたSQL問合せに基づいて文字列が返されます。
この文字列は、次の問合せを実行することによって取得されます。
SELECT outputColumn FROM table WHERE inputColumn = key
この問合せの対象は、JDBC接続文字列(jdbc:oracle:thin:username/password@host:port:sid)またはデータ・ソースJNDI識別子のいずれかのデータ・ソースです。JDBC接続文字列を使用する場合は、Oracle Thinドライバのみがサポートされます。
例:
orcl:lookup-table('employee','id','1234','last_name','jdbc:oracle:thin:scott/tiger@localhost:1521:ORCL')
シグネチャ:
orcl:lookup-table(table, inputColumn, key, outputColumn, datasource)
引数:
table: データの抽出元となる表
inputColumn: 表内の列
key: キー
outputColumn: データを出力する列
datasource: データのソース
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: orcl
この関数では、XMLファイル(docURL)で、親XPath(parentXPath)、キーXPath(keyXPath)およびキー値(key)が指定されたlookupXPathで定義される要素の文字列値が返されます。
例:
orcl:lookup-xml('file:/d:/country_data.xml', '/Countries/Country', 'Abbreviation', 'FullName', 'UK')の場合は、ファイルD:¥country_data.xmlで、Abbreviation = 'UK'である/Countries/Countryの子要素FullNameの値が返されます。
シグネチャ:
orcl: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: orcl
この関数では、inputStringの文字をすべて小文字に変換した値が返されます。
例:
xp20:lower-case('ABc!D')の場合は、'abc!d'が返されます。
シグネチャ:
xp20:lower-case(inputString)
引数:
inputString: 入力文字列
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xp20
この関数では、dateTimeに含まれる分の情報が返されます。デフォルトの分は0です。
シグネチャ:
xp20:minutes-from-dateTime(dateTime)
引数:
dateTime: dateTime
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xp20
この関数では、dateTimeに含まれる月の情報が返されます。デフォルトの月は1(1月)です。
シグネチャ:
xp20:month-from-dateTime(dateTime)
引数:
dateTime: 書式設定されるdateTime
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xp20
この関数では、指定されたデータベースに対してSQL問合せが実行され、ノードセットが返されます。
シグネチャ:
orcl:query-database(sqlquery as string, rowset as boolean, row as boolean, datasource as string)
引数:
sqlquery: 実行するSQL問合せ
rowset: 行を<rowset>要素で囲むかどうかを指定
row: 各行を<row>要素で囲むかどうかを指定
datasource: データベースの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: orcl
この関数では、inputStringから後続の空白文字をすべて削除した値が返されます。
例:
orcl:right-trim(' account ')の場合は、' account'が返されます。
シグネチャ:
orcl:right-trim(inputString as string)
引数:
inputString: 右側の空白を切り捨てる入力文字列
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: orcl
この関数では、dateTimeに含まれる秒の情報が返されます。デフォルトの秒は0です。
シグネチャ:
xp20:seconds-from-dateTime(dateTime as string)
引数:
dateTime: dateTime(文字列)
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xp20
この関数では、Oracleの順序の次の値が返されます。
順序における次の値は、次の問合せを実行することによって取得されます。
SELECT sequence.nextval FROM dual
この問合せの対象は、JDBC接続文字列(jdbc:oracle:thin:username/password@host:port:sid)またはデータ・ソースJNDI識別子のいずれかのデータ・ソースです。JDBC接続文字列を使用する場合は、Oracle Thinドライバのみがサポートされます。
例:
orcl:sequence-next-val('employee_id_sequence','jdbc:oracle:thin:scott/tiger@localhost:1521:ORCL')
シグネチャ:
orcl:sequence-next-val(sequence as string, datasource as string)
引数:
sequence: データベース内の順序の名前
datasource: JDBC接続文字列またはデータ・ソースJNDI識別子
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.
namespace-prefix: orcl
この関数では、アウトバウンド・メッセージ・ヘッダー値が設定されます。
シグネチャ:
ehdr:set-outbound-header(headerXPath, value, namespaceDeclarations)
引数:
headerXPathは、アウトバウンド・ヘッダー文書へのXPathです。
valueは、アウトバウンド・メッセージ・ヘッダーに設定する値です。
namespaceDeclarationsは、headerXPath内でprefix=Namespace-URIとして使用されます。
プロパティID:
http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.headers.ESBHeaderFunctions
namespace-prefix: ehdr
この関数では、レスポンス・メッセージ・ヘッダー値が設定されます。
シグネチャ:
ehdr:set-response-header(headerXPath, value, namespaceDeclarations)
引数:
headerXPathは、レスポンス・ヘッダー文書へのXPathです。
valueは、レスポンス・メッセージ・ヘッダーに設定する値です。
namespaceDeclarationsは、headerXPath内でprefix=Namespace-URIとして使用されます。
プロパティID:
http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.headers.ESBHeaderFunctions
namespace-prefix: ehdr
この関数では、inputNumberの平方根が返されます。
例:
orcl:square-root(25)の場合は、5が返されます。
シグネチャ:
orcl:square-root(inputNumber as number)
引数:
inputNumber: 平方根を計算する入力数値
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc
namespace-prefix: orcl
この関数では、dateTimeから期間が減算され、新規のdateTimeが返されます。
期間の値が負の場合、結果のdateTime値はinput-dateTimeより後の日時になります。
シグネチャ:
xp20: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です。
シグネチャ:
xp20: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: xp20
この関数では、inputStringの文字をすべて大文字に変換した値が返されます。
例:
xp20:upper-case('abCd0')の場合は、'ABCD0'が返されます。
シグネチャ:
xp20:upper-case(inputString as string)
引数:
inputString: 入力文字列
プロパティID:
namespace-uri: http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20
namespace-prefix: xp20