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