デザイン > データ型とフィールドのプロパティの理解 > 関数の使用
  

関数の使用

XQueryをProcess Designer内で操作する場合、または値を設定するために計算式を使用するフィールド内で操作する場合に、次の関数を使用できます。
計算式エディタ内で使用できるXQuery関数の詳細については、ここではなく、http://www.xqueryfunctions.com/xq/alpha.htmlを参照してください。アプリケーション統合は、このURLに記載されているすべての機能をサポートしているわけではありません。
式エディタを使用して関数を操作する方法については、式エディタの使用を参照してください。
注:
アプリケーション統合は、式エディタのインライン関数をサポートしていません。式エディタには、オペレーティングシステムの機能を呼び出すことができる強力な関数が付属しています。関数を使用する前に、関数に渡されたコンテンツを確認する必要があります。

すべてのタイプの原子値

プロセスおよびサービスコネクタでは、次の機能を使用できます。
関数名
構文
説明
boolean
fn:boolean(arg)
特定のルールに従って引数をboolean値に変換します。詳細については、「boolean」を参照してください。
empty
fn:empty(arg)
シーケンスが空であるかどうかを判別します。これは、データの存在を判断する必要があるさまざまな条件チェックやシナリオで役立ちます。詳細については、「empty」を参照してください。
exists
fn:exists(arg)
シーケンスに1つ以上の項目が含まれているかどうかを判別します。詳細については、existsを参照してください。
false
fn:false()
booleanの値falseを返します。これは、boolean値を操作するためのXQuery標準関数の一部です。詳細については、「false」を参照してください。
nilled
fn:nilled(arg)
指定されたノードがnilledかどうかを確認します。nilled要素とは、XMLスキーマをサポートするXMLドキュメントでxsi:nil属性がtrueに設定されている要素です。詳細については、「nilled」を参照してください。
not
fn:not(arg)
項目のシーケンスを受け入れ、そのシーケンス全体の有効なboolean値を計算してから、それを論理否定します。詳細については、「not」を参照してください。
number
fn:number(arg)
数値を含むノード、または原子値のいずれかからxs:double値を構成します。詳細については、「number」を参照してください。
string
fn:string(arg)
引数を文字列表現に変換します。一般に、これは指定した値が文字列として扱われるようにするために使用されます。詳細については、stringを参照してください。
true
fn:true()
booleanの値trueを返します。詳細については、「true」を参照してください。

プロセスの添付ファイル

次の表に示す関数は、プロセス内で添付ファイルを処理するために使用できます。
プロセスの場合、添付ファイル関数内の$cid値は、プロセスフィールド(Input、Output、Temp)を参照します。例えば、inputパラメータが、添付ファイルのサイズを取得するためにcustomerPhoto(添付ファイルタイプ)を呼び出す場合、次の構文を使用します。
sff:GetAttachmentSize($input.customerPhoto)
注:
フィールド名には、XQuery内で簡単に参照できるように、スペースを含めないでください。
添付ファイル関数の使用方法のその他の例については、添付ファイルを参照してください。
機能
構文
説明
createAttachmentFromBase64
sff:createAttachmentFromBase64 ($contentName as xs:string, $encodedContent as xs:string, $mimeType as xs:string)
添付をBase64エンコードされたコンテンツから作成します。
getAttachmentContentType
sff:getAttachmentContentType($cid as xs:string?)
Content-Typeを返します。
getAttachmentCount
sff:getAttachmentCount($cid as xs:long)
添付ファイルの数を返します。
getAttachmentName
sff:getAttachmentName($cid as xs:string?)
添付ファイルがあれば、その名前を返します。
getAttachmentProperty
sff:getAttachmentProperty($cid as xs:string?, $attribute as xs:string)
Content-TypeなどのMIMEヘッダー名を指定する添付ファイル属性を返します。
getAttachmentSize
sff:getAttachmentSize($cid as xs:long)
添付ファイルのサイズをバイト単位で返します。
getBase64FromAttachment
sff:getBase64FromAttachment ($cid as xs:string)
Base64エンコードされた添付コンテンツを変数(添付タイプ)から返します。
hasAttachment
sff:hasAttachment($cid as xs:boolean)
添付ファイルが存在するかどうかをチェックします。
setAttachmentContentType
sff:setAttachmentContentType($cid as xs:string, $val as xs:string)
添付ファイルのContent-Typeを設定します。
setAttachmentName
sff:setAttachmentName($cid as xs:string, $val as xs:string)
添付ファイル名を設定します。
setAttachmentProperty
sff:setAttachmentProperty($cid as xs:string, $attribute as xs:string, $val as xs:string)
添付MIMEヘッダー属性値を設定します。

日付と時刻

Process Designerは、次の関数に加えて、http://www.xqueryfunctions.com/xq/alpha.htmlで説明されているほぼすべての組み込みのXQuery日時関数をサポートしています。
関数名
構文
説明
addToDate
date:addToDate(date, format, amount)
指定された量をDate/Time値の一部に加算し、関数に渡した日付と同じ形式の日付を返します。詳細については、「addToDate」を参照してください。
adjust-date-to-timezone
fn:adjust-date-to-timezone(arg, timezone)
date値を特定のタイムゾーンに調整するか、date値からタイムゾーンコンポーネントを削除します。詳細については、「adjust-date-to-timezone」を参照してください。
adjust-dateTime-to-timezone
fn:adjust-dateTime-to-timezone(arg, timezone)
dateTime値を特定のタイムゾーンに調整するか、dateTime値からタイムゾーンコンポーネントを削除します。詳細については、「adjust-dateTime-to-timezone」を参照してください。
adjust-time-to-timezone
fn:adjust-time-to-timezone(arg, timezone)
time値を特定のタイムゾーンに調整するか、date値からタイムゾーンコンポーネントを削除します。詳細については、「adjust-time-to-timezone」を参照してください。
current-date
fn:current-date()
現在の日付を返します。詳細については、「current-date」を参照してください。
current-dateTime
fn:current-dateTime()
現在のdateTimeをタイムゾーン付きで返します。詳細については、「current-dateTime」を参照してください。
current-time
fn:current-time()
現在の時刻を返します。詳細については、「current-time」を参照してください。
dateDiff
date:dateDiff(date, date, format)
指定した形式で2つの日付の間の時間の長さを返します。詳細については、「dateDiff」を参照してください。
dateTime
fn:dateTime(arg1, arg2)
日付と時刻からdateTimeを構築します。詳細については、「dateTime」を参照してください。
dateToMillis
date:dateToMillis($date)
現在時刻をミリ秒に変換します。
day-from-date
fn:day-from-date(arg)
日付の日の部分を返します。詳細については、「day-from-date」を参照してください。
day-from-dateTime
fn:day-from-dateTime(arg)
日付/時刻の日の部分を返します。詳細については、「day-from-dateTime」を参照してください。
days-from-duration
fn:days-from-duration(arg)
期間のうちの日数を返します。詳細については、「days-from-duration」を参照してください。
getDatePart
date:getDatePart(date, format)
日付の中の指定した部分を整数値として返します。詳細については、「getDatePart」を参照してください。
getLocale
date:getLocale()
プロセスが実行されている、現在のロケールを表す文字列を返します。詳細については、「getLocale」を参照してください。
getTimeZone
date:getTimeZone()
プロセスが実行されている場所、またはユーザーがそのプロセスまたはガイドを実行している場所のタイムゾーンIDを示す文字列を返します。詳細については、「getTimeZone」を参照してください。
hours-from-dateTime
fn:hours-from-dateTime(arg)
日付/時刻の時間の部分を返します。詳細については、「hours-from-dateTime」を参照してください。
hours-from-duration
fn:hours-from-duration(arg)
期間のうちの時間を返します。詳細については、「hours-from-duration」を参照してください。
hours-from-time
fn:hours-from-time(arg)
時刻の時間の部分を返します。詳細については、「hours-from-time」を参照してください。
implicit-timezone
fn:implicit-timezone()
暗黙的なタイムゾーンプロパティの値を返します。詳細については、「implicit-timezone」を参照してください。
lastDay
date:lastDay(date)
月の最終日を返す日付を渡します。日付を求める有効な式を必要に応じて入力できます。詳細については、「lastDay」を参照してください。
toDate
date:toDate(date, format)
文字列を日付データ型に変換します。ソース文字列の形式を指定するには、toDateフォーマット文字列を使用します。詳細については、「toDate」を参照してください。
millisToDate
date:millisToDate($millis)
現在時刻をミリ秒から変換します。詳細については、「millisToDate」を参照してください。
minutes-from-dateTime
fn:minutes-from-dateTime(arg)
$argのローカライズ値の分コンポーネントを表す0から59(両値を含む)のxs:integerの値を返します。詳細については、「minutes-from-dateTime」を参照してください。
minutes-from-duration
fn:minutes-from-duration(arg)
$argの値の分コンポーネントを表すxs:integerを返します。詳細については、「minutes-from-duration」を参照してください。
minutes-from-time
fn:minutes-from-time(arg)
$argのローカライズ値の分コンポーネントを表す0から59(両値を含む)のxs:integerの値を返します。詳細については、「minutes-from-time」を参照してください。
month-from-date
fn:month-from-date(arg)
$argのローカライズ値の月コンポーネントを表す1から12(両値を含む)のxs:integerを返します。詳細については、「month-from-date」を参照してください。
month-from-dateTime
fn:month-from-dateTime(arg)
$argのローカライズ値の月コンポーネントを表す1から12(両値を含む)のxs:integerを返します。詳細については、「month-from-dateTime」を参照してください。
months-from-duration
fn:months-from-duration(arg)
$argの値の分コンポーネントを表すxs:integerを返します。結果は、$argをxs:dayTimeDurationにキャストすることによって取得されます。詳細については、「months-from-duration」を参照してください。
date:now()
現在時刻をミリ秒単位で返します。
seconds-from-duration
fn:seconds-from-duration(arg)
$argの値の秒コンポーネントを表すxs:decimalを返します。結果は、$argをxs:dayTimeDurationにキャストすることによって取得されます。詳細については、「seconds-from-duration」を参照してください。
seconds-from-dateTime
fn:seconds-from-dateTime(arg)
$argのローカライズされた値の秒および秒の小数部を表す、0以上60未満のxs:decimal値を返します。詳細については、「seconds-from-dateTime」を参照してください。
seconds-from-time
fn:seconds-from-time(arg)
$argのローカライズされた値の秒および秒の小数部を表す、0以上60未満のxs:decimal値を返します。詳細については、「seconds-from-time」を参照してください。
timezone-from-date
fn:timezone-from-date(arg)
タイムゾーンコンポーネントがある場合は、$argのタイムゾーンコンポーネントを返します。詳細については、「timezone-from-date 」を参照してください。
timezone-from-dateTime
fn:timezone-from-dateTime(arg)
xs:dateTimeのタイムゾーンコンポーネントを返します。詳細については、「timezone-from-dateTime」を参照してください。
timezone-from-time
fn:timezone-from-time(arg)
xs:timeのタイムゾーン要素を返します。詳細については、「timezone-from-time」を参照してください。
toChar
date:toChar(date, format)
渡された日付を、指定されたフォーマット文字列に基づいて文字列に変換します。詳細については、「toChar」を参照してください。
trunc
date:trunc(xs:dateTime('date'), 'format')
日付を特定の年、月、日、時、分、秒、またはミリ秒に切り詰めます。詳細については、「trunc (Dates)」を参照してください。
year-from-date
fn:year-from-date(arg)
$argのローカライズ値の年を表すxs:integerを返します。値は負の値になる場合があります。詳細については、「year-from-date」を参照してください。
year-from-dateTime
fn:year-from-dateTime(arg)
$argのローカライズ値の年コンポーネントを表すxs:integerを返します。詳細については、「year-from-dateTime」を参照してください。
years-from-duration
fn:years-from-duration(arg)
$argの値の年コンポーネントを表すxs:integerを返します。結果は、$argをxs:yearMonthDurationにキャストすることによって取得されます。詳細については、「years-from-duration」を参照してください。

デジタル署名

次の項に示す関数は、デジタル署名内で使用できます。
HMAC関数
次の関数を使用することで、キー付きのハッシュメッセージ認証コード(HMAC)の計算によってデジタル署名を生成できます。
機能
構文
説明
hmacSignature
dsig:hmacSignature($data as xs:string, $key as xs:string, $algorithm as xs:string, $encoding as xs:string, $keyCharset as xs:string?)as xs:string
指定したアルゴリズム(HMACSHA256、HMACSHA512など)とオプションのエンコード($encodingは次のいずれかの値)を使用して、HMAC署名を生成します。
  • - Base64(デフォルト)
  • - Base64Url
  • - Hex
  • - Hex64
オプションのkeyCharsetパラメータを使用して、関数の引数として渡すシークレットキーの文字セットを指定できます。keyCharsetはデフォルトでUTF-8に設定されています。
hmacSHA1signature
dsig:hmacSHA1signature($data as xs:string, $key as xs:string, $encoding as xs:string, $keyCharset as xs:string?)as xs:string
SHA1アルゴリズムとオプションのエンコード($encodingは次のいずれかの値)を使用して、HMACを計算します。
  • - Base64(デフォルト)
  • - Base64Url
  • - Hex
  • - Hex64
$dataはBase64エンコード内のJSON文字列を含む4つの部分から構成されます。
ペイロードでのhash:hash関数の使用時に、Base64でなく16進数のバイナリを確実に取得するには、次の式を使用します。
let $md5hex := hash:hash($jsonPayload,"MD5")
return xs:base64Binary(xs:hexBinary($md5hex))
オプションのkeyCharsetパラメータを使用して、関数の引数として渡すシークレットキーの文字セットを指定できます。keyCharsetはデフォルトでUTF-8に設定されています。
hmacSHA256signature
dsig:hmacSHA256signature($data as xs:string, $key as xs:string, $encoding as xs:string, $keyCharset as xs:string?)as xs:string
SHA256アルゴリズムとオプションのエンコード($encodingは次のいずれかの値)を使用して、HMACを計算します。
  • - Base64(デフォルト)
  • - Base64Url
  • - Hex
  • - Hex64
オプションのkeyCharsetパラメータを使用して、関数の引数として渡すシークレットキーの文字セットを指定できます。keyCharsetはデフォルトでUTF-8に設定されています。
hmacSHA512signature
dsig:hmacSHA512signature($data as xs:string, $key as xs:string, $encoding as xs:string, $keyCharset as xs:string?)as xs:string
オプションのエンコード($encodingは次のいずれかの値)を使用して、HMAC SHA512署名を生成します。
  • - Base64(デフォルト)
  • - Base64Url
  • - Hex
  • - Hex64
オプションのkeyCharsetパラメータを使用して、関数の引数として渡すシークレットキーの文字セットを指定できます。keyCharsetはデフォルトでUTF-8に設定されています。
hmacSHA256signatureForList
dsig:hmacSHA256signatureForList($data as xs:string, @delimiter as xs:string, $key as xs:string, $encoding as xs:string, $keyCharset as xs:string?)as xs:string
オプションのエンコード($encodingは次のいずれかの値)を使用して、HMAC SHA512署名を生成します。
  • - Base64(デフォルト)
  • - Base64Url
  • - Hex
  • - Hex64
詳細については、「hmacSHA256signatureForList」を参照してください。
キー署名関数
次の関数を使用することで、プライベートキーに基づいて、デジタル署名を生成できます。
機能
構文
説明
signWithKeyFile
dsig:signWithKeyFile( $messageToSign as xs:string, $pathToKey as xs:string, $encryptionAlgorithm as xs:string, $digestAlgorithm as xs:string, $encoding as xs:string ) as xs:string
非対称アルゴリズムと、PKCS8ファイル内で指定するプライベートキーを使用して、署名を生成します。
引数:
  • - $digestAlgorithm: SHA1またはSHA256
  • - $encryptionAlgorithm: RSA(一般的)またはDSA($digestAlgorithmにSHA1を使用する場合)。
  • - $pathToKey: Base64エンコードされた文字列としてのPKCS8証明書(-----BEGIN PRIVATE KEY----- .....n-----END PRIVATE KEY-----\n)またはバイナリプライベートキーファイル。
  • - $encoding(省略可)。これは次のいずれかにできます。
  • - Base64(デフォルト)
  • - Hex64
  • - Base64Url
signWithKeyString
dsig:signWithKeyString( $messageToSign as xs:string, $key as xs:string, $encryptionAlgorithm as xs:string, $digestAlgorithm as xs:string, $encoding as xs:string ) as xs:string
非対称アルゴリズムと、PKCS8証明書エンコードされた文字列内で指定するプライベートキーを使用して、署名を生成します。
引数:
  • - $digestAlgorithm: SHA1またはSHA256
  • - $encryptionAlgorithm:RSA(共通)またはECDSA。
  • - $key: Base64エンコードされた文字列としてのPKCS8証明書(-----BEGIN PRIVATE KEY----- .....n-----END PRIVATE KEY-----\n)またはバイナリプライベートキー。
  • - $encoding(オプション)では、次のいずれかの値を指定できます。
    • - Base64(デフォルト)
    • - Hex64
    • - Base64Url
注:
Base64Urlエンコードを使用してデータに署名すると、末尾に追加のピリオドが表示されます。置換関数を使用して、ピリオド(.)を空の文字列(")に置き換える必要があります。
fn:replace(input, pattern, replacement, flags)
signWithCertificate
dsig:signWithCertificate( $messageToSign as xs:string, $pathToCertificate as xs:string, $keyRecoveryPassword as xs:string, $encryptionAlgorithm as xs:string, $digestAlgorithm as xs:string, $encoding as xs:string $keyStorePassword as xs:string, $aliasName as xs:string, $keyStoreType as xs:string ) as xs:string
PKCS12証明書を使用して、署名を生成します。
引数:
  • - $pathToCertificate: PKCS12またはJKS(Javaキーストア)のいずれかの証明書を格納するエージェント上のファイルの場所。
  • - $keyRecoveryPassword: 証明書内のキーにアクセスするためのパスワード。
  • - $keyStorePassword: キーストアを開くためのパスワード。空の場合、キーストアはパスワード保護されないと見なされます。
  • - $aliasName: 省略可。キーが格納された、Secure Agentのキーストア内のエントリのエイリアス。エイリアスが指定されない(または空)場合、最初のエントリが使用されます。
  • - $keyStoreType: キーストアのタイプ。これは次のいずれかにできます。
    • - PKCS12(デフォルト)
    • - JKS(Javaキーストア)

ハッシュ関数

次の関数を使用することで、メッセージハッシュ文字列を生成できます。
機能
構文
説明
シャープ
hash:hash($string, $alg)
指定したアルゴリズム(省略可)を使用して、メッセージのためのハッシュ文字列を生成します。ここで$algは次のいずれかにできます。
  • - MD5(デフォルト)
  • - SHA1
  • - SHA256

リスト関数

リスト関数は、ネイティブのSaxon関数のみをサポートします。次の関数を使用することで、リストを操作できます。
機能
構文
説明
append
list:append(objectlist, newItem)
新規項目をリストに追加します。詳細については、「append」を参照してください。
count
list:count(objectlist)
リスト内の項目数を数えます。詳細については、「count」を参照してください。
head
list:head(objectlist)
リスト内の最初の項目を返します。詳細については、「head」を参照してください。
list
list:list(sequence)
IDのシーケンスをオブジェクトリスト用にIDのセミコロン区切りリストに変換します。詳細については、「list」を参照してください。
remove
list:remove(objectlist, position)
一覧から指定した位置の項目を削除します。詳細については、removeを参照してください。
replace
list:replace(objectlist, position, newItem)
リスト内の既存項目を新しい値に置換します。詳細については、「置換」を参照してください。
sequence
list:sequence(objectlist_field_name)
セミコロン区切りリストをシーケンスに変換します。
オブジェクトリストフィールドが計算式およびコンテンツに挿入される場合、フィールドはlist:sequence(object_field_name) XQuery関数内にラップされます。ホステッドオブジェクト内のオブジェクトリストの場合、これにより、オブジェクトリスト内のIDのセミコロン区切りリストはシーケンスに変換されます。プロセスオブジェクトのオブジェクトリストについては、値がすでにシーケンスで、関数が変更なしのリストを返します。詳細については、「sequence」を参照してください。
tail
list:tail(objectlist)
リスト内の最初の項目以外の全項目を返します。詳細については、「tail」を参照してください。
リスト関数の例
最も一般的なリスト関数の使用例は、プロセスまたはサービスステップ内から、ステップが起動するごとに、毎回リストからオブジェクトを取得するものです。以下に例を示します。
let mylist.Current:=list:head(mylist.List)
let mylist.List:=list:tail(mylist.List)
次の例は、オブジェクトリストをセミコロン区切りリストに変換し、各項目についてこの処理を繰り返します。
for $objectid in list:sequence($objectlist)
...
次の例は、ホステットオブジェクトに対し、IDのシーケンスをオブジェクトリスト用にIDのセミコロン区切りリストに変換します。プロセスオブジェクトのオブジェクトリストの場合、値のシーケンスを返します。
let $mergedObjectLists :=
( as:sequence($objectlist1), as:sequence($objectlist2) )
return list:list($mergedObjectLists)

数学

プロセス、サービスコネクタ内で、http://www.w3.org/2005/xpath-functions/mathで説明されている数学関数を使用できます。
関数名
構文
説明
acos
math:acos(arg)
数値入力値の逆余弦であるアークコサインを返します。入力は角度のコサインを表し、関数は0からπの範囲内の角度をラジアン単位で返します。詳細については、「acos」を参照してください。
asin
math:asin(arg)
数値入力値のアークサイン(逆正弦)を返します。入力は角度のサインを表し、関数は-π/2からπ/2の範囲内の角度をラジアン単位で返します。詳細については、「asin」を参照してください。
atan
math:atan(arg)
数値入力値のアークタンジェント(逆正接)を返します。指定した数値がそのタンジェントとなる角度をラジアン単位で計算します。結果は-π/2からπ/2の範囲になります。詳細については、「atan」を参照してください。
atan2
math:atan2(arg1, arg2)
座標(x, y)の平面上の点と正のx軸による原点に対する角度をラジアン単位で返します。結果は-πから+πの範囲になります。詳細については、「atan2」を参照してください。
cos
math:cos(arg)
数値入力値のコサインを返します。入力はラジアンで表される角度です。詳細については、cosを参照してください。
exp
math:exp(arg)
指定した数値入力の指数関数を計算し、e^{x}を返します。ここで、eはオイラー数と呼ばれるものであり、約2.71828です。xは入力引数です。詳細については、「exp」を参照してください。
exp10
math:exp10(arg)
10を数値の入力引数で冪乗した値を返します。つまり、10^xを計算します。ここで、xは入力値です。詳細については、「exp10」を参照してください。
log
math:log(arg)
引数の自然対数を返します。詳細については、「log」を参照してください。
log10
math:log10(arg)
引数の常用対数を返します。詳細については、「log10」を参照してください。
pi
math:pi()
数学定数π(パイ)を返します。値は約3.141592653589793です。詳細については、「pi」を参照してください。
pow
math:pow(arg1, arg2)
1番目の数値引数の値を2番目の数値引数で冪乗した値(x^y)を返します。詳細については、「pow」を参照してください。
sin
math:sin(arg)
数値の入力角度のサインを返します。角度はラジアンで指定します。詳細については、「sin」を参照してください。
sqrt
math:sqrt(arg)
負でない数値入力値の平方根を返します。詳細については、「sqrt」を参照してください。
tan
math:tan(arg)
指定した数値をラジアン単位の角度として解釈し、そのタンジェントを返します。詳細については、「tan」を参照してください。

詳細設定

以下の各種関数を使用できます。
機能
構文
説明
aesEncryption
util:aesEncryption(key, dataToEncrypt)
Advanced Encryption Standard(AES)アルゴリズムを使用して、特定のキーで指定されたデータを暗号化します。関数の詳細については、aesEncryptionを参照してください。
aesDecryption
util:aesDecryption(key, dataToDecrypt)
Advanced Encryption Standard(AES)アルゴリズムを使用して、特定のキーで指定されたデータを復号化します。aesEncryption関数でデータの暗号化に使用したキーと同じキーを使用する必要があります。関数の詳細については、aesDecryptionを参照してください。
base64Decode
util:base64Decode(data, charSet)
charSet引数で指定された文字セットに基づいて、指定された入力文字列のBase64デコードされたバージョンを返します。この関数は通常、添付ファイルに使用されます。
アプリケーション統合は、Azul JDKでエンコード用にサポートされる文字セットをサポートします。これには、US-ASCII、ISO-8859-1、UTF-8、UTF-16BE、UTF-16LE、およびUTF-16などが含まれます。
charSet引数のデフォルトはUTF-8です。
base64Encode
util:base64Encode(data, charSet)
charSet引数で指定された文字セットに基づいて、指定された入力文字列のBase64エンコードされたバージョンを返します。
アプリケーション統合は、Azul JDKでエンコード用にサポートされる文字セットをサポートします。これには、US-ASCII、ISO-8859-1、UTF-8、UTF-16BE、UTF-16LE、およびUTF-16などが含まれます。
charSet引数のデフォルトはUTF-8です。
base64EncodeURL
util:base64EncodeUrl(str, charSet)
指定文字列のBase64エンコードされたバージョンを返します。URL内で安全に使用できます。
「+」文字と「/」文字がある場合、「-」と「_」に置き換えられます。「=」文字がある場合は削除されます。
charSet引数のデフォルトはUTF-8です。
decode
util:decode(value, search1, result1, args, default)
指定された値をフィールド内で検索します。詳細については、「decode」を参照してください。
error
fn:error(error, description, error-object)
カスタムエラーを発行します。
escapeJsonString
util:escapeJsonString(str)
指定された文字列内の特殊文字を、JSONで使用する際に有効になるようにエスケープします。詳細については、JSON規格を参照してください。関数の詳細については、escape-Json-String を参照してください。
exactly-one
fn:exactly-one(arg)
シーケンスに正確に1つの項目のみが含まれている場合、そのシーケンスを返します。それ以外の場合、エラーを返します。
format
util:format(value, pattern, timezoneId, locale)
文字列コンテンツをフォーマットします。
次の引数を使用します。
  • - value: フォーマットされる文字列。
  • - pattern: 値のフォーマット方法を示すパターン。日付、時刻、番号の形式設定を参照してください。
  • - timezoneId: 省略可。タイムゾーンID。格納値を使用しない場合(通常は、先にdate:getTimeZone()を呼び出すことによって返されます)、Process Designerがdate:getTimeZone()を呼び出すので、この引数は省略できます。
  • - locale: 省略可。ロケール。格納値を使用しない場合(通常は、先にdate:getLocale()を呼び出すことによって返されます)、Process Designerがdate:getLocale()を呼び出すので、この引数は省略できます。
locale引数を使用し、timezoneId引数を使用しない場合、timezoneIdの後に来るコンマを追加する必要があります。以下に例を示します。
util:format("789","##00.00","",date:getLocale())
パターン引数に日付が含まれている場合は、小文字を使用して年形式yyyyを表記します。例えば、util:format("2024-12-29T06:16:02.536Z", "yyyy-MM-dd HH:mm:ss")を使用します。大文字を使用すると、誤った年が返されたり、エラーが発生したりする可能性があります。
generate-random-string
util:generate-random-string(length as xs:integer)
指定した長さのランダム文字列を生成します。
generateUUID
util:generateUUID()
ユニバーサルに一意な識別子を生成します。
getAssetLocation
util:getAssetLocation()
関数を使用するプロセスまたはガイドが保存されている場所を返します。詳細については、getAssetLocationを参照してください。
getAssetName
util:getAssetName()
関数を使用するプロセスまたはガイドの名前を返します。詳細については、getAssetNameを参照してください。
getCatalogResource
util:getCatalogResource()
組織内のカタログの場所URLに基づくリソースを返します。Informatica Cloud組織内のカタログリソースをパラメータとして取得し、要素ノードを返します。
要素データを表示するには、ラッパー関数を追加します。以下に例を示します。
serialize(util:getCatalogResource("project:/spi.ipd/services.xml"))
getInstanceStartTime
util:getInstanceStartTime()
指定されているプロセスまたはガイドの実行中インスタンスの開始時刻を返します。詳細については、getInstanceStartTimeを参照してください。
getOrganizationId
util:getOrganizationId()
現在実行中のプロセスのコンテキストの組織IDを示す文字列を返します。詳細については、getOrganizationIdを参照してください。
getOrganizationName
util:getOrganizationName()
実行中のプロセス、ガイド、サービスコネクタ、またはデータアクセスサービスコネクタのコンテキストで組織名を返します。詳細については、getOrganizationNameを参照してください。
getProcessId
util:getProcessId()
現在実行中または完了済みのプロセスのプロセスIDを返します。
getUserName
util:getUserName()
プロセスを実行している認証ユーザーのログイン名またはIDである文字列を返します。
getUserSystem
util:getUserSystem()
プロセスを実行しているユーザーを認証したシステムの名前を表す文字列を返します。
iif
util:iif(condition, val1, val2)
条件がtrueである場合は、val1を返します。それ以外の場合は、val2を返します。詳細については、「iif」を参照してください。
次に含まれる
util:in(valueToSearch, values, caseFlag)
入力値を値のリストと照合します。デフォルトでは、大文字と小文字を区別します。詳細については、「次に含まれる」を参照してください。
isNull
util:isNull(value)
渡された入力が空であるかどうかを確認します。詳細については、「isNull」を参照してください。
one-or-more
fn:one-or-more
シーケンスに1つ以上の項目が含まれている場合、そのシーケンスを返します。それ以外の場合、エラーを返します。
parseJSON
util:parseJSON(jsonStr)
指定のJSON文字列を解析し、これをXML要素に変換します。
parseXML
util:parseXML(xmlStr)
指定のXML文字列を解析し、これをXML要素に変換します。
random
util:random()
0から1の範囲の乱数を返します。
resolveURN
util:resolveURN()
組織のURNマッピングを取得します。
safeNumber
util:safeNumber()
数値を安全に格納して、変更できないようにします。
toDecimal
util:toDecimal(value, scale)
文字列または数値を10進数値に変換します。詳細については、「toDecimal」を参照してください。
toInteger
util:toInteger(value, flag)
文字列または数値を10進数値に変換します。詳細については、「toInteger」を参照してください。
setProcessTitle
ipd:setProcessTitle()
プロセスのタイトルを設定します。
注:
この関数は、Informatica Process Designer内でのみ使用します。
simplifyXml
util:simplifyXml(undefined)
すべての名前空間を削除し、属性を子要素に変換するために使用されるユーティリティ関数。詳細については、「simplifyXml」を参照してください。
toJSON
util:toJSON(elements)
指定のXML要素のリストをJSON文字列に変換します。
toXML
util:toXML(element)
指定のXML要素をXML文字列に変換します。
trace
util:trunc(arg, precision)
クエリのデバッグに使用する実行トレースを提供します。詳細については、「trace」を参照してください。
trunc
util:trunc(arg, precision)
精度で指定された小数点以下の桁数に基づいて、数値を特定の桁に切り詰めます。詳細については、trunc (Numbers)を参照してください。
zero-or-one
fn:zero-or-one(arg)
シーケンスに0または1つの項目が含まれている場合、そのシーケンスを返します。それ以外の場合、エラーを返します。

数字

式エディタでは、次の数字関数を使用できます。
関数名
構文
説明
abs
fn:abs(arg)
数値の絶対値を返します。詳細については、「abs」を参照してください。
avg
fn:avg(arg)
引数で渡した入力シーケンス内の値の平均を返します。つまり、値の合計を値の数で割って求められる数値です。詳細については、「avg」を参照してください。
ceiling
fn:ceiling(arg)
引数の値より小さくない、小数部を持たない最も小さい(負の無限大に最も近い)数を返します。引数の型が4つの数値型(xs:floatxs:doublexs:decimal、またはxs:integer)のいずれかである場合、結果の型は引数の型と同じになります。引数の型がいずれかの数値型から派生している場合、結果は基本の数値型のインスタンスとなります。詳細については、「ceiling」を参照してください。
floor
fn:floor(arg)
引数の値より大きくない、小数部を持たない最も大きい(正の無限大に最も近い)数を返します。引数の型が4つの数値型(xs:floatxs:doublexs:decimal、またはxs:integer)のいずれかである場合、結果の型は引数の型と同じになります。引数の型がいずれかの数値型から派生している場合、結果は基本の数値型のインスタンスとなります。詳細については、「floor」を参照してください。
max
fn:max(arg, collation)
原子値のシーケンスの最大値を返します。詳細については、「max」を参照してください。
min
fn:min(arg, collation)
入力シーケンス内のその他のどの項目の値よりも小さいか等しい値の入力シーケンス引数から項目を選択します。そのような項目が2つ以上ある場合、値が返される特定の項目は実装に依存します。詳細については、「min」を参照してください。
round
fn:round(arg)
引数に最も近い端数のない数値を返します。そのような数が2つある場合、正の無限大に最も近い方が返されます。引数の型が4つの数値型(xs:floatxs:doublexs:decimal、またはxs:integer)のいずれかである場合、結果の型は引数の型と同じになります。引数の型がいずれかの数値型から派生している場合、結果は基本の数値型のインスタンスとなります。詳細については、「round」を参照してください。
round-half-to-even
fn:round-half-to-even(arg, precision)
10の倍数を$precisionのマイナス値で冪乗した値で、かつ$argに数値的に最も近い値を返します。そのような2つの値が等しく近い(例えば、$argの小数部がちょうど0.500など)の場合、関数は最下位の有効桁が偶数である方を返します。詳細については、「round-half-to-even」を参照してください。
sum
fn:sum(arg, zero)
$argにある値をすべて加算することにより得た値を返します。詳細については、「sum」を参照してください。

シーケンス

式エディタでは、次のシーケンス関数を使用できます。
関数名
構文
説明
count
fn:count(arg)
シーケンス内の項目の数を判別します。詳細については、「count」を参照してください。
distinct-values
fn:distinct-values(arg, collation)
指定されたシーケンスから重複しない原子値のみが含まれるシーケンスを返し、重複を効果的に削除します。詳細については、「distinct-values」を参照してください。
index-of
fn:index-of(seqParam, srchParam, collation)
指定した検索項目と等しいシーケンス内の項目の位置を検索します。指定した項目が現れる位置のシーケンスを返します。詳細については、「index-of」を参照してください。
insert-before
fn:insert-before(target, position, inserts)
シーケンス内の指定した位置に項目を挿入します。この関数を使用すると、指定したインデックスの前に要素を追加することでシーケンスを変更できます。詳細については、「insert-before」を参照してください。
last
fn:last()
式の評価時に、現在のコンテキストノードリストの最後の項目の位置番号を判別します。これは、XPath式やFLWORループ内で、サイズを判別したり、シーケンスの最後の項目に対して操作したりするの場合に特に便利です。詳細については、「last」を参照してください。
position
fn:position()
シーケンスに対して反復する際に、項目の現在の位置番号を判別します。詳細については、「position」を参照してください。
remove
fn:remove(target, position)
シーケンスから指定した位置にある項目を削除します。この関数は、残りの項目を変更せずに項目を削除することで、シーケンスを再構築するのに役立ちます。詳細については、「remove」を参照してください。
reverse
fn:reverse(arg)
シーケンス内の項目の順序を反転します。詳細については、「reverse」を参照してください。
subsequence
fn:subsequence(sourceSeq, startingLoc, length)
開始位置とオプションの長さに基づいてシーケンスの特定の部分を取得します。これにより、目的のセグメントのみに焦点を当てて、シーケンスの一部を効率的に抽出できます。詳細については、「subsequence」を参照してください。
unordered
fn:unordered(sourceSeq)
特定の操作ではシーケンス内の項目の順序が重要ではないことを示します。これは、順序を無視するようにクエリエンジンに指示します。特に並列処理シナリオでパフォーマンスの最適化につながる可能性があります。詳細については、「unordered」を参照してください。

文字列

式エディタでは、次の文字列関数を使用できます。
関数名
構文
説明
codepoint-equal
fn:codepoint-equal(comparand1, comparand2)
2つの文字列を比較し、Unicodeコードポイントに基づいて等しいかどうかを判断します。詳細な照合ルールを考慮せずに、2つの文字列が同一であるかどうかチェックします。詳細については、「codepoint-equal」を参照してください。
codepoints-to-string
fn:codepoints-to-string(arg)
Unicodeコードポイントのシーケンスから文字列を構築します。この関数は、文字の数値表現を受け取り、それらを文字列に変換します。詳細については、「codepoints-to-string」を参照してください。
compare
fn:compare(comparand1, comparand2, collation)
指定した照合を使用して2つの文字列を比較します。この関数は、定義された照合に基づいて並べ替えるなど、文字列の順序を決定するのに役立ちます。詳細については、「compare」を参照してください。
concat
fn:concat(arg1, arg2)
2つ以上の文字列を連結して1つの文字列にします。この関数を使用すると、複数の文字列値を1つの連続した文字列に効果的に結合できます。詳細については、「concat」を参照してください。
contains
fn:contains(arg1, arg2, collation)
ある文字列に別の部分文字列が含まれているかどうかを判別します。この関数は、メイン文字列に、指定した部分文字列が少なくとも1つ含まれているかどうかを判別します。これは、より長い文字列内に部分文字列があるかどうかを示すboolean値に評価されます。詳細については、「contains」を参照してください。
default-collation
fn:default-collation()
これは、XQuery式、特に文字列比較など照合に依存する操作を扱う式に影響を与える可能性のある設定またはプロパティです。具体的な照合が指定されていない場合、XQueryはこのデフォルトの照合を利用して、文字列の並べ替えや比較などの操作を実行します。詳細については、「default-collation」を参照してください。
ends-with
fn:ends-with(arg1, arg2, collation)
文字列が指定した部分文字列で終わるかどうかを判別します。これは、文字列の操作タスクや検証タスクに役立つ関数です。詳細については、「ends-with」を参照してください。
lang
fn:lang(testlang, node)
ノードの言語属性が指定した言語と一致するかどうかを判別します。この関数は、言語属性を使用して多言語コンテンツを管理しているXMLドキュメントをクエリする場合に特に便利です。詳細については、「lang」を参照してください。
lower-case
fn:lower-case(arg)
文字列内のすべての文字を小文字に変換します。この関数は、テキストデータの検索、並べ替え、正規化など、大文字と小文字を区別しないようにする必要があるタスクに役立ちます。詳細については、「lower-case」を参照してください。
matches
fn:matches(input, pattern, flags)
文字列が指定した正規表現のパターンと一致するかどうかを判別します。この関数は、パターンマッチングタスクやテキスト検証タスクに不可欠です。詳細については、「matches」を参照してください。
normalize-space
fn:normalize-space(arg)
文字列から先頭と末尾の空白文字を削除し、文字列内の空白文字のシーケンスを1つのスペース文字に置き換えます。この関数は、テキストデータのクリーンアップと整形に役立ちます。詳細については、「normalize-space」を参照してください。
normalize-unicode
fn:normalize-unicode(arg, normalizationForm)
Unicode正規化を実行し、文字表現の微妙な差異に関係なくテキストを比較できるようにします。特定の文字を同等の表現に置き換えます。そうすることで、正規化された2つの値を比較して、それらが同じかどうかを判別できます。Unicode正規化は、文字列を適切に並べ替えるのにも役立ちます。
$normalizationForm引数は、使用する正規化形式、つまり、どの文字を置き換えるかを制御します。
詳細については、normalize-unicodeを参照してください。
replace
fn:replace(input, pattern, replacement, flags)
指定した正規表現に一致する文字列の部分を置換文字列に置き換えます。この関数は、テキストのサニタイズ、整形、変換などの文字列操作タスクに非常に役立ちます。詳細については、「置換」を参照してください。
starts-with
fn:starts-with(arg1, arg2, collation)
文字列が指定した部分文字列で始まるかどうかを判別します。この関数は、文字列の検証とプレフィックスのマッチングタスクに特に役立ちます。詳細については、「starts-with」を参照してください。
string-join
fn:string-join(arg1, arg2)
文字列のシーケンスを1つの文字列に連結し、それぞれの間に指定された区切り文字を入れます。この関数は、文字列を結合してフォーマットされた出力にする場合に特に便利です。詳細については、「string-join」を参照してください。
string-length
fn:string-length(arg)
指定した文字列内の文字数(先頭と末尾の空白文字を含む)を判別します。これは、文字列のサイズが関係する、文字列の検証または操作が必要なタスクに特に役立ちます。詳細については、「string-length」を参照してください。
string-to-codepoints
fn:string-to-codepoints(arg)
文字列をUnicodeコードポイントのシーケンスに変換します。この関数は、文字列内に埋め込まれた個々の文字を基本的なエンコードレベルで分析および操作する方法を提供します。詳細については、「string-to-codepoints」を参照してください。
substring
fn:substring(sourceString, startingLoc, length)
指定した開始パラメータとオプションの長さパラメータに基づいて文字列の一部を抽出します。これは、文字列の特定の部分を分離して処理する必要がある文字列操作タスクに役立ちます。詳細については、「substring」を参照してください。
substring-after
fn:substring-after(arg1, arg2, collation)
指定した部分文字列の後にある文字列の一部を返します。これは、特定の文字列内の特定の文字またはシーケンスの後にあるテキストを抽出するのに役立ちます。詳細については、「substring-after」を参照してください。
substring-before
fn:substring-before(arg1, arg2, collation)
指定した部分文字列の前にある文字列の一部を返します。この関数は、特定の文字列内の特定の文字またはシーケンスの前にあるテキストを抽出するのに役立ちます。詳細については、「substring-before」を参照してください。
tokenize
fn:tokenize(input, pattern, flags)
区切り文字として機能する指定した正規表現パターンに基づいて、文字列を部分文字列のシーケンスに分割します。この関数は、以降の処理のために文字列の構成要素をを解析および分離する場合に特に役立ちます。詳細については、「tokenize」を参照してください。
translate
fn:translate(arg, mapString, transString)
指定したソース文字からターゲット文字へのマッピングに基づいて、文字列内の文字を置き換えます。この関数は、文字列内の文字の単純な置換と削除に役立ちます。詳細については、「translate」を参照してください。
upper-case
fn:upper-case(arg)
特定の文字列内のすべての文字を、Unicode規格に従って大文字に変換します。この関数は、比較または表示の目的でテキストを正規化するのに役立ちます。詳細については、「upper-case」を参照してください。

XMLドキュメント、URI、ID

式エディタでは、プロセスにのみ適用できる次のXMLドキュメント関数、URI関数、およびID関数を使用できます。
関数名
構文
説明
base-uri
fn:base-uri(arg)
指定されたノードのベースURIを返します。ベースURIは、通常、ドキュメント内の相対URIを解決する基準となるURIです。詳細については、「base-uri」を参照してください。
collection
fn:collection(arg)
URIで特定されるコレクションからノードのシーケンスを返します。一般にXQueryまたはXMLデータベース環境などの、コレクションに保存されている一連のXMLドキュメントや項目にアクセスするために使用されます。詳細については、「collection」を参照してください。
doc
fn:doc(uri)
URIで特定される単一のXMLドキュメントノードを取得します。一般的に、これは、クエリを実行するために指定したURIからXQuery式にXMLドキュメントをロードするために使用されます。詳細については、「doc」を参照してください。
doc-available
fn:doc-available(uri)
指定したURIによって特定されるドキュメントが使用可能であり、エラーなく取得できるかどうかを確認します。詳細については、「doc-available」を参照してください。
document-uri
fn:document-uri(arg)
指定したドキュメントノードに関連付けられているドキュメントURIを返します。これは、ノードの発生元であるドキュメントのURIを特定するのに役立ちます。詳細については、「document-uri」を参照してください。
encode-for-uri
fn:encode-for-uri(uri-part)
入力文字列内にURIコンポーネントで許可されていない文字がある場合に、その文字をRFC 3986に従ってパーセントエンコードした文字列を返します。これはURLエンコードに似ていますが、URIコンポーネント用に調整されています。詳細については、「encode-for-uri」を参照してください。
escape-html-uri
fn:escape-html-uri(uri)
HTMLにおいて特別な意味を持つ文字(&、<、>、"、'など)を対応するパーセントエンコードでエスケープすることによって、HTML URI内で安全に使用できる文字列を返します。これにより、マークアップを壊すことなく、URIをHTML属性に安全に埋め込むことができます。詳細については、「escape-html-uri」を参照してください。
id
fn:id(arg, node)
指定したID値と一致する一意のIDを持つ要素ノードのシーケンスを返します。要素のID属性の値に基づいて要素を取得します。一般に、この属性はxml:idまたはDTD ID属性で定義された要素を参照するために使用されます。詳細については、「id」を参照してください。
idref
fn:idref(arg, node)
$argで指定された1つ以上のID値と一致するIDREF値を持つ要素ノードまたは属性ノードのシーケンスを返します。詳細については、「idref」を参照してください。
iri-to-uri
fn:iri-to-uri(iri)
RFC 3986に従ってURIで許可されていない文字をエスケープすることにより、国際化リソース識別子(IRI)を統一リソース識別子(URI)に変換します。このプロセスには、ASCII範囲外の文字や特定の予約文字のパーセントエンコードが含まれます。詳細については、「iri-to-uri」を参照してください。
resolve-uri
fn:resolve-uri(relative, base)
指定した相対URIをベースURIに対して解決し、絶対URIを生成します。最初の引数がすでに絶対URIである場合は、それを直接返します。これは、相対パスとベースの場所を組み合わせる場合に便利です。詳細については、「resolve-uri」を参照してください。
static-base-uri
fn:static-base-uri()
呼び出されたクエリまたはモジュールの静的ベースURIを返します。これは、静的に割り当てられたベースURIであり、多くの場合はクエリファイルまたはモジュールの場所です。クエリ内の相対URIを解決するためのデフォルトのベースとして使用されます。詳細については、「static-base-uri」を参照してください。

XML名前空間と名前

式エディタでは、次のXML名前空間関数と名前関数を使用できます。
関数名
構文
説明
QName
fn:QName(paramURI, paramQName)
名前空間URIとローカル部分(ローカル名)からQName(修飾名)を構築します。これは、XQueryでQName値を動的に作成するために使用されます。詳細については、「QName」を参照してください。
in-scope-prefixes
fn:in-scope-prefixes(element)
指定した要素ノードのスコープ内にある名前空間プレフィックスのシーケンスを返します。これは、その要素とそのサブ要素に使用できる名前空間プレフィックスを特定するのに役立ちます。詳細については、「in-scope-prefixes」を参照してください。
local-name
fn:local-name(arg)
入力として指定されたノードの拡張QNameのローカル部分(ローカル名)を返します。これでは、名前空間プレフィックスと名前空間URIは除外されます。詳細については、「local-name」を参照してください。
local-name-from-QName
fn:local-name-from-QName(arg)
QName値のローカル部分を返します。指定したxs:QNameから名前空間プレフィックスまたはURIのないローカル名のみを抽出します。詳細については、local-name-from-QNameを参照してください。
name
fn:name(arg)
ノードのQName値を文字列として返します。この値は、プレフィックス(存在する場合)を含めた要素名または属性名を表します。文字列形式のノード名を返します。詳細については、「name」を参照してください。
namespace-uri
fn:namespace-uri(arg)
指定したノードの拡張QNameの名前空間URIを返します。これは、要素または属性に関連付けられている名前空間部分を取得するのに役立ちます。詳細については、「namespace-uri」を参照してください。
namespace-uri-for-prefix
fn:namespace-uri-for-prefix(prefix, element)
指定した要素ノードのコンテキストで特定のプレフィックスにバインドされている名前空間URIを返します。これは、XMLを処理するときにプレフィックスが対応する名前空間を判別するのに役立ちます。詳細については、「namespace-uri-for-prefix」を参照してください。
namespace-uri-from-QName
fn:namespace-uri-from-QName(arg)
指定したQName値の名前空間URI部分を返します。これにより、xs:QNameから名前空間URIコンポーネントを抽出できます。詳細については、「namespace-uri-from-QName」を参照してください。
node-name
fn:node-name(arg)
ノードのQNameを返します。これには、名前空間プレフィックスとローカル名がxs:QName値として含まれています。これは、要素ノードまたは属性ノードの修飾名を取得するために使用されます。詳細については、「node-name」を参照してください。
prefix-from-QName
fn:prefix-from-QName(arg)
指定したQName値の名前空間プレフィックス部分を返します。QNameにプレフィックスがない場合、関数は空のシーケンスを返します。詳細については、「prefix-from-QName」を参照してください。
resolve-QName
fn:resolve-QName(qname, element)
QName文字列を受け取り、指定した要素ノードのスコープ内名前空間を使用してxs:QName値に解決します。基本的に、文字列形式のQNameを、要素の名前空間コンテキストに基づいて実際のQNameにマッピングします。詳細については、「resolve-QName」を参照してください。

XMLノード

式を構築するときに、共通XML関数を追加できます。式エディタでは、共通XML関数のリストが以下のカテゴリに表示されます。
式エディタでは、次のXMLノード関数を使用できます。
機能
構文
説明
data
fn:data(arg)
ノードの原子値を返します。
項目のシーケンスを入力とし、原子値のシーケンスを返します。詳細については、「data」を参照してください。
deep-equal
fn:deep-equal(parameter1, parameter2, collation)
2つのノードが同じコンテンツと属性を持つかどうかを評価します。詳細については、「deep-equal」を参照してください。
root
fn:root(arg)
引数を含むツリーのルートを返します。詳細については、「root」を参照してください。

すべてのタイプの原子値関数

式エディタの[すべてのタイプのアトミック値]セクションでは、次のような関数を使用できます。

boolean

XQueryのブール関数は、特定のルールに従って引数をブール値に変換するために使用されます。

構文

fn:boolean(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
arg
必須
ブール値に変換されるシーケンス。これには、アトミック値、ノードのシーケンス、または空のシーケンスを指定することができます。これには0個以上の項目を含めることができます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
入力
戻り値
fn:boolean( () )
false
fn:boolean('')
false
fn:boolean(0)
false
fn:boolean('0')
true
fn:boolean('false')
true
fn:boolean(("Hello"))
true
fn:boolean(xs:float('NaN'))
false
fn:boolean($ordDoc/order[1])
true
fn:boolean($ordDoc/noSuchChild)
false
fn:boolean(<a>false</a>)
true

empty

XQueryのempty関数は、シーケンスが空であるかどうかを判別するために使用します。これは、データが存在するかどうかを判断する必要があるさまざまな条件付きのチェックやシナリオで役立ちます。

構文

fn:empty(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
arg
必須
これは、空かどうかをテストするためのシーケンスです。これには0個以上の項目を含めることができます。

戻り値

$argの値が空のシーケンスである場合、関数はtrueを返します。それ以外の場合、関数はfalseを返します。

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:empty( ('a', 'b', 'c') )
false
fn:empty( () )
true
fn:empty(0)
false
fn:empty((1, 2, 3))
false
fn:empty(("apple", "orange"))
false

exists

XQueryのexists関数は、シーケンスに1つ以上の項目が含まれているかどうかを判別するために使用します。

構文

fn:exists(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
arg
必須
存在を確認するシーケンス。これには、ノード、アトミック値、または項目のシーケンスを指定することができます。これには0個以上の項目を含めることができます。

戻り値

$argの値が空のシーケンスではない場合、この関数はtrueを返します。それ以外の場合、関数はfalseを返します。

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:exists( ('a', 'b', 'c') )
true
fn:exists( '' )
true
fn:exists( () )
false
fn:exists( false() )
true
fn:exists( (1, 2, 3) )
true

false

XQueryのfalse関数は、常にブール値falseを返す関数です。これは、ブール値を操作するためのXQuery標準関数の一部です。

構文

fn:false()
false関数はパラメータを受け入れません。

戻り値

xs:booleanfalseを返します。xs:boolean("0")と同等です。

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:false()
false()
fn:not(fn:false())
true

nilled

XQueryのnilled関数は、特定のノードがnilledであるかどうかを確認するために使用します。nilled要素は、XMLスキーマをサポートしているXMLドキュメントでxsi:nil属性がtrueに設定されている箇所です。

構文

fn:nilled(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
arg
必須
nilledステータスを確認するノード。これには、要素ノードを指定するか、何も指定しない状態にすることができます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:nilled(())
None
let $textNode := text{"example"}
return fn:nilled($textNode)
None

not

not関数は項目のシーケンスを受け入れ、そこからシーケンス全体の有効なブール値を計算し、それを否定します。

構文

fn:not(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
否定するブール式。これには、ブール値またはNoneを指定することができます。

戻り値

最初に、$argにはfn:boolean()関数が適用され、有効なブール値に縮小されます。有効なブール値がfalseまたはNoneである場合はtrueを返し、有効なブール値がtrueである場合はfalseを返します。

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:not(true())
false
fn:not(false())
true
fn:not(())
true
fn:not('')
true
fn:not(0)
true
fn:not(<e>false</e>)
false

number

number関数は、数値を含むノードまたはアトミック値からxs:double値を構築します。この関数は、宣言された型(存在する場合)に関係なく、ノードまたは値を数値として扱うようにプロセッサに指示する場合に便利です。

構文

fn:number(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
数値に変換するアトミック値。これには、数値、数値型、またはNoneを表す文字列を指定することができます。

戻り値

$argで示された値を返します。$argが指定されていない場合は、アトミック化後のコンテキスト項目をxs:doubleに変換して返します。
fn:number関数とxs:doubleコンストラクタを使用する場合の違いとしては、引数を数値にキャストできない場合にfn:number関数は値NaNを返しますが、xs:doubleコンストラクタはエラーを発生させます。

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:number('29.99')
29.99
fn:number('ABC')
NaN
fn:number(42)
42.0
fn:number( () )
NaN
fn:number(true())
1

string

XQueryのstring関数は、引数を文字列表現に変換するために使用します。この関数は、特定の値が文字列として処理されるようにするために一般的に使用されるものです。

構文

fn:string(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
文字列に変換する項目。これには、任意のアトミック型、ノード、またはシーケンスを指定することができます。複数の項目を含むシーケンスを指定するとエラーが返されます。

戻り値

xs:stringとして表される$argの値を返します。引数を指定しない場合は、コンテキスト項目(.)がデフォルトの引数として使用されます。引数が省略された場合の関数の動作は、コンテキスト項目が引数として渡された場合とまったく同じ動作になります。

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:string(123)
"123"
fn:string("Hello, World!")
"Hello, World!"
fn:string(true())
"true"

true

XQueryのtrue関数は、ブール値trueを返す単純な関数です。

構文

fn:true()
true関数はパラメータを受け入れません。

戻り値

xs:booleantrueを返します。xs:boolean("1")と同等です。

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:true()
true
fn:not(fn:true())
false

日時関数

式エディタの日付と時刻セクションでは、次の日付関数を使用できます。

addToDate

指定された量をDate/Time値の一部に加算し、関数に渡した日付と同じ形式の日付を返します。addToDate関数は、正と負の整数値を受け入れます。addToDateを使用して、日付の次の部分を変更します。

構文

date:addToDate(xs:dateTime('date'), 'format', amount)
注:
xs:dateTime句を手動で追加し、日付値を一重引用符で囲む必要があります。
次の表に、引数を示します。
引数
必須/オプション
説明
日付
必須
Date/Timeデータ型。変更を行う値を渡します。
有効なトランスフォーメーション式を必要に応じて入力できます。
形式
必須
日付値の中の変更を行う部分を指定するフォーマット文字列。フォーマット文字列は'mm'のように一重引用符で囲みます。フォーマット文字列は大文字と小文字を区別しません。
amount
必須
日付値を変更する値として、年数、月数、日数、時間数などを指定する整数値。整数を求める有効なトランスフォーメーション式を必要に応じて入力できます。

戻り値

関数に渡した日付と同じ形式の日付。
関数に引数としてNULL値が渡された場合には、NULLです。

以下の式はすべて、DATE_SHIPPEDカラムの各日付に1か月を加算します。特定の月に存在しない日を作成する値を渡すと、addToDateはその月の最後の日を返します。例えば、Jan 31 1998に1ヶ月を加えると、addToDateはFeb 28 1998を返します。
また、addToDateはうるう年を認識し、Jan 29 2000に1ヶ月を加えます。
date:addToDate(xs:dateTime('DATE_SHIPPED'), 'MM', 1)
date:addToDate(xs:dateTime('DATE_SHIPPED'), 'MON', 1)
date:addToDate(xs:dateTime('DATE_SHIPPED'), 'MONTH', 1)
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
Jan 12 1998 12:00:30AM
Feb 12 1998 12:00:30AM
Jan 31 1998 6:24:45PM
Feb 28 1998 6:24:45PM
Jan 29 2000 5:32:12AM
Feb 29 2000 5:32:12AM  (Leap Year)
Oct 9 1998 2:30:12PM
Nov 9 1998 2:30:12PM
NULL
NULL
以下の式はすべて、DATE_SHIPPEDカラムの各日付から10日を減算します。
date:addToDate(xs:dateTime('DATE_SHIPPED'), 'D', -10)
date:addToDate(xs:dateTime('DATE_SHIPPED'), 'DD', -10)
date:addToDate(xs:dateTime('DATE_SHIPPED'), 'DDD', -10)
date:addToDate(xs:dateTime('DATE_SHIPPED'), 'DY', -10)
date:addToDate(xs:dateTime('DATE_SHIPPED'), 'DAY', -10)
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:30AM
Dec 22 1996 12:00AM
Jan 31 1997 6:24:45PM
Jan 21 1997 6:24:45PM
Mar 9 1996 5:32:12AM
Feb 29 1996 5:32:12AM  (Leap Year)
Oct 9 1997 2:30:12PM
Sep 30 1997 2:30:12PM
Mar 3 1996 5:12:20AM
Feb 22 1996 5:12:20AM
NULL
NULL
以下の式はすべて、DATE_SHIPPEDカラムの各日付から15時間を減算します。
date:addToDate(xs:dateTime('DATE_SHIPPED'), 'HH', -15)
date:addToDate(xs:dateTime('DATE_SHIPPED'), 'HH12', -15)
date:addToDate(xs:dateTime('DATE_SHIPPED'), 'HH24', -15)
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:30AM
Dec 31 1996 9:00:30AM
Jan 31 1997 6:24:45PM
Jan 31 1997 3:24:45AM
Oct 9 1997 2:30:12PM
Oct 8 1997 11:30:12PM
Mar 3 1996 5:12:20AM
Mar 2 1996 2:12:20PM
Mar 1 1996 5:32:12AM
Feb 29 1996 2:32:12PM  (Leap Year)
NULL
NULL

adjust-date-to-timezone

date値を特定のタイムゾーンに調整するか、date値からタイムゾーンコンポーネントを削除します。

構文

fn:adjust-date-to-timezone(arg, timezone)
次の表に、引数を示します。
引数
必須/
オプション
説明
arg
必須
調整するdate値。
date-valueはxs:dateタイプであるか、空のシーケンスです。
timezone
オプション
date-valueを調整するタイムゾーンを表す期間。

戻り値

fn:adjust-date-to-timezone関数の動作は、$arg日付値にすでにタイムゾーンがあるかどうか、および次に示すように指定されたタイムゾーンの値に応じて異なります。

次の表に、adjust-date-to-timezone関数の例と戻り値を示します。
戻り値
adjust-date-to-timezone(
xs:date('2023-02-15'),
xs:dayTimeDuration('-PT8H'))
2023-02-15-08:00
adjust-date-to-timezone(
xs:date('2023-02-15-03:00'),
xs:dayTimeDuration('-PT8H'))
2023-02-14-08:00
adjust-date-to-timezone(
xs:date('2023-02-15'), ())
2023-02-15
adjust-date-to-timezone(
xs:date('2023-02-15-03:00'), ())
2023-02-15
次の表に、暗黙的なタイムゾーンが-05:00の場合の例と戻り値を示します。
戻り値
adjust-date-to-timezone(
xs:date('2023-02-15'))
2023-02-15-05:00
adjust-date-to-timezone(
xs:date('2023-02-15-03:00'))
2023-02-14-05:00

adjust-dateTime-to-timezone

dateTime値を特定のタイムゾーンに調整するか、dateTime値からタイムゾーンコンポーネントを削除します。

構文

fn:adjust-dateTime-to-timezone(arg, timezone)
次の表に、引数を示します。
引数
必須/
オプション
説明
arg
必須
調整されるdateTime値。
dateTime-valueは、xs:dateTime型または空のシーケンスです。
timezone
オプション
dateTime-valueを調整するタイムゾーンを表す期間。

戻り値

fn:adjust-dateTime-to-timezone関数の動作は、$arg日付値にすでにタイムゾーンがあるかどうか、および次に示すように指定されたタイムゾーンの値に応じて異なります。

次の表に、adjust-date-to-timezone関数の例と戻り値を示します。
戻り値
adjust-dateTime-to-timezone(
xs:dateTime('2023-02-15T17:00:00'),
xs:dayTimeDuration('-PT7H'))
2023-02-15T17:00:00-07:00
adjust-dateTime-to-timezone(
xs:dateTime('2023-02-15T17:00:00-03:00'),
xs:dayTimeDuration('-PT7H'))
2023-02-15T13:00:00-07:00
adjust-dateTime-to-timezone(
xs:dateTime('2023-02-15T17:00:00'),
())
2023-02-15T17:00:00
adjust-dateTime-to-timezone(
xs:dateTime('2023-02-15T17:00:00-03:00'),
())
2023-02-15T17:00:00
adjust-dateTime-to-timezone(
xs:dateTime('2023-02-15T01:00:00-03:00'),
xs:dayTimeDuration('-PT7H'))
2023-02-14T21:00:00-07:00
次の表に、暗黙的なタイムゾーンが-05:00の場合の例と戻り値を示します。
戻り値
adjust-dateTime-to-timezone(
xs:dateTime('2023-02-15T17:00:00'))
2023-02-15T17:00:00-05:00
adjust-dateTime-to-timezone(
xs:dateTime('2023-02-15T17:00:00-03:00'))
2023-02-15T15:00:00-05:00

adjust-time-to-timezone

time値を特定のタイムゾーンに調整するか、date値からタイムゾーンコンポーネントを削除します。

構文

fn:adjust-time-to-timezone(arg, timezone)
次の表に、引数を示します。
引数
必須/
オプション
説明
arg
必須
調整するtime値。
time-valueは、タイプxs:timeまたは空のシーケンスになります。
timezone
オプション
time-valueを調整するタイムゾーンを表す期間。

戻り値

fn:adjust-time-to-timezone関数の動作は、$arg日付値にすでにタイムゾーンがあるかどうか、および次に示すように指定されたタイムゾーンの値に応じて異なります。

次の表に、adjust-date-to-timezone関数の例と戻り値を示します。
戻り値
adjust-time-to-timezone(
xs:time('17:00:00'),
xs:dayTimeDuration('-PT7H'))
17:00:00-07:00
adjust-time-to-timezone(
xs:time('17:00:00-03:00'),
xs:dayTimeDuration('-PT7H'))
13:00:00-07:00
adjust-time-to-timezone(
xs:time('17:00:00'), ())
17:00:00
adjust-time-to-timezone(
xs:time('17:00:00-03:00'), ())
17:00:00
adjust-time-to-timezone(
xs:time('17:00:00'))
17:00:00-05:00
adjust-time-to-timezone(
xs:time('17:00:00'),
xs:dayTimeDuration('-PT20H'))
Error FODT0003
次の表に、暗黙的なタイムゾーンが-05:00の場合の例と戻り値を示します。
戻り値
adjust-time-to-timezone(
xs:time('17:00:00-03:00'))
15:00:00-05:00
adjust-time-to-timezone(
xs:time('22:00:00-08:00'))
01:00:00-05:00
adjust-time-to-timezone(
xs:time('01:00:00-02:00'))
22:00:00-05:00

current-date

現在の日付を返します。

構文

fn:current-date()

戻り値

fn:current-date関数はパラメータを取らず、現在の日付とタイムゾーンを返します。タイムゾーンは実装された環境に依存します。

この関数が2023年1月12日に呼び出された場合、戻り値は2023-01-12Zになります。

current-dateTime

現在のdateTimeをタイムゾーン付きで返します。

構文

fn:current-dateTime()

戻り値

fn:current-dateTime関数はパラメータを取らず、現在の日付と時刻をタイムゾーンとともに返します。関数が同じクエリ内で複数回呼び出されると、毎回同じ値が返されます。タイムゾーンは実装された環境に依存します。

この関数が2023年1月12日にタイムゾーンZで呼び出された場合、戻り値は2023-01-12T11:25:30.125Zになります。

current-time

現在の時刻を返します。

構文

fn:current-time()

戻り値

fn:current-time関数はパラメータを取らず、タイムゾーンとともに現在の時刻を返します。関数が同じクエリ内で複数回呼び出されると、毎回同じ値が返されます。タイムゾーンは実装された環境に依存します。

次の式は、結果として23:17:00.000-05:00を返します。
fn:current-time()

dateDiff

2つの日付の間の時間の長さを返します。形式は、年、月、日、時間、分、秒、ミリ秒、またはマイクロ秒に指定できます。dateDiff関数は、最初の日付から2番目の日付を減算し、差を返します。
dateDiff関数は、日数ではなく月数に基づいて値を計算します。各月の選択された日で、1カ月に満たない月の日付の差を計算します。1ヶ月に満たない月の日付の差を計算するために、dateDiffは月内の日を加算します。次に、選択された月の全日数でその値を除算します。
dateDiff関数は、うるう年とうるう年以外の年では同じ期間で異なる値を算出します。違いが発生するのは、dateDiff関数に2月が含まれる場合です。dateDiff関数は、うるう年の2月は29日間で除算し、うるう年以外の年である場合は28日間で除算します。
例えば、9月13日から2月19日までの月数を計算するとします。うるう年の場合、dateDiff関数は2月を19/29ヶ月、つまり0.655ヶ月と計算します。うるう年以外の年の場合、dateDiff関数は2月を19/28ヶ月、つまり0.678ヶ月と計算します。dateDiff関数は、残りの月の日の差を同様に計算し、dateDiff関数が指定された期間における合計値を返します。
注:
日付の差を計算するのに異なるアルゴリズムを使用するデータベースもあります。

構文

date:dateDiff(xs:dateTime('date'), xs:dateTime('date'), 'format')
注:
xs:dateTime句を手動で追加し、日付値を一重引用符で囲む必要があります。
次の表に、引数を示します。
引数
必須/オプション
説明
日付
必須
Date/Timeデータ型。比較を行う1つ目の日付の値を渡します。
有効なトランスフォーメーション式を必要に応じて入力できます。
日付
必須
Date/Timeデータ型。比較を行う2つ目の日付の値を渡します。
有効なトランスフォーメーション式を必要に応じて入力できます。
形式
必須
日付または時間計測の単位を指定するフォーマット文字列。年、月、日、時間、分、秒、ミリ秒、またはマイクロ秒を指定できます。'mm'など、日付の中の1つの部分のみを指定できます。フォーマット文字列は一重引用符で囲んでください。フォーマット文字列は大文字と小文字を区別しません。(例えば、フォーマット文字列'mm'は'MM'、'Mm'、'mM'と同じです。

戻り値

Double値。最初の日付が2番目の日付より後の場合、戻り値は正の数になります。最初の日付が2番目の日付より前の場合、戻り値は負の数になります。
2つの日付が同じである場合は、ゼロです。
一方(または両方)の日付がNULLである場合は、NULLです。

次の式は、DATE_PROMISEDカラムとDATE_SHIPPEDカラムの日付の差が何時間あるかを返します。
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'HH')
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'HH12')
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'HH24')
次の表に、一部のサンプル値と戻り値を示します。
DATE_PROMISED
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:00AM
Mar 29 1997 12:00:00PM
-2100
Mar 29 1997 12:00:00PM
Jan 1 1997 12:00:00AM
2100
NULL
Dec 10 1997 5:55:10PM
NULL
Dec 10 1997 5:55:10PM
NULL
NULL
Jun 3 1997 1:13:46PM
Aug 23 1996 4:20:16PM
6812.89166666667
Feb 19 2004 12:00:00PM
Feb 19 2005 12:00:00PM
-8784
次の式は、DATE_PROMISEDカラムとDATE_SHIPPEDカラムの日付の差を日数で返します。
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'D')
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'DD')
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'DDD')
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'DY')
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'DAY')
次の表に、一部のサンプル値と戻り値を示します。
DATE_PROMISED
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:00AM
Mar 29 1997 12:00:00PM
-87.5
Mar 29 1997 12:00:00PM
Jan 1 1997 12:00:00AM
87.5
NULL
Dec 10 1997 5:55:10PM
NULL
Dec 10 1997 5:55:10PM
NULL
NULL
Jun 3 1997 1:13:46PM
Aug 23 1996 4:20:16PM
283.870486111111
Feb 19 2004 12:00:00PM
Feb 19 2005 12:00:00PM
-366
次の式は、DATE_PROMISEDカラムとDATE_SHIPPEDカラムの日付の差を月数で返します。
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'MM')
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'MON')
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'MONTH')
次の表に、一部のサンプル値と戻り値を示します。
DATE_PROMISED
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:00AM
Mar 29 1997 12:00:00PM
-2.91935483870968
Mar 29 1997 12:00:00PM
Jan 1 1997 12:00:00AM
2.91935483870968
NULL
Dec 10 1997 5:55:10PM
NULL
Dec 10 1997 5:55:10PM
NULL
NULL
Jun 3 1997 1:13:46PM
Aug 23 1996 4:20:16PM
9.3290162037037
Feb 19 2004 12:00:00PM
Feb 19 2005 12:00:00PM
-12
次の式は、DATE_PROMISEDカラムとDATE_SHIPPEDカラムの日付の差を年数で返します。
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'Y')
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'YY')
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'YYY')
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'YYYY')
次の表に、一部のサンプル値と戻り値を示します。
DATE_PROMISED
DATE_SHIPPED
RETURN VALUE
Jan 1 1997 12:00:00AM
Mar 29 1997 12:00:00PM
-0.24327956989247
Mar 29 1997 12:00:00PM
Jan 1 1997 12:00:00AM
0.24327956989247
NULL
Dec 10 1997 5:55:10PM
NULL
Dec 10 1997 5:55:10PM
NULL
NULL
Jun 3 1997 1:13:46PM
Aug 23 1996 4:20:16PM
0.77741801697531
Feb 19 2004 12:00:00PM
Feb 19 2005 12:00:00PM
-1
次の式は、DATE_PROMISEDカラムとDATE_SHIPPEDカラムの日付の差を月数で返します。
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'MM')
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'MON')
date:dateDiff(xs:dateTime('DATE_PROMISED'), xs:dateTime('DATE_SHIPPED'), 'MONTH')
次の表に、一部のサンプル値と戻り値を示します。
DATE_PROMISED
DATE_SHIPPED
LEAP YEAR VALUE
(in Months)
NON-LEAP YEAR VALUE
(in Months)
Sept 13
Feb 19
-5.237931034
-5.260714286
NULL
Feb 19
NULL
N/A
Sept 13
NULL
NULL
N/A

dateTime

日付値と時刻値からdateTime値を構築します。

構文

fn:dateTime(arg1, arg2)
fn:dateTimeAdd (arg1 as xs:date?, arg2 as xs:time?)は、日付と時刻を含む1つの引数を受け入れるxs:dateTimeコンストラクタとは異なります。日付/時刻を作成する場合は、タイムゾーンを考慮に入れるようにしてください。

戻り値

次の式は、結果として2023-06-12T11:35:29を返します。
fn:dateTime((xs:date("2023-06-12")), (xs:time("11:35:29")))

day-from-date

日付の日の部分を返します。

構文

fn:day-from-date(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
arg
必須
日コンポーネントの抽出元となる日付値。
date-valueは、xs:dateタイプまたは空のシーケンスです。

戻り値

xs:date値の日の部分を、1から31までの整数として、ローカライズされた形式で返します。
date-valueが空のシーケンスである場合、戻り値は空のシーケンスになります。

次の式は15を返します。
fn:day-from-date(xs:date('2023-07-15'))

day-from-dateTime

日付/時刻の日の部分を返します。

構文

fn:day-from-dateTime(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
arg
必須
日コンポーネントの抽出元となるdateTime値。
dateTime-valueは、xs:dateTime型または空のシーケンスです。

戻り値

xs:dateTime値の日の部分を、ローカライズされた形式で、1から31までの整数として返します。
dateTime-valueが空のシーケンスである場合、戻り値は空のシーケンスになります。

次の式は15を返します。
fn:day-from-dateTime(xs:dateTime('2023-07-15T18:00:00'))

days-from-duration

期間のうちの日数を返します。

構文

fn:days-from-duration(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
arg
必須
日数コンポーネントの抽出元となる期間値。
duration-valueは、空のシーケンスまたは次のいずれかのタイプの値です。
  • - xs:dayTimeDuration
  • - xs:duration
  • - xs:yearMonthDuration

戻り値

次の式は、期間のうちの日数を返します。
fn:days-from-duration(xs:dayTimeDuration('DURATION'))
次の表に、一部のサンプル値と戻り値を示します。
DURATION
RETURN VALUE
P5D
5
-PT24H
-1
PT23H
0
P1DT36H
2
PT1440M
1

getDatePart

日付の中の指定した部分を整数値として返します。したがって、日付の月の部分を返す式を作成して「1997-04-01T00:00:00」といった日付を渡すと、getDatePartは4を返します。

構文

date:getDatePart(xs:dateTime('date'), 'format')
注:
xs:dateTime句を手動で追加し、日付値を一重引用符で囲む必要があります。
次の表に、引数を示します。
引数
必須/オプション
説明
日付
必須
Date/Timeデータ型。
有効なトランスフォーメーション式を必要に応じて入力できます。
形式
必須
日付値の中で返す部分を指定するフォーマット文字列。フォーマット文字列は'mm'のように一重引用符で囲みます。フォーマット文字列は大文字と小文字を区別しません。
例えば、日付1997-04-01をgetDatePartに渡すと、書式文字列'YYYY'は1997を返します。

戻り値

日付の中の指定された部分を示す整数。
関数にNULL値を渡した場合はNULLです。

以下の式は、DATE_SHIPPEDカラムの各日付の時の部分を返します。デフォルトの日付形式は24時間方式に基づくため、12:00:00AMは0を返します。
date:getDatePart(xs:dateTime('DATE_SHIPPED'), 'HH')
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
1997-03-13T12:00:00AM
0
1997-09-2T2:00:01AM
2
1997-08-22T12:00:00PM
12
1997-06-3T11:30:44PM
23
NULL
NULL
以下の式は、DATE_SHIPPEDカラムの各日付の日の部分を返します。
date:getDatePart(xs:dateTime('DATE_SHIPPED'), 'DD')
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
1997-03-13T12:00:00AM
13
1997-06-3T11:30:44PM
3
1997-08-22T12:00:00PM
22
NULL
NULL
以下の式は、DATE_SHIPPEDカラムの各日付の月の部分を返します。
date:getDatePart(xs:dateTime('DATE_SHIPPED'), 'MM')
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
1997-03-13T12:00:00AM
3
1997-06-3T11:30:44PM
6
NULL
NULL
以下の式は、DATE_SHIPPEDカラムの各日付の年の部分を返します。
date:getDatePart(xs:dateTime('DATE_SHIPPED'), 'YYYY')
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
1997-03-13T12:00:00AM
1997
1997-06-3T11:30:44PM
1997
NULL
NULL

getLocale

プロセスが実行されている現在のロケールを表す文字列を返します。

構文

date:getLocale()
getLocale関数を使用して、システム内でアクティブな現在のロケール設定を取得します。この関数は、言語コードや国/地域コードなどの特定の値を生成するために使用される地域または言語固有の設定を識別します。

戻り値

ロケール値をテキスト文字列として返します。

プロセスがISTタイムゾーンで実行されている場合、次の式はロケール情報を返します。
date:getLocale()
次の表に、一部のサンプルプロパティと値を示します。
PROPERTY
ベースロケールID
en_IN
言語
en
IN
表示名
英語(インド)

getTimeZone

プロセスを実行しているSecure AgentマシンのタイムゾーンIDを指定する文字列を返します。
クラウドサーバーで実行されているプロセスとタスクフローの場合、システムでは常にタイムゾーンがGMTに設定されます。

構文

date:getTimeZone()

戻り値

タイムゾーンIDを文字列値として返します。

システムのタイムゾーンが[IST]に設定されたSecure Agentでプロセスを実行している場合、関数date:getTimeZone()は[IST]を返します。
クラウドサーバーでプロセスまたはタスクフローを実行している場合、関数date:getTimeZone()は[GMT]を返します。

hours-from-dateTime

日付/時刻の時間の部分を返します。

構文

fn:hours-from-dateTime(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
arg
必須
時間コンポーネントの抽出元となるdateTime値。
dateTime-valueは、xs:dateTime型または空のシーケンスです。

戻り値

xs:dateTime値の時間の部分を、0から23までの整数として、ローカライズされた形式で返します。
dateTime-valueが空のシーケンスである場合、戻り値は空のシーケンスになります。

次の式は、日付/時刻から時間を返します。
fn:hours-from-dateTime(xs:dateTime('TIME'))
次の表に、一部のサンプル値と戻り値を示します。
TIME
RETURN VALUE
2023-08-15T10:30:23
10
2023-08-15T10:30:23-05:00
10

hours-from-duration

期間のうちの時間を返します。

構文

fn:hours-from-duration(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
arg
必須
時間コンポーネントの抽出元となる期間値。
duration-valueは、空のシーケンスまたは次のいずれかのタイプの値になります。
  • - xs:dayTimeDuration
  • - xs:duration
  • - xs:yearMonthDuration

戻り値

次の式は、期間のうちの時間を返します。
fn:hours-from-duration(xs:dayTimeDuration('DURATION'))
次の表に、一部のサンプル値と戻り値を示します。
DURATION
RETURN VALUE
P1DT5H
5
-PT36H
-12
PT23H
23
PT1H90M
2
PT2H59M
2
PT3600S
1

hours-from-time

時刻の時間の部分を返します。

構文

fn:hours-from-time(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
arg
必須
時間コンポーネントの抽出元となる時間値。
time-valueは、タイプxs:timeまたは空のシーケンスになります。

戻り値

xs:time値の時間の部分を、0から23までの整数として、ローカライズされた形式で返します。
time-valueが空のシーケンスである場合、戻り値は空のシーケンスになります。

次の式は、時刻から時間を返します。
fn:hours-from-time(xs:time('TIME'))
次の表に、一部のサンプル値と戻り値を示します。
TIME
RETURN VALUE
10:30:23
10
10:30:23-05:00
10
09:30:00-08:00
9

implicit-timezone

暗黙的なタイムゾーンプロパティの値を返します。

構文

fn:implicit-timezone()
暗黙的なタイムゾーンは、タイムゾーンが明示的に定義されていない日付および時刻値を含む比較および計算に使用されます。暗黙的なタイムゾーンは、実装された環境によって定義されます。

戻り値

暗黙的なタイムゾーンをxs:dayTimeDuration値として返します。

暗黙的なタイムゾーンがUTCから5時間を差し引いたタイムゾーンである場合、次の式は結果として-PT5Hを返します。
fn:implicit-timezone()

lastDay

カラム内の各日付に対して、その月の最後の日の日付を返します。

構文

date:lastDay(date)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
日付
必須
Date/Timeデータ型。月の最終日を返す日付を渡します。
日付を求める有効なトランスフォーメーション式を必要に応じて入力できます。

戻り値

日付。この関数に渡す日付値の月の最終日。
選択したカラム内の値がNULLである場合は、NULL。

次の式は、現在の日付を最終日として返します。
date:lastDay(fn:current-dateTime('DATE'))
次の表に、一部のサンプル値と戻り値を示します。
DATE
RETURN VALUE
18-04-98 01:00
Apr 18 1998 01:00:00 AM
20-08-99 05:00
Aug 20 1999 05:00:00 AM
次の式は、DATEカラム内の各日付に対して、月の最終日を返します。
date:lastDay(date:addToDate(fn:current-dateTime('DATE','MM',-1))
次の表に、一部のサンプル値と戻り値を示します。
DATE
RETURN VALUE
Apr 1 1998 12:00:00AM
Mar 31 1998 12:00:00AM
Jan 6 1998 12:00:00AM
Dec 31 1997 12:00:00AM
Feb 2 1996 12:00:00AM
Jan 31 1996 12:00:00AM
NULL
NULL
toDateをネストして文字列値を日付に変換できます。toDate関数には常に時間情報が含まれています。時刻値を含まない文字列を渡すと、返される日付には時刻「00:00:00」を含みます。
次の例は、各日付に対して、月の最終日を文字列と同じ形式で返します。
date:lastDay(toDate('DATE', 'MON-DD-YYYY'))
次の表に、一部のサンプル値と戻り値を示します。
DATE
RETURN VALUE
'18-NOV-98'
Nov-30-1998 00:00:00
'28-APR-98'
Apr-30-1998 00:00:00
NULL
NULL
'18-FEB-96'
Feb-29-1996 00:00:00(Leap year)
date:lastDay(date:toDate("DATE", "YYYY-MM-DD"))
次の表に、一部のサンプル値と戻り値を示します。
DATE
RETURN VALUE
'18-NOV-98'
1998-Nov-30 00:00:00
'28-APR-98'
1998-Apr-30 00:00:00
NULL
NULL
'18-FEB-96'
1996-Feb-29 00:00:00(Leap year)

millisToDate

現在時刻をミリ秒から変換します。

構文

date:millisToDate(millis)
引数
必須/
オプション
説明
millis
必須
数値データタイプ。ミリ秒単位で値を渡します。

戻り値

この関数は、1970年1月1日00:00:00 UTCから経過したミリ秒数の日付を返します。

この関数は、MILLISECONDSカラムに指定された値に対応する日付値を返します。
MILLISECONDS
RETURN VALUE
1000
1970-01-01T00:00:01Z
1900800000  
1970-01-23T00:00:00Z

minutes-from-dateTime

$argのローカライズ値の分コンポーネントを表す0から59(両値を含む)のxs:integerの値を返します。

構文

fn:minutes-from-dateTime(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。分に変換する日時として引数を渡します。

戻り値

$argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合は、$argのローカル値の分コンポーネントを表す0から59まで(両方の値を含む)のxs:integerの値を返します。

この関数は、MILLISECONDSカラムに指定された値に対応する日付値を返します。
MILLISECONDS
RETURN VALUE
1999-05-31T13:40:00-05:00
40
1999-05-31T13:30:00+05:30
30

minutes-from-duration

この関数は、$argの値の分コンポーネントを表すxs:integerを返します。

構文

fn:minutes-from-duration(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。分に変換する必要がある期間として引数を渡します。

戻り値

この関数は、$argの値の分コンポーネントを表すxs:integerを返します。結果は、$argをxs:dayTimeDurationにキャストすることによって取得されます。

この関数は、DURATIONカラムに指定された値に対応する日付値を返します。
DURATION
RETURN VALUE
P3DT12H32M12S
32
-P5DT12H30M
-30

minutes-from-time

$argのローカライズ値の分コンポーネントを表す0から59(両値を含む)のxs:integerの値を返します。

構文

fn:minutes-from-time(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。分に変換する必要がある時刻として引数を渡します。

戻り値

$argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合は、$argのローカル値の分コンポーネントを表す0から59まで(両方の値を含む)のxs:integerの値を返します。

この関数は、TIMEカラムに指定された値に対応する日付値を返します。
TIME
RETURN VALUE
11:23:00
23
13:00:00Z
0

month-from-date

$argのローカライズ値の月コンポーネントを表す1から12(両値を含む)のxs:integerを返します。

構文

fn:month-from-date(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。月に変換する必要がある日付として引数を渡します。

戻り値

$argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合は、$argのローカル値の月コンポーネントを表す1から12まで(両方の値を含む)のxs:integerの値を返します。

この関数は、DATEカラムに指定された値に対応する日付値を返します。
DATE
RETURN VALUE
1991-05-31-05:00
05
2000-01-01+05:00
01

month-from-dateTime

$argのローカライズ値の月コンポーネントを表す1から12(両値を含む)のxs:integerを返します。

構文

fn:month-from-dateTime(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。月に変換する必要がある日時として引数を渡します。

戻り値

$argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合は、$argのローカル値の月コンポーネントを表す1から12まで(両方の値を含む)のxs:integerの値を返します。

この関数は、DATETIMEカラムに指定された値に対応する日付値を返します。
DATETIME
RETURN VALUE
1995-05-31T13:20:00-05:00
05
1996-12-31T19:20:00-05:00
12

months-from-duration

$argの値の分コンポーネントを表すxs:integerを返します。結果は、$argをxs:dayTimeDurationにキャストすることによって取得されます。

構文

fn:months-from-duration(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。月に変換する必要がある期間として引数を渡します。

戻り値

$argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合は、$argのローカル値の月コンポーネントを表す1から12まで(両方の値を含む)のxs:integerの値を返します。

この関数は、DURATIONカラムに指定された値に対応する日付値を返します。
DURATION
RETURN VALUE
1991-05-31-05:00
05
2000-01-01+05:00
01

seconds-from-dateTime

$argのローカライズされた値の秒および秒の小数部を表す、0以上60未満のxs:decimal値を返します。

構文

fn:seconds-from-dateTime(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。月に変換する必要がある日時として引数を渡します。

戻り値

$argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合、この関数は、$argのローカル値の秒および秒の小数点以下を表す、0以上60未満のxs:Decimal値を返します。

この関数は、DATETIMEカラムに指定された値に対応する日付値を返します。
DATETIME
RETURN VALUE
2006-08-15T10:30:14.5
14.5
2001-05-31T13:20:40
40

seconds-from-duration

$argの値の秒コンポーネントを表すxs:decimalを返します。結果は、$argをxs:dayTimeDurationにキャストすることによって取得されます。

構文

fn:seconds-from-duration(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。秒に変換する必要がある期間として引数を渡します。

戻り値

$argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合、この関数は、$argのローカル値の秒および秒の小数点以下を表す、0以上60未満のxs:Decimal値を返します。

この関数は、DURATIONカラムに指定された値に対応する日付値を返します。
DURATION
RETURN VALUE
PT30.8S
30.8

seconds-from-time

秒数、および$argのローカライズ値における小数の秒数を表す、ゼロ以上と60未満のxs:decimalを返します。

構文

fn:seconds-from-time(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。秒に変換する必要がある時間として引数を渡します。

戻り値

$argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合、この関数は、$argのローカライズされた値の秒および秒の小数部を表す、0以上60未満のxs:decimal値を返します。

この関数は、TIMEカラムにargとして指定された値に対応する日付値を返します。
TIME
RETURN VALUE
13:20:11.5
11.5

timezone-from-date

タイムゾーンコンポーネントがある場合は、$argのタイムゾーンコンポーネントを返します。

構文

fn:timezone-from-date(arg)

戻り値

$argにタイムゾーンコンポーネントがある場合、結果はUTCからの偏差を示すxs:dayTimeDurationになります。この値の範囲は、+14:00から-14:00時間までです。それ以外の場合、結果は空のシーケンスになります。

この関数は、DATEカラムに指定された値に対応する日付値を返します。
DATE
RETURN VALUE
1999-05-31-05:00
-PT5H

timezone-from-dateTime

xs:dateTimeのタイムゾーンコンポーネントを返します。

構文

fn:timezone-from-dateTime(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。タイムゾーンに変換する必要がある日時として引数を渡します。

戻り値

$argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合、この関数は$argのタイムゾーンコンポーネント(存在する場合)を返します。$argにタイムゾーンコンポーネントがある場合、結果はUTCからの偏差を示すxs:dayTimeDurationになります。この値の範囲は、+14:00から-14:00時間までです。$argにタイムゾーンコンポーネントがない場合、結果は空のシーケンスになります。

この関数は、DATETIMEカラムに指定された値に対応する日付値を返します。
DATETIME
RETURN VALUE
1995-05-31T13:20:00-05:00
-PT5H

timezone-from-time

xs:timeのタイムゾーン要素を返します。

構文

fn:timezone-from-time(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。タイムゾーンに変換する必要がある時刻として引数を渡します。

戻り値

$argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合、この関数は引数として指定されたxs:time値のタイムゾーンコンポーネントを返します。結果は、UTCからの偏差を示すxs:dayTimeDurationです。この値の範囲は、+14:00から-14:00時間までです。

この関数は、TIMEカラムに指定された値に対応する日付値を返します。
TIME
RETURN VALUE
12:00:00-05:00
-PT5H

toChar

渡された日付を、指定されたフォーマット文字列に基づいて文字列に変換します。

構文

date:toChar(date, format)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。指定された指定されたフォーマット文字列に変換する必要がある日付として引数を渡します。

この関数は、DATEカラムにargとして指定された値に対応する日付値を返します。
DATE
RETURN VALUE
date:toChar(08-02-2017, DL)
August 02, 2017

toDate

文字列を日付データ型に変換します。ソース文字列の形式を指定するには、toDateフォーマット文字列を使用します。
toDate式の出力ポートはDate/Timeである必要があります。
toDateで2桁の年を変換する場合には、RRまたはYYのフォーマット文字列を使用します。YYYYフォーマット文字列を使用してはなりません。

構文

date:toDate(xs:dateTime('date'), 'format')
注:
date句を手動で追加し、日付値を一重引用符で囲む必要があります。
次の表に、引数を示します。
引数
必須/
オプション
説明
日付
必須
Stringデータ型で指定する必要があります。日付に変換したい値を渡します。有効なトランスフォーメーション式を必要に応じて入力できます。
形式
必須
有効なtoDate形式の文字列を入力します。フォーマット文字列は、date引数の各部分と一致している必要があります。例えば、'Mar 15 1998 12:43:10AM'という日付の文字列を渡す場合は、フォーマット文字列'MON DD YYYY HH12:MI:SSAM'を使用する必要があります。

戻り値

日付。
toDate関数は、常に日付と時刻を返します。時刻値を持たない文字列を渡すと、返される日付には常に時刻00:00:00.000000000が含まれます。この関数の結果は、日時データ型の任意のターゲットカラムにマッピングできます。
関数にNULL値を渡した場合はNULLになります。
注:
フォーマット文字列は、任意の日付区切り文字を含めて、toDate文字列の形式と一致する必要があります。一致しない部分がある場合、toDateは不正確な値を返したり、レコードをスキップしたりする場合があります。

date:toDate(xs:dateTime('DATE_PROMISED'), 'MM/DD/YY')
次の表に、一部のサンプル値と戻り値を示します。
DATE_PROMISED
RETURN VALUE
'01/22/98'
Jan 22 1998 00:00:00
'05/03/98'
May 3 1998 00:00:00
'11/10/98'
Nov 10 1998 00:00:00
'10/19/98'
Oct 19 1998 00:00:00
NULL
NULL
date:toDate(xs:dateTime('DATE_PROMISED'), 'MON DD YYYY HH12:MI:SSAM')
次の表に、一部のサンプル値と戻り値を示します。
DATE_PROMISED
RETURN VALUE
'Jan 22 1998 02:14:56PM'
Jan 22 1998 02:14:56PM
'Mar 15 1998 11:11:11AM'
Mar 15 1998 11:11:11AM
'Jun 18 1998 10:10:10PM'
Jun 18 1998 10:10:10PM
'October 19 1998'
Error. Integration Service skips this row.
NULL
NULL
以下の式は、SHIP_DATE_MJD_STRINGポートの文字列を日付値に変換します。
date:toDate(xs:dateTime('SHIP_DATE_MJD_STR'), 'J')
次の表に、一部のサンプル値と戻り値を示します。
SHIP_DATE_MJD_STR
RETURN_VALUE
'2451544'
Dec 31 1999 00:00:00.000000000
'2415021'
Jan 1 1900 00:00:00.000000000
Jフォーマット文字列には日付の時間部分が含まれないため、戻り値では時間が00.000000000:00:00に設定されています。
次の式は、文字列を4桁形式の年に変換します。現在の年は1998です。
date:toDate(xs:dateTime('DATE_STR'), 'MM/DD/RR')
次の表に、一部のサンプル値と戻り値を示します。
DATE_STR
RETURN VALUE
'04/01/98'
04/01/1998 00:00:00.000000000
'08/17/05'
08/17/2005 00:00:00.000000000
次の式は、文字列を4桁形式の年に変換します。現在の年は1998です。
date:toDate(xs:dateTime('DATE_STR'), 'MM/DD/YY')
次の表に、一部のサンプル値と戻り値を示します。
DATE_STR
RETURN VALUE
'04/01/98'
04/01/1998 00:00:00.000000000
'08/17/05'
08/17/1905 00:00:00.000000000
注:
2番目の行については、RRは2005年を返しますが、YYは 1905年を返します。
次の式は、文字列を4桁形式の年に変換します。現在の年は1998です。
date:toDate(date('DATE_STR'), 'MM/DD/Y')
次の表に、一部のサンプル値と戻り値を示します。
DATE_STR
RETURN VALUE
'04/01/8'
04/01/1998 00:00:00.000000000
'08/17/5'
08/17/1995 00:00:00.000000000
次の式は、文字列を4桁形式の年に変換します。現在の年は1998です。
date:toDate(xs:dateTime('DATE_STR'), 'MM/DD/YYY')
次の表に、一部のサンプル値と戻り値を示します。
DATE_STR
RETURN VALUE
'04/01/998'
04/01/1998 00:00:00.000000000
'08/17/995'
08/17/1995 00:00:00.000000000
次の式は、深夜からの通算秒を含む文字を日付値に変換します。
date:toDate(xs:dateTime('DATE_STR'), 'MM/DD/YYYY SSSSS')
次の表に、一部のサンプル値と戻り値を示します。
DATE_STR
RETURN_VALUE
'12/31/1999 3783'
12/31/1999 01:02:03
'09/15/1996 86399'
09/15/1996 23:59:59

trunc (Dates)

日付を特定の年、月、日、時、分、秒、またはミリ秒に切り詰めます。
日付の中の以下の部分を切り詰めることができます。

構文

date:trunc(xs:dateTime('date'), 'format')
注:
xs:dateTime句を手動で追加し、日付値を一重引用符で囲む必要があります。
次の表に、引数を示します。
引数
必須/
オプション
説明
日付
必須
Date/Timeデータ型。切り詰めを行う日付値です。日付を求める任意の有効なトランスフォーメーション式を入力できます。
NULL値を渡すには、次の形式で空のシーケンスを指定する必要があります: ()
format
必須
正しいフォーマット文字列を入力します。フォーマット文字列は大文字と小文字を区別しません。
NULL値を渡すには、次の形式で空のシーケンスを指定する必要があります: ()

戻り値

日付。
関数にNULL値を渡した場合はNULLです。

以下の式は、DATE_SHIPPEDカラムの日付の年の部分を切り詰めます。
date:trunc(xs:dateTime('DATE_SHIPPED'), 'Y')
date:trunc(xs:dateTime('DATE_SHIPPED'), 'YY')
date:trunc(xs:dateTime('DATE_SHIPPED'), 'YYY')
date:trunc(xs:dateTime('DATE_SHIPPED'), 'YYYY')
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:30AM
Jan 1 1998 00:00:00.000000000
Apr 19 1998 1:31:20PM
Jan 1 1998 00:00:00.000000000
Jun 20 1998 3:50:04AM
Jan 1 1998 00:00:00.000000000
Dec 20 1998 3:29:55PM
Jan 1 1998 00:00:00.000000000
NULL
NULL
以下の式は、DATE_SHIPPEDカラムの各日付の月の部分を切り詰めます。
date:trunc(xs:dateTime('DATE_SHIPPED'), 'MM')
date:trunc(xs:dateTime('DATE_SHIPPED'), 'MON')
date:trunc(xs:dateTime('DATE_SHIPPED'), 'MONTH')
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:30AM
Jan 1 1998 00:00:00.000000000
Apr 19 1998 1:31:20PM
Apr 1 1998 00:00:00.000000000
Jun 20 1998 3:50:04AM
Jun 1 1998 00:00:00.000000000
Dec 20 1998 3:29:55PM
Dec 1 1998 00:00:00.000000000
NULL
NULL
以下の式は、DATE_SHIPPEDカラムの各日付の日の部分を切り詰めます。
date:trunc(xs:dateTime('DATE_SHIPPED'), 'D')
date:trunc(xs:dateTime('DATE_SHIPPED'), 'DD')
date:trunc(xs:dateTime('DATE_SHIPPED'), 'DDD')
date:trunc(xs:dateTime('DATE_SHIPPED'), 'DY')
date:trunc(xs:dateTime('DATE_SHIPPED'), 'DAY')
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:30AM
Jan 15 1998 00:00:00.000000000
Apr 19 1998 1:31:20PM
Apr 19 1998 00:00:00.000000000
Jun 20 1998 3:50:04AM
Jun 20 1998 00:00:00.000000000
Dec 20 1998 3:29:55PM
Dec 20 1998 00:00:00.000000000
Dec 31 1998 11:59:59PM
Dec 31 1998 00:00:00.000000000
NULL
NULL
以下の式は、DATE_SHIPPEDカラムの各日付の時の部分を切り詰めます。
date:trunc(xs:dateTime('DATE_SHIPPED'), 'HH')
date:trunc(xs:dateTime('DATE_SHIPPED'), 'HH12')
date:trunc(xs:dateTime('DATE_SHIPPED'), 'HH24')
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:31AM
Jan 15 1998 02:00:00.000000000
Apr 19 1998 1:31:20PM
Apr 19 1998 13:00:00.000000000
Jun 20 1998 3:50:04AM
Jun 20 1998 03:00:00.000000000
Dec 20 1998 3:29:55PM
Dec 20 1998 15:00:00.000000000
Dec 31 1998 11:59:59PM
Dec 31 1998 23:00:00.000000000
NULL
NULL
以下の式は、DATE_SHIPPEDカラムの各日付の分の部分を切り詰めます。
date:trunc(xs:dateTime('DATE_SHIPPED'), 'MI')
次の表に、一部のサンプル値と戻り値を示します。
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:30AM
Jan 15 1998 02:10:00.000000000
Apr 19 1998 1:31:20PM
Apr 19 1998 13:31:00.000000000
Jun 20 1998 3:50:04AM
Jun 20 1998 03:50:00.000000000
Dec 20 1998 3:29:55PM
Dec 20 1998 15:29:00.000000000
Dec 31 1998 11:59:59PM
Dec 31 1998 23:59:00.000000000
NULL
NULL

year-from-date

$argのローカライズ値の年を表すxs:integerを返します。値は負の値になる場合があります。

構文

fn:year-from-date(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。年形式に変換する必要がある日付として引数を渡します。

戻り値

$argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合は、$argのローカライズ値の年を表すxs:integerを返します。

この関数は、DATEカラムにargとして指定された値に対応する年値を返します。
DATE
RETURN VALUE
1999-06-30
1999
2001-01-01+05:00
2001

year-from-dateTime

$argのローカライズ値の年コンポーネントを表すxs:integerを返します。

構文

fn:year-from-dateTime(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。年形式に変換する必要がある日時として引数を渡します。

戻り値

$argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合は、$argのローカライズ値の年を表すxs:integerを返します。

この関数は、DATETIMEカラムにargとして指定された値に対応する年値を返します。
DATETIME
RETURN VALUE
1999-06-30+08:00
1999
2001-01-01+05:00
2001

years-from-duration

$argの値の年コンポーネントを表すxs:integerを返します。結果は、$argをxs:yearMonthDurationにキャストすることによって取得されます。

構文

fn:years-from-duration(arg)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。年に変換する必要がある期間として引数を渡します。

戻り値

$argが空のシーケンスである場合、この関数は空のシーケンスを返します。それ以外の場合は、$argの値の年コンポーネントを表すxs:integerを返します。期間が($months, $seconds)タプルの場合、結果は($months idiv 12)の値になります。

この関数は、DURATIONカラムにargとして指定された値に対応する日付値を返します。
DATETIME
RETURN VALUE
P20Y15M
21
-P15M
-1

リスト関数

次の関数は、式エディタの[リスト]セクションで使用できます。

append

XQueryのappend関数は、1番目のシーケンスのすべての項目とそれに続けた2番目のシーケンスのすべての項目で構成されるシーケンスを返すことによって、2つの入力シーケンスを連結します。

構文

list:append(objectlist, newItem)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
objectlist
必須
連結する項目の1番目のシーケンス。
newItem
必須
1番目のシーケンスに追加する、項目の2番目のシーケンス

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
list:append((), ("a", "b"))
a;b
list:append(("apple"), ())
("apple")
list:append((), ())
()

追加情報

count

XQueryのcount関数は、シーケンス内の項目の数を返します。

構文

list:count(objectlist)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
objectlist
必須
項目をカウントする対象の入力シーケンス。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
list:count((1, 2, 3, 4))
4
list:count(())
0
list:count(("apple", "orange"))
2
list:count(document{<a/>, <b/>, <c/>}/child::node())
3
list:count(1 to 10)
10

追加情報

head

XQueryのhead関数は、シーケンスの最初の項目を返すか、入力シーケンスが空の場合は空のシーケンスを返します。

構文

list:head(objectlist)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
objectlist
必須
最初の項目を返す対象となる入力シーケンス。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
list:head((10, 20, 30))
10
list:head(())
()
list:head(("apple", "banana"))
"apple"

追加情報

list

XQueryのlist関数は、IDのシーケンスをオブジェクトリスト用にIDのセミコロン区切りリストに変換します。

構文

list:list(sequence)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
sequence
必須
リストに含める項目のシーケンス。

戻り値

入力項目のセミコロン区切りリストのシーケンスを返します。

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
list:list(('a','b','c'))
("a", "b", "c")
list:list((1,2,3))
(1, 2, 3)

remove

XQueryのremove関数は、入力シーケンス内の指定した位置の項目を削除したシーケンスを返します。

構文

list:remove(objectlist, position)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
objectlist
必須
項目を削除する対象の入力シーケンス。
position
必須
$seqから削除する項目の位置(1始まり)。

戻り値

追加情報

置換

XQueryのreplace関数は、リスト内の既存項目を新しい値に置換します。

構文

list:replace(objectlist, position, newItem)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
objectlist
必須
項目を置換する対象のシーケンスまたはリスト。
position
必須
置換する項目の位置(1始まり)。
newItem
必須
古い項目の代わりに挿入する新しい項目。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
list:replace((10, 20, 30, 40), 2, 25)
(10, 25, 30, 40)
list:replace(("a", "b", "c"), 1, "x")
("x", "b", "c")
list:replace((1, 2, 3), 4, 5)
(1, 2, 3)

sequence

XQueryのsequence関数は、セミコロン区切りのリストをシーケンスに変換します。オブジェクトリストフィールドを式とコンテンツに挿入すると、そのフィールドはXQueryのlist:sequence(objectlist_field_name)関数でラップされます。ホストされているオブジェクト内のオブジェクトリストについては、オブジェクトリスト内のIDのセミコロン区切りリストがシーケンスに変換されます。プロセスオブジェクトのオブジェクトリストについては、値がすでにシーケンスで、関数が変更なしのリストを返します。

次の例は、オブジェクトリストをセミコロン区切りリストに変換し、各項目についてこの処理を繰り返します。
for $objectid in list:sequence($objectlist)
...
次の例は、ホステットオブジェクトに対し、IDのシーケンスをオブジェクトリスト用にIDのセミコロン区切りリストに変換します。プロセスオブジェクトのオブジェクトリストの場合、値のシーケンスを返します。
let $mergedObjectLists :=
( as:sequence($objectlist1), as:sequence($objectlist2) )
return list:list($mergedObjectLists)

tail

XQueryのtail関数は、最初の項目を除く入力シーケンスのすべての項目を返します。入力シーケンスが空の場合、または項目が1つしか含まれていない場合、結果は空のシーケンスになります。

構文

list:tail(objectlist)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
objectlist
必須
最初の項目を除いた部分(テール)を返す対象となる入力シーケンス。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
list:tail((10, 20, 30, 40))
(20, 30, 40)
list:tail(("apple", "banana"))
("banana")
list:tail((<a/>, <b/>, <c/>))
(<b/>, <c/>)
list:tail((42))
()
list:tail(())
()

算術関数

次の関数は、式エディタの[算術]セクションで使用できます。

acos

XQueryのacos関数は、数値入力値の逆余弦であるアークコサインを返します。入力は角度のコサインを表し、関数は0からπの範囲内の角度をラジアン単位で返します。

構文

math:acos(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
角度のコサインを表す数値。有効な入力範囲は-1から1です。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
math:acos(1)
0
math:acos(0)
1.57079632679
math:acos(-1)
3.14159265359
math:acos(1.5)
空のシーケンス
math:acos(())
()

追加情報

asin

XQueryのasin関数は、数値入力値のアークサイン(逆正弦)を返します。入力は角度のサインを表し、関数は-π/2からπ/2の範囲内の角度をラジアン単位で返します。

構文

math:asin(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
角度のサインを表す数値。有効な入力範囲は-1から1です。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
math:asin(0)
0
math:asin(1)
1.57079632679
math:asin(-1)
-1.57079632679
math:asin(1.5)
空のシーケンス
math:asin(())
()

追加情報

atan

XQueryのatan関数は、数値入力値のアークタンジェント(逆正接)を返します。指定した数値がそのタンジェントとなる角度をラジアン単位で計算します。結果は-π/2からπ/2の範囲になります。

構文

math:atan(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
角度のタンジェントを表す数値。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
math:atan(0)
0
math:atan(1)
0.78539816339
math:atan(-1)
-0.78539816339
math:atan(())
()

追加情報

atan2

XQueryのatan2関数は、座標(x, y)の平面上の点と正のx軸による原点に対する角度をラジアン単位で返します。結果は-πから+πの範囲になります。

構文

math:atan2(arg1, arg2)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg1
必須
商(tan θ = y/x)のy座標(分子)。
arg2
必須
商のx座標(分母)。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT (approximate)
math:atan2(0, 1)
0
math:atan2(1, 1)
0.78539816339
math:atan2(1, 0)
1.57079632679
math:atan2(-1, -1)
-2.35619449019
math:atan2((), 2)
()
math:atan2(1, ())
()

追加情報

cos

XQueryのcos関数は、数値入力値のコサインを返します。入力はラジアンで表される角度です。

構文

math:cos(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
コサインを計算するラジアン単位の角度。任意の数値型にすることができます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
math:cos(0)
1
math:cos(math:pi())
-1
math:cos(())
()

追加情報

exp

XQueryのexp関数は、指定した数値入力の指数関数を計算し、e^{x}を返します。ここで、eはネイピア数と呼ばれるものであり、約2.71828です。xは入力引数です。

構文

math:exp(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
計算(e^{x})に使用する指数値。任意の数値型(integer、decimal、float、double)を受け入れます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
math:exp(0)
1
math:exp(1)
2.718281828459045
math:exp(2)
7.38905609893065
math:exp(-1)
0.367879441171442
math:exp(())
()

追加情報

exp10

XQueryのexp10関数は、10を数値の入力引数で冪乗した値を返します。つまり、10^xを計算します。ここで、xは入力値です。

構文

math:exp10(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
計算(10^x)に使用する指数値(x)。任意の数値型を受け入れます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
math:exp10(0)
1
math:exp10(1)
10
math:exp10(2)
100
math:exp10(-1)
0.1
math:exp10(())
()

追加情報

log

XQueryのlog関数は、引数の自然対数を返します。

構文

math:log(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
自然対数を計算する対象の正の数値。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
math:log(1)
0
math:log(math:e())
1
math:log(10)
2.302585092994046
math:log(-1)
エラーまたは空のシーケンス
math:log(())
()

追加情報

log10

XQueryのlog10関数は、引数の基数10の対数を返します。

構文

math:log10(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
基数10の対数を計算する対象の正の数値。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
math:log10(1)
0
math:log10(10)
1
math:log10(100)
2
math:log10(-5)
エラーまたは空のシーケンス
math:log10(())
()

追加情報

pi

XQueryのpi関数は、数学定数π(パイ)を返します。値は約3.141592653589793です。

構文

math:pi()

戻り値

定数πを倍精度浮動小数点数(xs:double)として返します。

次の表に、サンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
math:pi()
3.141592653589793

追加情報

pow

XQueryのpow関数は、1番目の数値引数の値を2番目の数値引数で冪乗した値(x^y)を返します。

構文

math:pow(arg1, arg2)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg1
必須
冪乗する基数。
arg2
必須
基数に対する冪指数。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
math:pow(2, 3)
8
math:pow(10, 0)
1
math:pow(5, -1)
0.2
math:pow((), 2)
()
math:pow(2, ())
()

追加情報

sin

XQueryのsin関数は、数値の入力角度のサインを返します。角度はラジアンで指定します。

構文

math:sin(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
サインを計算する対象の角度(ラジアン単位)。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
math:sin(0)
0
math:sin(math:pi() div 2)
1
math:sin(math:pi())
1.2246467991473532E-16
math:sin(())
()

追加情報

sqrt

XQueryのsqrt関数は、負でない数値入力値の平方根を返します。

構文

math:sqrt(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
平方根を計算する対象となる負でない数値。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
math:sqrt(9)
3
math:sqrt(0)
0
math:sqrt(2)
1.41421356237
math:sqrt(-1)
エラーまたは空のシーケンス
math:sqrt(())
()

追加情報

tan

XQueryのtan関数は、指定した数値をラジアン単位の角度として解釈し、そのタンジェントを返します。

構文

math:tan(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
オプション
入力角度(ラジアン単位)。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
math:tan(0)
0
math:tan(1)
1.55740772465490
math:tan(3.1415926535 div 4)
0.9999999999999999
math:tan(())
()

追加情報

その他の関数

次の関数は、式エディタの[その他]セクションで使用できます。

aesDecryption

>Advanced Encryption Standard (AES)アルゴリズムを使用して、指定されたキーで指定されたデータを復号化します。aesEncryption関数でデータの暗号化に使用したキーと同じキーを使用する必要があります。

構文

util:aesDecryption(key, dataToDecrypt)

戻り値

この関数は、復号化された値を返します。

次の例は、関数の入力として渡されたデータとキーの復号化された値を返します。
SAMPLE FUNCTION
OUTPUT
util:aesDecryption("1234@abc", "QETcr60N6QBSTB0X8V4Y+GL\/K0+nt7M6ON0VommGAU4=")
Informatica
util:aesEncryption("abcdefghkl", "tceVjWKW2lKWQ+ZJfHn4gUKXPDUPrEilmNoTueesPo0=")
cloud

aesEncryption

Advanced Encryption Standard(AES)アルゴリズムを使用して、特定のキーで指定されたデータを暗号化します。

構文

util:aesEncryption(key, dataToEncrypt)

戻り値

この関数は、暗号化された値を返します。

次の例は、関数の入力として渡されたデータとキーの暗号化された値を返します。
SAMPLE FUNCTION
OUTPUT
util:aesEncryption("1234@abc", "Informatica")
QETcr60N6QBSTB0X8V4Y+GL\/K0+nt7M6ON0VommGAU4=
util:aesEncryption("abcdefghkl", "cloud")
tceVjWKW2lKWQ+ZJfHn4gUKXPDUPrEilmNoTueesPo0=

decode

指定した値をカラムで検索します。値を見つけると、定義された結果値を返します。1つのdecode関数内には、数に制限なく検索を指定できます。
decodeを使って文字列カラムの値を検索する場合には、rtrim関数で末尾の空白を削除することや、検索文字列内に空白文字を含めることもできます。

構文

util:decode(value, search1, result1, args, default)
次の表に、引数を示します。
引数
必須/
オプション
説明
必須
検索を行う値を渡します。
任意の有効なトランスフォーメーション式を入力できます。バイナリ以外の任意のデータ型を渡すことができます。
NULL値を渡すには、次の形式で空のシーケンスを指定する必要があります: ()
search1
必須
検索を行う対象の値を渡します。
任意の有効なトランスフォーメーション式を入力できます。value引数と同じデータ型の任意の値を渡すことができます。検索する値と値引数は、必ず一致させる必要があります。値の一部を検索することはできません。また、検索する値では大文字と小文字が区別されます。
例えば、特定のカラムで文字列'Halogen Flashlight'を検索したい場合には、'Halogen'だけでなく'Halogen Flashlight'と入力する必要があります。'Halogen'と入力すると、一致する値が見つかりません。
NULL値を渡すには、次の形式で空のシーケンスを指定する必要があります: ()
result1
必須
検索で一致した値が見つかったときに返す値です。
任意の有効なトランスフォーメーション式を入力して、バイナリ以外の任意のデータ型を渡すことができます。
NULL値を渡すには、次の形式で空のシーケンスを指定する必要があります: ()
args
必須
カンマで区切られた検索値と結果値のペア。
例えば、以下の構文を使用します。
util:decode(value, search1, result1, search2, result2, searchn, resultn, default)
NULL値を渡すには、次の形式で空のシーケンスを指定する必要があります: ()
default
必須
検索で一致した値が見つからなかったときに返す値です。
任意の有効なトランスフォーメーション式を入力して、バイナリ以外の任意のデータ型を渡すことができます。
NULL値を渡すには、次の形式で空のシーケンスを指定する必要があります: ()

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
util:decode("apple", "apple", "Fruit", ("carrot", "Vegetable"), "Unknown")
"フルーツ"
util:decode(3, 1, "1つ", (2, "2つ", 3, "3つ"), "該当なし")
"3つ"
util:decode("車", "自転車", "二輪", ("車", "四輪"), "不明")
"四輪"
util:decode("bus", "bike", "Two-wheel", ("car", "Four-wheel"), "Not found")
"見つかりません"
util:decode("バス", "自転車", "二輪", "車", "四輪")
()

escape-Json-String

指定された文字列内の特殊文字を、JSONで使用する際に有効になるようにエスケープします。

構文

util:escapeJsonString(str)

戻り値

ルールhttp://json.org/に従って値をエンコードし、JSON文字列として返します。

この関数は、入力として指定されたさまざまな文字列に対して次の値を返します。
STRING INPUT
RETURN VALUE
//
/\/\
Item1, Items2
Item1, Items2  
\n
\\\\n

getAssetLocation

関数を使用するプロセスまたはガイドが保存されている場所を返します。
注:
ガイドに加えて、getAssetLocation関数はクラウドサーバー上で実行されるプロセスでのみ使用できます。

構文

util:getAssetLocation()

戻り値

この関数は、アセットが存在するフォルダの場所を返します。

getAssetName

関数を使用するプロセスまたはガイドの名前を返します。

構文

util:getAssetName()

戻り値

この関数は、出力でアセット名を文字列として返します。

getInstanceStartTime

指定されているプロセスまたはガイドの実行中インスタンスの開始時刻を返します。

構文

util:getInstanceStartTime()

戻り値

この関数は、指定されたアセットに対応する実行中のインスタンスの開始時刻を返します。この関数は出力をyyyy-MM-dd'T'HH:mm:ss.SS'Z'形式で返します。

次のサンプルは、プロセスで使用される関数の結果を表示します。
2023-09-20T09:02:50.774Z

getOrganizationId

実行中のインスタンスのコンテキスト内にあるInformatica Intelligent Cloud Services組織IDの文字列を返します。

構文

util:getOrganizationId()

戻り値

プロセスがエージェントにデプロイされている場合、関数は出力を$publicとして返します。
プロセスがクラウドサーバーにデプロイされている場合、関数はInformatica Intelligent Cloud Services組織IDの文字列を出力として返します。

次のサンプルは、関数の結果を示しています。

getOrganizationName

実行中のプロセス、ガイド、サービスコネクタ、またはデータアクセスサービスコネクタのコンテキストで組織名を返します。

構文

util:getOrganizationName()

戻り値

この関数は、出力として組織名の文字列を返します。

iif

条件の結果に基づいて、指定した2つの値のうちの1つを返します。

構文

util:iif(condition, val1 ,val2)
次の表に、引数を示します。
引数
必須/オプション
説明
condition
必須
評価を行う条件。
TRUEまたはFALSEになる有効なトランスフォーメーション式を必要に応じて入力できます。
val1
必須
条件がTRUEのときに返す値。戻り値は常にこの引数で指定したデータ型になります。
別のiif式を含む、任意の有効なトランスフォーメーション式を入力できます。バイナリ以外の任意のデータ型を渡すことができます。
val2
オプション
条件がFALSEのときに返す値。
別のiif式を含む、任意の有効なトランスフォーメーション式を入力できます。バイナリ以外の任意のデータ型を渡すことができます。
iif関数にFALSE (val2)条件は必要ありません。val2を省略すると、条件がFALSEの場合、関数は次のいずれかの値を返します。
例えば、次の式にはFALSE条件が含まれておらず、val1はStringデータ型であるため、decodeはFALSEと評価されたそれぞれの行に対して空の文字列を返します。
util:iif(SALES > 100, EMP_NAME)
次の表に、一部のサンプル値と戻り値を示します。
SALES
EMP_NAME
RETURN VALUE
150
John Smith
John Smith
50
Pierre Bleu
'' (empty string)
120
Sally Green
Sally Green
NULL
Greg Jones
'' (empty string)

戻り値

条件がTRUEの場合はval1
条件がFALSEの場合はval2
例えば、下記の式にはFALSE条件であるNULLが含まれるため、decodeはFALSEと評価されたそれぞれの行に対してNULLを返します。
util:iif(SALES > 100, EMP_NAME, NULL)
次の表に、一部のサンプル値と戻り値を示します。
SALES
EMP_NAME
RETURN VALUE
150
John Smith
John Smith
50
Pierre Bleu
NULL
120
Sally Green
Sally Green
NULL
Greg Jones
NULL

iifおよびデータ型

iifを使用した場合、戻り値のデータ型は最大の精度を持つ結果のデータ型と同じものとなります。
例えば、次のような式があるとします。
util:iif(SALES < 100, 1, .3333)
TRUEの結果(1)は整数であり、FALSEの結果(.3333)は小数です。Decimalデータ型は、Integerデータ型よりも精度が高くなります。したがって、戻り値のデータ型は常に固定小数点値です。

IIFの特殊な使用法

ネストしたIIF文を使用して、複数の条件をテストできます。以下の例は、各種条件をテストし、販売額が0または負の場合には0を返します。
util:iif(SALES > 0, util:iif(SALES < 50, SALARY1, util:iif(SALES < 100, SALARY2, util:iif( SALES < 200, SALARY3, BONUS))), 0 )

次に含まれる

入力値を値のリストとマッチングします。デフォルトでは、大文字と小文字を区別します。

構文

util:in(valueToSearch, values, caseFlag)
次の表に、引数を示します。
引数
必須/
オプション
説明
valueToSearch
必須
文字列、日付または数値。値のカンマ区切りリストと照合する入力値。
NULL値を渡すには、次の形式で空のシーケンスを指定する必要があります: ()
values
必須
文字列、日付または数値。検索する値のカンマ区切りリスト。値にはカラムを使用できます。指定する値の数に制限はありません。
NULL値を渡すには、次の形式で空のシーケンスを指定する必要があります: ()
caseFlag
オプション
整数でなければなりません。この関数の引数の大文字と小文字を区別するかどうかを指定します。有効なトランスフォーメーション式を必要に応じて入力できます。
caseFlagが0以外の数値の場合、大文字と小文字を区別します。
caseFlagがNULL値または0の場合、大文字と小文字を区別しません。

戻り値

入力値が値リストに一致する場合はTRUE (1)。
入力値が値リストに一致しない場合はFALSE (0)。
NULL値を入力した場合は、NULLです。

以下の式は、入力値がsafety Knife、Chisel Point Knife、Medium Titanium Knifeのいずれであるかを決定します。入力値は、必ずしもカンマ区切りリストの値の表記(大文字/小文字)に一致させる必要はありません。
util:in(ITEM_NAME, ‘Chisel Point Knife’, ‘Medium Titanium Knife’, ‘Safety Knife’, 0)
次の表に、一部のサンプル値と戻り値を示します。
ITEM_NAME
RETURN VALUE
Stabilizing Vest
0 (FALSE)
Safety knife
1 (TRUE)
Medium Titanium knife
1 (TRUE)
NULL

isNull

値がNULLであるかどうかを返します。
注:
isNull関数は、空の文字列をFALSEと評価します。

構文

util:isNull(value)
以下の表に、このコマンドの引数を示します。
引数
必須/
オプション
説明
必須
評価を行う行を渡します。有効なトランスフォーメーション式を必要に応じて入力できます。Binary以外の任意のデータ型の値を渡すことができます。

戻り値

値がNULLの場合は、TRUE(1)。
値がNULLでない場合は、FALSE(0)。

次の例は、itemsテーブル内のNULL値を確認します。
util:isNull( ITEM_NAME )
次の表に、一部のサンプル値と戻り値を示します。
ITEM_NAME
RETURN VALUE
Flashlight
0 (FALSE)
NULL
1 (TRUE)
Regulator system
0 (FALSE)
''
0 (FALSE)  Empty string is not NULL

removeSystemNamespaceXML

XMLドキュメントからシステム名前空間を削除して、より単純で読みやすいXML構造が提供されるようにします。

構文

util:removeSystemNamespaceXML(currentElement)

戻り値

この関数は、より単純化された、読みやすいXML構造を返します。

次の表に、関数の入力として渡されるXMLコードスニペットと、対応するXML出力の例を示します。
SAMPLE FUNCTION
OUTPUT

<root>
<Request xmlns:sf="http://schemas.active-endpoints.com/appmodules/screenflow/2010/10/avosScreenflow.xsd"
xmlns:aetgt="http://schemas.informatica.com/spi/types/2013/12/spi-interface/"
xmlns:ns2="http://schemas.informatica.com/spi/types/2013/12/spi-interface/"
xmlns:type="http://schemas.informatica.com/spi/types/2013/12/spi-interface/"
xmlns:ns4="http://schemas.active-endpoints.com/appmodules/screenflow/2011/06/avosHostEnvironment.xsd"
xmlns:ns3="http://schemas.active-endpoints.com/appmodules/screenflow/2011/07/avosCommon.xsd"
xmlns:ns5="http://schemas.active-endpoints.com/appmodules/screenflow/2012/09/avosObjectDiscovery.xsd"
xmlns:ns6="http://schemas.active-endpoints.com/appmodules/screenflow/2010/10/avosScreenflow.xsd">
<MessageID>001</MessageID>
<Customer>
<CustomerID>CUST123</CustomerID>
<Name>Jane Doe</Name>
</Customer>
<Order>
<OrderID>ORD789</OrderID>
<Product>Gadget X</Product>
<Quantity>5</Quantity>
</Order>
</Request>
</root>

<root>
<Request>
<MessageID>001</MessageID>
<Customer>
<CustomerID>CUST123</CustomerID>
<Name>Jane Doe</Name>
</Customer>
<Order>
<OrderID>ORD789</OrderID>
<Product>Gadget X</Product>
<Quantity>5</Quantity>
</Order>
</Request>
</root>

rsaDecryption

非対称暗号化は、パブリックキーとプライベートキーのペアと、必要に応じてパスフレーズまたはパスワードを使用してデータを暗号化および復号化する暗号化方法です。rsaDecryption関数は、提供されたプライベートキーとパスフレーズによりRSAアルゴリズムを使用して暗号テキストを復号化します。プライベートキーはパスフレーズで保護することができます。パスフレーズを使用していない場合は、文字列を空のままにします。キーファイルがパスワードで保護されていない場合、パスフレーズは無視されます。
注:
データを復号化できるのは、Secure Agentで実行するように設定されたプロセスでのみで、キーファイルは選択したエージェントで使用可能である必要があります。
RSA暗号化には、次のタイプのキーを使用できます。
RSAにより、次のキーサイズに基づいて、暗号化または復号化できるデータの量を制限します。

構文

util:rsaDecryption(keyType, key, passPhrase, dataToDecrypt)
以下の表に、このコマンドの引数を示します。
引数
説明
keyType
使用するRSAキーのタイプを指定します。
次のいずれかの値を入力できます。
  • - GPG
  • - OpenSSL
key
選択したエージェント上のプライベートキーファイルの絶対パス。
式エディタは、キー自体ではなく、キーのファイルパスを入力として受け入れます。
dataToDecrypt
復号化するbase64エンコード形式の暗号テキスト。

戻り値

この関数は、データを復号化された値として返します。

次の例は、関数の入力として渡されたキーに基づいて、データの復号化された値を返します。
SAMPLE FUNCTION
OUTPUT
util:rsaDecryption("GPG", "/absolute/path/to/private_key.asc", "password", "Bms....w5Y=")
Hello, world!

rsaEncryption

非対称暗号化は、パブリックキーとプライベートキーのペアと、必要に応じてパスフレーズまたはパスワードを使用してデータを暗号化および復号化する暗号化方法です。rsaEncryption関数は、RSAアルゴリズムおよび提供されたパブリックキーを使用してデータを暗号化します。
注:
データの暗号化は、Secure Agent上で実行するように設定されたプロセスでのみ実行でき、選択したエージェント上でキーファイルが使用可能である必要があります。
RSA暗号化には、次のタイプのキーを使用できます。
RSAにより、次のキーサイズに基づいて、暗号化または復号化できるデータの量を制限します。

構文

util:rsaEncryption(keyType, key, dataToEncrypt)
以下の表に、このコマンドの引数を示します。
引数
説明
keyType
使用するRSAキーのタイプを指定します。
次のいずれかの値を入力できます。
  • - GPG
  • - OpenSSL
key
選択したエージェント上のパブリックキーファイルの絶対パス。
式エディタは、キー自体ではなく、キーのファイルパスを入力として受け入れます。
dataToEncrypt
暗号化するプレーンテキストデータ。

戻り値

この関数は、RSA暗号化の結果としてbase64でエンコードされたテキストを返します。

次の例は、関数の入力として渡されたキーに基づいて、データの暗号化された値を返します。
SAMPLE FUNCTION
OUTPUT
util:rsaEncryption("GPG", "/absolute/path/to/public_key.asc", "Hello, world!")
BmselDb3Z....QzE0XCyngU4JReww5Y=

toDecimal

文字列または数値を10進数値に変換します。toDecimal関数では、先頭のスペースが無視されます。

構文

util:toDecimal(value, scale)
次の表に、引数を示します。
引数
必須/
オプション
説明
必須
StringまたはNumericデータ型で指定する必要があります。10進数に変換する値を渡します。
有効なトランスフォーメーション式を必要に応じて入力できます。
スケール
オプション
0から28までの整数リテラル。小数点以下の桁数を指定します。この引数を省略すると、関数は入力値と同じ位取りの値を返します。
この引数は、詳細モードで必要です。

戻り値

0から28までの精度と位取りを持つ10進値。
選択したカラムの値が空の文字列または数値以外の文字であった場合は、ゼロ。
関数にNULL値を渡した場合はNULLです。

次の式は、カラムIN_TAXからの値を使用します。データ型はDecimalで、精度は10、スケールは3です。
util:toDecimal(IN_TAX, 3)
次の表に、一部のサンプル値と戻り値を示します。
IN_TAX
RETURN VALUE
'15.6789'
15.679
'60.2'
60.200
'118.348'
118.348
NULL
NULL
'A12.3Grove'
0
次の式は、[Sales]カラムからの値を使用します。データ型はDecimalで、精度は10、スケールは2です。
util:toDecimal(Sales, 2)
次の表に、一部のサンプル値と戻り値を示します。
Sales
RETURN VALUE
'1234'
1234
'1234.01'
1234.01
1234.00形式の戻り値が必要な場合は、次の式を使用します。
format-number(util:toDecimal('1234', 2), '0.00')

10進数のオーバーフロー

小数点の左側の数値のサイズが精度を超えた場合は、10進数の演算がオーバーフローします。
この問題を解決するには、式ポートのスケールや精度を変更し、マッピングのダウンストリームポートを接続して、式の入力データのサイズに合わせた設定を使用します。
以下に例を示します。
数値フィールドのスケールが15に定義され、サイズが28に定義されている場合、このフィールドは小数点の左側に13個、右側に15個の数値を受け入れます。したがって、次の数値は28,15という数値に対して有効になります。
1234567890123.11143
13575.123451234567891
ただし、次の数値は10進数のオーバーフローエラーを引き起こします。
111112222233333.4444
123.1111122222333334

toInteger

文字列または数値を整数に変換します。toInteger構文にはオプションの引数があり、数字を近似値の整数に丸めるか、小数点以下を切り詰めるかを選択できます。toInteger関数は、先頭のスペースを無視します。

構文

util:toInteger(value, flag)
次の表に、引数を示します。
引数
必須/
オプション
説明
必須
StringまたはNumericデータ型で指定する必要があります。整数に変換する値を渡します。
有効なトランスフォーメーション式を必要に応じて入力できます。
flag
オプション
小数点以下を切り捨てるか丸めるかを指定します。フラグは整数リテラルか、TRUEまたはFALSEの定数でなければなりません。
  • - toIntegerは、フラグがTRUEまたは0以外の数字の場合に小数点以下を切り捨てます。
  • - フラグがFALSEまたは0の場合、あるいはこの引数が省略された場合、toIntegerは値を近似値の整数に丸めます。

戻り値

整数。
関数にNULL値を渡した場合はNULLです。
関数に渡された値に英数字が含まれている場合は0です。

次の式は、カラムIN_TAXからの値を使用します。
util:toInteger(IN_TAX, fn:boolean(1))
次の表に、一部のサンプル値と戻り値を示します。
IN_TAX
RETURN VALUE
'15.6789'
15
'60.2'
60
'118.348'
118
NULL
NULL
'A12.3Grove'
0
'    123.87'
123
'-15.6789'
-15
'-15.23'
-15

toJSON

XML要素をJSON文字列に変換します。
この関数を使用すると、要素数に関係なく配列を前提とするダウンストリームサービスに対して、一貫性のあるJSON配列構造を維持できます。関数は次の2つの引数を受け入れます:

構文

util:toJSON(elements as element(), preserveSingleElementArray as xs:boolean?) as xs:string

戻り値

http://json.org/のルールに従って値をJSON形式の文字列としてエンコードし、返します。

出力は、次の例に示すように、preserveSingleElementArrayに渡す値に応じて異なります。
注:
2つ以上の項目がある場合、この関数はpreserveSingleElementArray引数の値に関係なく、常にJSON配列を返します。

trace

クエリのデバッグに使用する実行トレースを提供します。
fn:trace関数は、項目およびそれらの項目のラベルを受け取り、項目を変更せずに返します。関数の正確な動作は実装環境に依存しますが、通常、プロセッサは項目のラベルと値をログファイルまたはユーザーコンソールに格納します。

構文

fn:trace(value, label)
次の表に、引数を示します。
引数
必須/
オプション
説明
必須
トレースする項目。
ラベル
オプション
トレース情報とともに表示するラベル。

戻り値

項目およびそれらの項目のラベルに基づいて、項目が変更されずに返されます。

次のような変数定義があるとします。
let $var1 := 5
次の式は、結果としてThe correct value is: 5を返します。
fn:trace($var1, 'The correct value is: ')

trunc (Numbers)

精度で指定された小数点以下の桁数に基づいて、数値を特定の桁に切り詰めます。

構文

util:trunc(arg, precision)
引数
必須/
オプション
説明
arg
必須
数値データタイプ。切り詰めを行う引数を渡します。数値データ型と評価される有効な式を入力します。
precision
オプション
正または負の整数です。整数を求める有効な式を必要に応じて入力できます。この整数は、切り詰め後の桁数を指定します。
precisionが正の整数である場合、truncはprecisionで指定された小数点以下の桁数を含むargを返します。precisionが負の整数である場合、truncは小数点の左側の指定された桁数をゼロに変更します。precision引数を省略すると、truncはargの小数部分を切り詰めて、整数を返します。
引数の小数点以下の末尾のゼロはすべて切り詰められます。例えば、次の式は結果として2345.7535を返します。
util:trunc(2345.75350000, 6)
小数点以下が16桁を超える数値が含まれている場合、XQueryの制限により、結果は指数値を返します。
例えば、次の式は結果として1.234567812345679E7を返します。
util:trunc(12345678.12345678901234567890, 15)
10進数のprecision値を渡すと、argを近似値の整数に四捨五入してから、式が評価されます。

戻り値

関数で指定されたパラメータに基づく数値または整数値。

以下の式は、PRICEカラム内の値の切り詰めを行います。
util:trunc(PRICE, 3)
PRICE
RETURN VALUE
12.9995
12.999
-18.8652  
-18.865
56.9563
56.956
15.9928
15.992
util:trunc(PRICE, -1)
PRICE
RETURN VALUE
12.99
10
-187.86  
-180
56.95
50
1235.99
1230
util:trunc(PRICE )
PRICE
RETURN VALUE
12.99
12
-18.99  
-18
56.95
56
15.99
15

シリアライズ

指定したノード$argをシリアライズし、そのシリアライズしたノードを文字列として返します。

構文

fn:serialize()

戻り値

string

この関数は、Saxon 9.5.1.10 PEバージョンを使用して、指定した入力に対して次の出力を返します。
INPUT
OUTPUT
<a/> (element)
&lt;?xml...?&gt;&lt;a/&gt;
"<a/>" (string)
<a/>
この関数は、Saxon 11.5 EEバージョンを使用して、指定した入力に対して次の出力を返します。
INPUT
OUTPUT
<a/> (element)
&lt;a/&gt;
"<a/>" (string)
&lt;a/&gt;
Saxonライブラリのアップグレードによるアプリケーション統合の動作の変更の詳細については、ナレッジベースの記事「KB 000205484」を参照してください。

simplifyXml

XML内のデータを再配置して、プロセスオブジェクトで使用できるようにします。

構文

util:simplifyXml(undefined)

戻り値

プロセスがクラウドサーバーまたはエージェントにデプロイされると、この関数は名前空間のない出力を返し、属性を子要素に変換します。

この関数は、入力として提供されたXMLデータに対して次の出力を返します。
INPUT
OUTPUT
<ns:root xmlns:ns="https://qwerty"
attrKey="attrValue">
data
</ns:root>
<root><attrKey>attrValue</attrKey>
<text>data</text>
</root>

数値関数

式エディタの[数値]セクションでは、次のような関数を使用できます。

abs

数値の絶対値を返します。

構文

fn:abs(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
数値データ型。指定された数値の絶対値を返します。有効な式を必要に応じて入力できます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:abs(40)
40
fn:abs(3.5)
3.5
fn:abs(-4)
-4
Null
Null
次の式は、2つの数値の差を、どちらが大きいかに関係なく正の値として返します。
fn:abs( PRICE - COST )
PRICE
COST
RETURN VALUE
250
150
100
52
48
4
169.95
69.95
100
70
30
40
430
330
100
100
200
100

avg

引数で指定された入力シーケンス内の値の平均、つまり値の合計を値の数で割った数値を返します。

構文

fn:avg(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
数値データタイプ。平均を計算したい値を渡します。有効なトランスフォーメーション式を必要に応じて入力できます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE Function
OUTPUT
fn:avg( (1, 2, 3, 4, 5) )
3
fn:avg( (1, 2, 3, (), 4, 5) )
3
fn:avg( () )
()
次の式は、懐中電灯の平均卸売り原価を返します。
fn:avg( WHOLESALE_COST, ITEM_NAME='Flashlight' )
ITEM_NAME
WHOLESALE_COST
Flashlight
35.00
Navigation Compass
8.05
Regulator System
150.00
Flashlight
29.00
Depth/Pressure Gauge
88.00
Flashlight
31.00

ヒント

AVG関数で平均を計算する前に、AVGに渡す値に算術演算を実行することができます。以下に例を示します。
fn:avg( QTY * PRICE - DISCOUNT )

ceiling

引数の値以上の、端数部分を持たない最も小さい数、つまり負の無限大に最も近い数を返します。引数の型が4つの数値型(xs:floatxs:doublexs:decimal、またはxs:integer)のいずれかである場合、結果の型は引数の型と同じ型になります。引数の型がいずれかの数値型から派生している場合、結果は基本の数値型のインスタンスとなります。

構文

fn:ceiling(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
数値データタイプ。有効な式を必要に応じて入力できます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:ceiling(5)
5
fn:ceiling(5.1)
6
fn:ceiling(5.5)
6
fn:ceiling(-5.5)
-5
fn:ceiling(-5.51)
-5
fn:ceiling( () )
()
次の式は、価格を次の整数に丸めて返します。
fn:ceiling( PRICE )
PRICE
RETURN VALUE
39.79
40
125.12
126
74.24
75
NULL
NULL
-100.99
-100

ヒント

ceilingが次の整数値を返す前に、ceilingに渡された値に対して算術演算を実行することができます。たとえば、数値に10を掛けてからその結果の値より小さい最小の整数を計算したい場合は、関数を次のように記述します。
fn:ceiling( PRICE * 10 )

floor

引数の値を超えない、端数部分を持たない最大の数、つまり正の無限大に最も近い数を返します。引数の型が4つの数値型(xs:floatxs:doublexs:decimal、またはxs:integer)のいずれかである場合、結果の型は引数の型と同じ型になります。引数の型がいずれかの数値型から派生している場合、結果は基本の数値型のインスタンスとなります。

構文

fn:floor(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
数値データ型。数値データを求める有効な式を必要に応じて入力できます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:floor(5)
5
fn:floor(5.1)
5
fn:floor(5.7)
5
fn:floor(-5.1)
-6
fn:floor(-5.7)
-6
fn:floor( () )
()
次の式は、PRICEカラムの値に等しいかそれより小さい最大の整数を返します。
fn:floor( PRICE )
PRICE
RETURN VALUE
39.79
39
125.12
125
74.24
74
NULL
NULL
-100.99
-101

ヒント

floorに渡す値に対して算術演算を実行することができます。たとえば数値に10を掛け、その結果より小さい最大整数を計算するには、以下の関数を書き込みます。
fn:floor( UNIT_PRICE * 10 )

max

XQueryのmax関数は、一連のアトミック値の最大値を見つけるために使用します。

構文

fn:max(arg, collation)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
値のシーケンス。
collation
オプション
文字列比較の照合順序を指定するために使用される文字列。これにより、文字列比較の実行方法を定義します。指定しない場合は、デフォルトの照合順序が適用されます。このパラメータは、文字列の比較に関連するものです。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:max( (2, 1, 5, 4, 3) )
5
fn:max( ('a', 'b', 'c') )
c
fn:max( (xs:date('1999-04-15'), current-date()) )
現在の日付
fn:max( 2 )
2
fn:max( () )
()

min

入力シーケンス引数から、入力シーケンス内の他のすべての項目の値以下の値を持つ項目を選択します。そのような項目が2つ以上ある場合、値が返される特定の項目は実装に依存します。

構文

fn:min(arg, collation)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
値のシーケンス。
collation
必須
文字列の比較に使用する照合順序。

戻り値

xs:anyAtomicType?
関数に渡された値がすべてNULLである場合、または行が1つも選択されていない場合(たとえば、フィルタ条件の値がすべての行に対してFALSEまたはNULLであった場合)には、NULLです。

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:min( (2.0, 1, 3.5, 4) )
1
fn:min( ('a', 'b', 'c') )
a

round

引数に最も近い端数のない数値を返します。このような数値が2つある場合は、正の無限大に最も近い数値が返されます。引数の型が4つの数値型(xs:floatxs:doublexs:decimal、またはxs:integer)のいずれかである場合、結果の型は引数の型と同じ型になります。引数の型がいずれかの数値型から派生している場合、結果は基本の数値型のインスタンスとなります。

構文

fn:round(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
数値データ型。引数に最も近い端数のない数値を返します。有効な式を必要に応じて入力できます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:round(5)
5
fn:round(5.1)
5
fn:round(5.5)
6
fn:round(-5.5)
-5
fn:round(-5.51)
-6

round-half-to-even

返される値は、10のマイナス$precision乗の倍数である、数値的に$argに最も近い値です。このような2つの値がどちらも同じくらい近い場合(例えば、$argの端数部分が正確に0.500…である場合)、関数は最下位の桁が偶数である方の値を返します。

構文

fn:round-half-to-even(arg, precision)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
丸める数値。
precision
必須
数値を丸める精度。これには、正または負の整数を指定することができます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:round-half-to-even(5.5)
6
fn:round-half-to-even(6.5)
6
fn:round-half-to-even(9372.253, 2)
9372.25
fn:round-half-to-even(9372.253, 0)
9372
fn:round-half-to-even(9372.253, -3)
9000

sum

$arg内の値を合計して得られた値を返します。

構文

fn:sum(arg, zero)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
数値データタイプ。追加したい値を渡します。有効なトランスフォーメーション式を必要に応じて入力できます。演算子を使用して、さまざまなフィールドの値を加算できます。
zero
必須
空のシーケンスの戻り条件。$zeroが指定されていない場合、空のシーケンスに対して返される値はxs:integer値0になります。$zeroが指定されている場合、空のシーケンスに対して返される値は$zeroになります。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:sum( (1, 2, 3) )
6
fn:sum( (1, 2, 3, () ) )
6
fn:sum( () )
0
fn:sum( (), () )
()
次の式は、Salesフィールド内の2000を超えるすべての値の合計を返します。
sum( SALES, SALES > 2000 )
SALES
2500.0
1900.0
1200.0
NULL
3458.0
4519.0
RETURN VALUE: 10477.0

ヒント

関数で合計を計算する前に、sumに渡される値に対して算術演算を実行することができます。以下に例を示します。
sum( QTY * PRICE - DISCOUNT )

シーケンス関数

式エディタの[シーケンス]セクションでは、次のような関数を使用できます。

count

XQueryのcount関数は、シーケンス内の項目の数を判断するために使用します。

構文

fn:count(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
カウントする項目のシーケンス。

戻り値

書籍のリストを含むXMLドキュメントがあり、リストされている書籍の数をカウントする場合は、次のように記述します。
<library>
<book>Book A</book>
<book>Book B</book>
<book>Book C</book>
</library>
次のXQueryを使用します。
let $books := doc("library.xml")/library/book
return fn:count($books)
出力は3です。
次の表に、追加のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:count( (1, 2, 3) )
3
fn:count( (1, 2, 3, () ) )
3
fn:count( (1, 2, 3, 1, 2 ) )
5
fn:count( () )
0

distinct-values

XQueryのdistinct-values関数は、指定されたシーケンスからの個別のアトミック値のみを含むシーケンスを返し、重複を効果的に削除します。

構文

fn:distinct-values(arg, collation)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
アトミック値のシーケンス。
collation
オプション
文字列の比較に使用する照合順序。

戻り値

$arg内の重複する値が削除され、互いに等しい(eq)値のセットごとに1つのインスタンスのみが保持されるシーケンスを返します。xs:untypedAtomic型の値は、比較用にxs:stringとして扱われます。値のタイプにeq演算子が定義されていないため値を比較できない場合、これらの値は異なるものとして扱われます。返されるシーケンスの順序は、実装によって異なる場合があります。

次のXMLのサンプルについて考えてみましょう。
let $in-xml :=
<in-xml>
<a>3</a>
<b>5</b>
<b>3</b>
</in-xml>
次の表に、上記のスニペットに基づくサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:distinct-values( ('a', 'b', 'a') )
('a', 'b')
fn:distinct-values( (1, 2, 3) )
(1, 2, 3)
fn:distinct-values( ('a', 2, 3) )
('a', 2, 3)
fn:distinct-values(
(xs:integer('1'),
xs:decimal('1.0'),
xs:float('1.0E0') ) )
1
fn:distinct-values($in-xml/*)
(3, 5)
fn:distinct-values( () )
()

index-of

XQueryのindex-of関数は、特定の検索項目と等しいシーケンス内の項目の位置を検索するために使用します。指定された項目が発生する位置のシーケンスを返します。

構文

fn:index-of(seqParam, srchParam, collation)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
seqParam
必須
検索するアトミック値のシーケンス。このシーケンスには、文字列、数値、およびブール値を含めることができます。
srchParam
オプション
$seqParam内のインデックスの位置を検索する項目。
collation
オプション
必要に応じて、文字列を比較するときに使用する照合順序を指定するための文字列。省略した場合は、デフォルトの照合順序が使用されます。

戻り値

$srchParamと等しい項目のシーケンス$seqParam内の位置を指定する正の整数のシーケンスを返します。一致するものが見つからない場合は、空のシーケンスが返されます。

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:index-of( ('a', 'b', 'c'), 'a')
1
fn:index-of( ('a', 'b', 'c'), 'd')
()
fn:index-of( (4, 5, 6, 4), 4)
(1, 4)
fn:index-of( (4, 5, 6, 4), 04.0)
(1, 4)
fn:index-of( ('a', 5, 6), 'a')
1
fn:index-of( (), 'a')
()
fn:index-of( (<a>1</a>, <b>1</b>), <c>1</c> )
(1, 2)

insert-before

XQueryのinsert-before関数は、指定された位置のシーケンスに項目を挿入するために使用します。この関数を使用すると、指定されたインデックスの前に要素を追加してシーケンスを変更することができます。

構文

fn:insert-before(target, position, inserts)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
target
必須
新しい項目が挿入されるシーケンス。
position
オプション
$targetシーケンス内で、$inserts内の項目が挿入される位置。位置は1以上の数値で指定します。指定した位置が1未満である場合、項目はシーケンスの先頭に挿入されます。位置がシーケンスの長さを超えている場合、その項目は末尾に追加されます。
inserts
必須
$targetシーケンスに挿入される項目のシーケンス。

戻り値

fn:insert-before関数は、$positionで指定された位置に$inserts内の項目が挿入された$targetシーケンスのコピーを返します。位置番号は0ではなく1から始まります。

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:insert-before( ('a', 'b', 'c'), 1, ('x', 'y'))
('x', 'y', 'a', 'b', 'c')
fn:insert-before( ('a', 'b', 'c'), 2, ('x', 'y'))
('a', 'x', 'y', 'b', 'c')
fn:insert-before( ('a', 'b', 'c'), 10, ('x', 'y'))
('a', 'b', 'c', 'x', 'y')
fn:insert-before( ('a', 'b', 'c'), 0, ('x', 'y'))
('x', 'y', 'a', 'b', 'c')
fn:insert-before( ('a', 'b', 'c'), 2, ())
('a', 'b', 'c')
fn:insert-before( (), 3, ('a', 'b', 'c') )
('a', 'b', 'c')
fn:insert-before((1, 2, 3), 2, ())
(1, 2, 3)

last

XQueryのlast関数は、式の評価中に、現在のコンテキストノードリスト内の最後の項目の位置番号を判断するために使用します。この関数は、XPath式やFLWORループ内で、サイズの決定またはシーケンスの最後の項目の操作を行う場合に特に便利です。

構文

fn:last()
last関数はパラメータを受け入れません。これは、コンテキスト内、通常はXPath式またはFLWOR(For、Let、Where、Order by、Return)式内で動作します。

戻り値

動的コンテキストからのコンテキストサイズを返します。
現在のコンテキストシーケンスの最後の項目の整数位置を返します。シーケンスを反復処理する場合、last()は、そのシーケンスの項目の総数を返します。

次の表に、サンプルのクエリと戻り値を示します。
SAMPLE FUNCTION
OUTPUT
let $doc :=
<items>
<item>Apple</item>
<item>Banana</item>
<item>Cherry</item>
</items>
(: Select the last <item> :)
let $lastItem := $doc/item[position() = fn:last()]
(: Select all but the last <item> :)
let $allButLast := $doc/item[position() lt fn:last()]
return
<results>
<last-item>{$lastItem/text()}</last-item>
<all-but-last>{ $allButLast/text() }</all-but-last>
</results>
<results><last-item>Cherry</last-item><all-but-last>Apple Banana</all-but-last></results>

position

XQueryのposition関数は、シーケンスの反復中に項目の現在の位置番号を判断するために使用します。

構文

fn:position()
position関数にはパラメータは必要ありません。これはシーケンスのコンテキスト内で動作し、通常はFLWORループなどの反復式で使用されます。

戻り値

動的コンテキストからのコンテキスト位置を返します。コンテキストシーケンス内の現在のコンテキスト項目の0ではなく1から始まる位置を表す整数を返します。

次の表に、サンプルのクエリと戻り値を示します。
SAMPLE FUNCTION
OUTPUT
let $doc :=
<items>
<item>Apple</item>
<item>Banana</item>
<item>Cherry</item>
</items>
(: Select the last <item> :)
let $lastItem := $doc/item[position() = fn:last()]
(: Select all but the last <item> :)
let $allButLast := $doc/item[position() lt fn:last()]
return
<results>
<last-item>{$lastItem/text()}</last-item>
<all-but-last>{ $allButLast/text() }</all-but-last>
</results>
<results><last-item>Cherry</last-item><all-but-last>Apple Banana</all-but-last></results>

remove

XQueryのremove関数は、指定された位置にあるシーケンスから項目を削除するために使用します。この関数は、残りの項目を変更せずに項目を削除することで、シーケンスを再構築する場合に役立ちます。

構文

fn:remove(target, position)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
target
必須
項目が削除されるシーケンス。
position
オプション
削除する必要があるシーケンス内の項目の位置。$posが1未満またはシーケンス内の項目数よりも大きい場合、シーケンスは変更されません。

戻り値

指定した位置にある項目を除くすべての項目を含むーケンスを返します。位置が範囲外である場合は、元のシーケンスを返します。

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:remove( ('a', 'b', 'c'), 2)
('a', 'c')
fn:remove( ('a', 'b', 'c'), 10)
('a', 'b', 'c')
fn:remove( ('a', 'b', 'c'), 0)
('a', 'b', 'c')

reverse

シーケンス内の項目の順序を反転します。

構文

fn:reverse(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
任意の文字値。逆順にする値。

戻り値

文字列。入力値を逆順にします。$argが空のシーケンスである場合は、空のシーケンスが返されます。

以下の式は、顧客コードの数字を逆順にします。
fn:reverse( CUSTOMER_CODE )
CUSTOMER_CODE
RETURN VALUE
0001
1
0002
2
0003
3
0004
4
(())
()

subsequence

XQueryのsubsequence関数は、開始位置とオプションの長さに基づいてシーケンスの特定の部分を取得するように設計されています。この関数を使用すると、目的のセグメントのみに焦点を当てて、シーケンスの一部を効率的に抽出できます。

構文

fn:subsequence(sourceSeq, startingLoc, length)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
sourceSeq
必須
サブシーケンスが抽出される入力シーケンス。
startingLoc
オプション
サブシーケンスが始まる$sourceSeq内の1から始まる位置。整数以外の値は、最も近い整数に丸められます。$startingLocが1未満である場合は、シーケンスの先頭から開始するように適切に調整されます。
length
オプション
サブシーケンスに含める項目の数。整数以外の値は、最も近い整数に丸められます。指定されていない場合、または値がサブシーケンスが$sourceSeqの末尾を超えている場合は、残りのすべての項目が含まれます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:subsequence(
('a', 'b', 'c', 'd', 'e'), 3)
('c', 'd', 'e')
fn:subsequence(
('a', 'b', 'c', 'd', 'e'), 3, 2)
('c', 'd')
fn:subsequence(
('a', 'b', 'c', 'd', 'e'), 3, 10)
('c', 'd', 'e')
fn:subsequence(
('a', 'b', 'c', 'd', 'e'), 10)
()
fn:subsequence(
('a', 'b', 'c', 'd', 'e'), -2, 5)
('a', 'b')
fn:subsequence( (), 3)
()
fn:subsequence((5, 10, 15, 20), 2.5, 2.6)
15, 20

unordered

XQueryのunordered関数は、シーケンス内の項目の順序が特定の操作では重要ではないことを示すために使用します。この関数により、順序を無視するようにクエリエンジンに通知することで、特に並列処理シナリオでパフォーマンスが最適化される可能性があります。

構文

fn:unordered(sourceSeq)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
sourceSeq
必須
順序が重要でないと見なされる項目のシーケンス。このシーケンスには、ノード、要素、およびアトミック値など、あらゆる種類の項目を含めることができます。

戻り値

$sourceSeqと同じ項目のシーケンスを返しますが、クエリの評価中に項目の順序が変わる可能性があります。返される特定の順序は実装に依存し、異なるものとなる場合があります。

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:unordered((3, 1, 4, 1, 5, 9))
3, 1, 4, 1, 5, 9
fn:unordered(("a", "o", "b", "g"))
a, o, b, g

文字列関数

式エディタの[文字列]セクションでは、次のような関数を使用できます。

codepoint-equal

XQueryのcodepoint-equal関数は、2つの文字列を比較し、Unicodeコードポイントに基づいて等しいかどうかを判断するために使用します。この関数により、2つの文字列が同一であるかどうかを高度な照合ルールを考慮せずに確認します。

構文

fn:codepoint-equal(comparand1, comparand2)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
comparand1
必須
比較する最初の文字列。これには、実際の文字列または空のシーケンス(())を指定することができます。
comparand2
必須
比較する2番目の文字列。また、これにも、実際の文字列または空のシーケンス(())を指定することができます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:codepoint-equal('abc', 'abc')
true
fn:codepoint-equal('abc', 'ab c')
false
fn:codepoint-equal('abc', ())
()
fn:codepoint-equal((), ())
()
fn:codepoint-equal("hello", "world")
false
fn:codepoint-equal("hello", "")
false

codepoints-to-string

XQueryのcodepoints-to-string関数は、一連のUnicodeコードポイントから文字列を構築するために使用します。この関数は文字の数値表現を受け入れ、それらを文字列に変換します。

構文

fn:codepoints-to-string(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
Unicodeコードポイントを表す整数のシーケンス。各整数は、結果の文字列内のそれぞれの文字に変換されるUnicodeコードポイントに対応しています。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:codepoints-to-string((97, 32, 98, 32, 99))
a b c
fn:codepoints-to-string(97)
a
fn:codepoints-to-string(())
長さがゼロの文字列
fn:codepoints-to-string((72, 101, 108, 108, 111))
"Hello"
fn:codepoints-to-string((87, 111, 114, 108, 100, 32, 88, 81, 117, 101, 114, 121))
"World XQuery"

compare

XQueryのcompare関数は、指定された照合順序を使用して2つの文字列を比較するために使用します。この関数は、定義された照合順序に基づいて並べ替えを行うなど、文字列の順序を決定する場合に役立ちます。

構文

fn:compare(comparand1, comparand2, collation)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
comparand1
必須
比較する最初の文字列。これには、有効な文字列またはempty-sequence()を指定することができます。
comparand2
必須
比較する2番目の文字列。また、これにも、有効な文字列またはempty-sequence()を指定することができます。
collation
オプション
比較に使用する照合順序URIを指定するための文字列。省略した場合は、デフォルトの照合順序が使用されます。照合順序ではロケール固有のルールが考慮され、この順序は文字列比較の実行方法に影響を及ぼします。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:compare('a', 'b')
-1
fn:compare('a', 'a')
0
fn:compare('b', 'a')
1
fn:compare('ab', 'abc')
-1
fn:compare('a', 'B')
1
これは、単純なコードポイント照合を使用すると、小文字のaが大文字のBの後に表示されることを示しています。
fn:compare(upper-case('a'), upper-case('B'))
-1
fn:compare('a', ())
()
fn:compare('a', 'b', 'FOO')
Error FOCH0002
fn:compare((), ())
()

concat

XQueryのconcat関数は、2つ以上の文字列を1つの文字列に連結するために使用します。この関数を使用すると、複数の文字列値を1つの連続した文字列に効果的に結合することができます。

構文

fn:concat(arg1, arg2)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg1
必須
最初に連結する値。
arg2
必須
2番目に連結する値。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:concat('a')
Error XPST0017
fn:concat('a', 'b')
ab
fn:concat('a', 'b', 'c')
abc
fn:concat('a', (), 'b', '', 'c')
abc
fn:concat( ('a', 'b', 'c') )
Error XPST0017
fn:concat('a', <x>b</x>, 'c')
abc
fn:concat("Hello, ", "World", "!")
"Hello, World!"
fn:concat("Result: ", 42)
"Result: 42"
fn:concat("Start-", (), "End")
"Start-End"

contains

XQueryのcontains関数は、ある文字列に別の部分文字列が含まれているかどうかを判別するために使用します。この関数により、メインの文字列に、指定された部分文字列が少なくとも1つ含まれているかどうかを判断します。これは、より大きな文字列内の部分文字列の有無を示すブール値として評価されます。

構文

fn:contains(arg1, arg2, collation)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg1
必須
別の部分文字列の存在を確認するためのメインの文字列。empty-sequence()である場合は、空の文字列として処理されます。
arg2
必須
$arg1内で検索する部分文字列。これは、検索を行っている部分文字列です。empty-sequence()である場合は、空の文字列として処理されます。
collation
オプション
文字列を比較するときに使用する照合順序を指定するためのURI。照合順序により、文字列比較のロケール固有のルールを定義します。省略した場合は、デフォルトの照合順序が使用されます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:contains('query', 'e')
true
fn:contains('query', 'ery')
true
fn:contains('query', 'query')
true
fn:contains("Hello", "hel")
false
fn:contains('query', 'x')
false
fn:contains('query', '')
true
fn:contains('query', ())
true
fn:contains( (), 'q')
false

その他の注意事項

default-collation

default-collationの概念は、XQueryの直接関数ではなく、XQuery式、特に文字列比較などの照合順序に敏感な操作を扱う式に影響を与える可能性のある設定またはプロパティです。XQueryは、このデフォルトの照合順序に準拠して、特定の照合順序が指定されていない場合の文字列の並べ替えや比較などの操作を実行します。

構文

fn:default-collation()

戻り値

照合順序が明示的に指定されていないほとんどの操作で使用されるデフォルトの照合順序を返します。クエリプロローグでデフォルトの照合順序が指定されていない場合、この関数はシステムのデフォルトの照合順序を返します。システムのデフォルトの照合順序が定義されていない場合、この関数はUnicodecode point collationを表す値を返します。

次の式は、サンプル値と戻り値を表しています。
fn:default-collation()
この式は以下の戻り値を返します。
http://www.w3.org/2005/
xpath-functions/collation/codepoint
例えば、それがデフォルトの照合順序の名前である場合などです。

ends-with

XQueryのends-with関数は、文字列が指定された部分文字列で終わっているかどうかを判断するために使用します。これは、文字列の操作と検証タスクに役立つ関数です。

構文

fn:ends-with(arg1, arg2, collation)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg1
必須
確認するメインの文字列。これは、$arg2で終わっているかどうかを分析する文字列です。empty-sequence()である場合は、空の文字列として処理されます。
arg2
必須
$arg1の末尾と比較する部分文字列。empty-sequence()である場合は、空の文字列として処理されます。
collation
文字列を比較するときに使用する照合順序を指定するためのURI。照合順序により、文字を比較するためのロケール固有のルールを定義します。このパラメータを省略すると、デフォルトの照合順序が使用されます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:ends-with('query', 'y')
true
fn:ends-with('query', 'query')
true
fn:ends-with('query', '')
true
fn:ends-with('query ', 'y')
false
fn:ends-with('', 'y')
false
fn:ends-with("Hello, World!", "World!")
true
fn:ends-with("Hello, World!", "Hello")
false
fn:ends-with("Frère Jacques", "Jacques", "http://example.com/collation")
"http://example.com/collation"が特定の比較ルールをサポートしていると仮定します。出力は、指定された照合順序がアクセントやその他の機能の処理に影響するかどうかによって異なり、trueが返される可能性があります。

lang

XQueryのlang関数は、ノードの言語属性が、指定された言語に一致するかどうかを判断するために使用します。この関数は、言語属性を使用して多言語コンテンツを管理するXMLドキュメントを照会する場合に特に便利です。

構文

fn:lang(testlang, node)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
testlang
必須
nodexml:lang属性に対してテストを行う言語タグ。これは、通常、"en"、"fr"、"en-US"などの言語タグ付け規則に準拠します。このパラメータは文字列として指定する必要があります。
node
必須
言語属性のテストを行うコンテキストノード。省略した場合は、関数の呼び出し元のコンテキスト項目がデフォルトで使用されます。

戻り値

次の表に、XML構造、クエリ、および戻り値のサンプルを示します。
XML STRUCTURE
QUERY
OUTPUT
<book xml:lang="en">
<title>Hello World</title>
</book>
fn:lang("en", /book/title)
true
<book xml:lang="fr">
<title>Bonjour le Monde</title>
</book
fn:lang("en", /book/title)
false
<article xml:lang="en-US">
<section>
<para>This is a paragraph.</para>
</section>
</article>
fn:lang("en-US")
true
<document>
<content>Some text here.</content>
</document>
fn:lang("en", /document/content)
false

lower-case

XQueryのlower-case関数は、文字列内のすべての文字を小文字に変換するために使用します。この関数は、テキストデータの検索、並べ替え、または正規化など、大文字と小文字を区別しない必要があるタスクを行う場合に便利です。

構文

fn:lower-case(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
小文字に変換される文字列。引数が空のシーケンス(())である場合は、空の文字列として処理されます。

戻り値

入力文字列内のすべての英字が小文字に変換された文字列を返します。数字や句読点など、英字以外の文字は変更されません。

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:lower-case('QUERY')
query
fn:lower-case('Query')
query
fn:lower-case('query')
query
fn:lower-case('QUERY123')
query123
fn:lower-case("Hello World!")
"hello world!"
fn:lower-case("")
""
fn:lower-case("1234!@#$")
"1234!@#$"

matches

XQueryのmatches関数は、文字列が特定の正規表現パターンに一致するかどうかを判断するために使用します。この関数は、パターンの一致とテキスト検証タスクに不可欠です。

構文

fn:matches(input, pattern, flags)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
入力
必須
パターンに対してテストを行う入力文字列。この引数が空のシーケンス(())である場合は、空の文字列として処理されます。
pattern
必須
入力文字列が照合される正規表現パターン。このパターンは、XMLスキーマ定義に準拠した有効な正規表現である必要があります。
flags
オプション
一致する動作を次のように変更するフラグの文字列。
  • - m: 複数行モードでは、行アンカーの先頭と末尾(^と$)が、文字列全体ではなく任意の行の先頭と末尾に一致します。
  • - s: 単一行モード。ここで、ドット(.)行の終端文字を含むすべての文字に一致します。
  • - i: 大文字と小文字を区別しない照合。

戻り値

$inputが、$flagsの値(存在する場合)の影響を受けており、$patternとして指定された正規表現と一致する場合は、trueを返します。それ以外の場合は、falseを返します。

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:matches('query', 'q')
true
fn:matches('query', 'ue')
true
fn:matches('query', '^qu')
true
fn:matches('query', 'qu$')
false
fn:matches('query', 'q.*')
true
fn:matches('query', '[a-z]{5}')
true
fn:matches((), 'q' )
false
fn:matches('query', '[qu')
Error FORX0002
fn:matches("Hello World", "World")
true
fn:matches("Hello World", "^World")
false
fn:matches("Hello World", "hello", "i")
true
fn:matches((), "^$")
true

normalize-space

XQueryのnormalize-space関数は、文字列から先頭と末尾の空白を削除し、文字列内の空白文字のシーケンスをシングルスペースに置き換えます。この関数は、テキストデータのクリーンアップと書式設定を行う場合に便利です。

構文

fn:normalize-space(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
オプション
スペースを正規化する必要がある入力文字列。この引数を省略すると、関数はコンテキスト項目(通常はクエリ内の現在のノードまたは文字列)に対して動作します。引数が空のシーケンス(())である場合は、空の文字列として処理されます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:normalize-space('query')
query
fn:normalize-space(' query ')
query
fn:normalize-space('xml query')
xml query
fn:normalize-space('xml query')
xml query
fn:normalize-space('xml
query')
xml query
fn:normalize-space('')
長さがゼロの文字列
fn:normalize-space(' ')
長さがゼロの文字列
fn:normalize-space(())
長さがゼロの文字列
fn:normalize-space(
<element> query </element>)
query
fn:normalize-space("CleanString")
CleanString
fn:normalize-space("Line1\n\tLine2\t Line3")
Line1\\n\\tLine2\\t Line3

normalize-unicode

XQueryのnormalize-unicode関数はUnicodeの正規化を実行します。これにより、文字表現の細かな違いに関係なくテキストを比較できるようになります。この関数は、特定の文字を同等の表現に置き換えます。次に、正規化された2つの値を比較して、それらの値が同じであるかどうかを判断することができます。Unicodeの正規化は、文字列を適切に並べ替える場合にも役立ちます。
$normalizationForm引数によって、使用される正規化形式が制御され、これにより、置換される文字も制御されます。

構文

fn:normalize-unicode(arg, normalizationForm)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
正規化される入力文字列。この引数が空のシーケンス(())である場合は、空の文字列として処理されます。
normalizationForm
オプション
適用するUnicode正規化形式。Unicode標準に従って、次のような形式が許可されます。
  • - "NFC": 正規合成
  • - "NFD": 正規分解
  • - "NFKC": 互換合成
  • - "NFKD": 互換分解
省略した場合は、"NFC"がデフォルトの形式として使用されます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:normalize-unicode('query')
query
fn:normalize-unicode('query', '')
query
fn:normalize-unicode('£', 'NFKC')
£
&#xFFE1;を&#xA3;に変換します。
fn:normalize-unicode('leçon', 'NFKD')
leçon
le&#231;onをlec&#807;onに変換します。出力には2つの文字(1つは「c」、もう1つは「セディーユ(¸)」)が返されますが、ブラウザでは個別に表示されない場合があります。
fn:normalize-unicode('15 ㎗')
15 ㎗
fn:normalize-unicode('15 ㎗', 'NFKC')
15 dl
&#x3397;を文字'dl'に変換します。

置換

XQueryのreplace関数は、指定された正規表現に一致する文字列の部分を置換文字列に置き換えるために使用します。この関数は、テキストのサニタイズ、書式設定、トランスフォーメーションなどの文字列操作タスクを行う場合に非常に便利です。

構文

fn:replace(input, pattern, replacement, flags)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
入力
必須
処理する入力文字列。この引数が空のシーケンス(())である場合は、空の文字列として処理されます。
pattern
必須
入力文字列のどの部分を置き換えるかを指定するための正規表現パターン。パターンは有効な正規表現である必要があります。
replacement
必須
正規表現パターンに一致する入力文字列のそれぞれの部分文字列を置き換える文字列。$1などの特殊な置換文字列を使用して、パターン内のキャプチャされたグループを参照することができます。
flags
正規表現の動作を次のように変更するフラグの文字列:
  • - s: 単一行モード。ここで、ドット(.)は改行を含むすべての文字と一致します。
  • - m: 複数行モード。ここで、start ^およびend $アンカーは、任意の行の開始と終了に一致します。
  • - i: 大文字と小文字が区別されないモード。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:replace('query', 'r', 'as')
queasy
fn:replace('query', 'qu', 'quack')
quackery
fn:replace('query', '[ry]', 'l')
quell
fn:replace('query', '[ry]+', 'l')
quel
fn:replace('query', 'z', 'a')
query
fn:replace('query', 'query', '')
長さがゼロの文字列
fn:replace( (), 'r', 'as')
長さがゼロの文字列
fn:replace('query', 'r?', 'as')
Error FORX0003
fn:replace('query', '(r', 'as')
Error FORX0002
fn:replace('Chapter', '(Chap)|(Chapter)', 'x')
xter
次の例に、リラクタント量指定子と通常の量指定子の違いを示します。
SAMPLE FUNCTION
OUTPUT
fn:replace('reluctant', 'r.*t', 'X')
X
fn:replace('reluctant', 'r.*?t', 'X')
Xant
fn:replace('aaah', 'a{2,3}', 'X')
Xh
fn:replace('aaah', 'a{2,3}?', 'X')
Xah
fn:replace('aaaah', 'a{2,3}', 'X')
Xah
fn:replace('aaaah', 'a{2,3}?', 'X')
XXh
次の例に、サブ式の使用方法を示します。
SAMPLE FUNCTION
OUTPUT
fn:replace('Chap 2...Chap 3...Chap 4...',
'Chap (\d)', 'Sec $1.0')
Sec 2.0...Sec 3.0...Sec 4.0...
fn:replace('abc123', '([a-z])', '$1x')
axbxcx123
fn:replace('2315551212',
'(\d{3})(\d{3})(\d{4})', '($1) $2-$3')
(231) 555-1212
fn:replace('2006-10-18',
'\d{2}(\d{2})-(\d{2})-(\d{2})',
'$2/$3/$1')
10/18/06
fn:replace('25', '(\d+)', '\$$1.00')
$25.00

starts-with

XQueryのstarts-with関数は、文字列が指定された部分文字列で始まっているかどうかを判断するために使用します。この関数は、文字列の検証とプレフィックスの一致タスクを行う場合に特に便利です。

構文

fn:starts-with(arg1, arg2, collation)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg1
必須
確認するメインの文字列。これは、$arg2で始まっているかどうかを判断する文字列です。空のシーケンス(())である場合は、空の文字列として処理されます。
arg2
必須
$arg1の先頭で確認する部分文字列。この引数が空のシーケンスである場合は、空の文字列として処理されます。
collation
オプション
文字列比較に使用する照合順序を指定するためのURI。照合順序は、文字列内の文字を比較するための一連のルールです。このパラメータを省略すると、デフォルトの照合順序が使用されます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:starts-with('query', 'que')
true
fn:starts-with('query', 'query')
true
fn:starts-with('query', 'u')
false
fn:starts-with('query', '')
true
fn:starts-with('', 'query')
false
fn:starts-with('', '')
true
fn:starts-with('query', ())
true
fn:starts-with(' query', 'q')
false
fn:starts-with("Query", "que")
false

string-join

XQueryのstring-join関数は、文字列のシーケンスを1つの文字列に連結し、それぞれの間に指定された区切り文字を付けるために使用します。この関数は、書式設定された出力に文字列を結合する場合に特に便利です。

構文

fn:string-join(arg1, arg2)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg1
必須
結合する文字列のシーケンス。シーケンス内のそれぞれの項目は、表示される順序で結合されます。シーケンスが空である場合、関数は空の文字列を返します。
arg2
必須
シーケンス内の隣接する項目間に挿入する文字列。この区切り記号は、シーケンス内の文字列のそれぞれのペアの間に追加されます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:string-join( ('a', 'b', 'c'), '')
abc
fn:string-join( ('a', 'b', 'c'), '/*')
a/*b/*c
fn:string-join( ('a', '', 'c'), '/*')
a/*/*c
fn:string-join( 'a', '/*')
a
fn:string-join((), '/*')
長さがゼロの文字列
fn:string-join(("Line1", "Line2", "Line3"), "\n")
"Line1
Line2
Line3"

string-length

XQueryのstring-length関数は、先頭と末尾の空白文字を含む、特定の文字列内の文字数を判断するために使用します。この関数は、文字列のサイズが関係する、文字列の検証または操作が必要なタスクを行う場合に特に便利です。

構文

fn:string-length(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
オプション
長さを判断する入力文字列。この引数を省略すると、関数はデフォルトでコンテキスト項目を使用します。コンテキスト項目が文字列でない場合は、タイプエラーが発生します。引数が空のシーケンス(())である場合は、空の文字列として処理されます。

戻り値

$argの値の文字の長さと等しい整数を返します。空の文字列または空のシーケンスである場合は、0を返します。

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:string-length('query')
5
fn:string-length(' query ')
9
fn:string-length(normalize-space(' query '))
5
fn:string-length('xml query')
9
fn:string-length('')
0
fn:string-length(())
0
fn:string-length("Hello, World!")
13
fn:string-length(" \t")
4

string-to-codepoints

XQueryのstring-to-codepoints関数は、文字列を一連のUnicodeコードポイントに変換するために使用します。この関数は、文字列内に埋め込まれた個々の文字を基本的なエンコードレベルで分析および操作する方法を提供します。

構文

fn:string-to-codepoints(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
Unicodeコードポイントに変換される入力文字列。引数が空のシーケンス(())である場合は、空の文字列として処理されます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:string-to-codepoints('abc')
(97, 98, 99)
fn:string-to-codepoints('a')
97
fn:string-to-codepoints('')
()
fn:string-to-codepoints("Hello World")
(72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100)

substring

XQueryのsubstring関数は、指定された開始パラメータとオプションの長さパラメータに基づいて文字列の一部を抽出します。この関数は、文字列の特定の部分を分離して処理する必要がある文字列操作タスクを行う場合に便利です。

構文

fn:substring(sourceString, startingLoc, length)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
sourceString
必須
部分文字列が抽出される文字列。引数が空のシーケンス(())である場合は、空の文字列として処理されます。
startingLoc
必須
ソース文字列内の部分文字列が始まる位置。位置インデックスは1から始まります。この数値が1未満である場合、最初の文字からの開始と見なされます。
length
オプション
部分文字列に含める文字数。省略した場合、部分文字列はソース文字列の末尾までと見なされます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:substring('query', 1)
query
fn:substring('query', 3)
ery
fn:substring('query', 1, 1)
q
fn:substring('query', 2, 3)
uer
fn:substring('query', 2, 850)
uery
fn:substring('query', 6, 2)
長さがゼロの文字列
fn:substring('query', -2)
query
fn:substring('query', -2, 5)
qu
fn:substring('query', 1, 0)
長さがゼロの文字列
fn:substring('', 1)
長さがゼロの文字列
fn:substring((), 1)
長さがゼロの文字列
fn:substring("Example", 0)
"Example"
fn:substring("Short", 10)
""

substring-after

XQueryのsubstring-after関数は、指定された部分文字列に続く文字列の部分を返します。この関数は、特定の文字列内の特定の文字またはシーケンスの後に表示されるテキストを抽出する場合に便利です。

構文

fn:substring-after(arg1, arg2, collation)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg1
必須
部分文字列の抽出元となる入力文字列。引数が空のシーケンス(())である場合は、空の文字列として処理されます。
arg2
必須
$arg1内で検索する部分文字列。この関数は、$arg2の最初のオカレンスに続く$arg1の部分を返します。$arg2が空のシーケンスである場合は、空の文字列として処理されます。
collation
必須
文字列を比較するために使用する照合順序

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:substring-after('query', 'u')
ery
fn:substring-after('queryquery', 'ue')
ryquery
fn:substring-after('query', 'y')
長さがゼロの文字列
fn:substring-after('query', 'x')
長さがゼロの文字列
fn:substring-after('query', '')
query
fn:substring-after('', 'x')
長さがゼロの文字列
fn:substring-after("Hello, World!", ", ")
"World!"

substring-before

XQueryのsubstring-before関数は、指定された部分文字列の前に表示される文字列の部分を返します。この関数は、特定の文字列内の特定の文字またはシーケンスの前に出現するテキストを抽出する場合に便利です。

構文

fn:substring-before(arg1, arg2, collation)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg1
必須
部分文字列の抽出元となる入力文字列。この引数が空のシーケンス(())である場合は、空の文字列として処理されます。
arg2
必須
$arg1内で検索する部分文字列。この関数は、$arg2が最初に出現する前に出現する$arg1の部分を返します。$arg2が空のシーケンスである場合は、空の文字列として処理されます。
collation
必須
文字列を比較するために使用する照合順序

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:substring-before('query', 'r')
que
fn:substring-before('query', 'ery')
qu
fn:substring-before('queryquery', 'ery')
qu
fn:substring-before('query', 'query')
長さがゼロの文字列
fn:substring-before('query', 'x')
長さがゼロの文字列
fn:substring-before('query', '')
長さがゼロの文字列
fn:substring-before('query', ())
長さがゼロの文字列
fn:substring-before("Hello, World!", ", ")
"Hello"
fn:substring-before("repeat", "repeat")
""
fn:substring-before("XQuery", "SQL")
""

tokenize

XQueryのtokenize関数は、区切り文字として機能する指定された正規表現パターンに基づいて、文字列を部分文字列のシーケンスに分割するために使用します。この関数は、さらに処理を行うために文字列のコンポーネントを解析および分離する場合に特に便利です。

構文

fn:tokenize(input, pattern, flags)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
入力
必須
トークン化される入力文字列。この引数が空のシーケンス(())である場合は、空の文字列として処理されます。
pattern
必須
入力文字列を分割する区切り文字を指定する正規表現パターン。このパターンは、XMLスキーマ定義に準拠した有効な正規表現である必要があります。
flags
オプション
正規表現の動作を次のように変更するフラグの文字列:
  • - s: 単一行モード。ここで、ドット(.)は改行を含むすべての文字と一致します。
  • - m: 複数行モード。ここで、start ^およびend $アンカーは、任意の行の開始と終了に一致します。
  • - i: 大文字と小文字が区別されないモード。

戻り値

$patternで指定された区切り文字で$input文字列をパーティション化して取得した文字列のシーケンスを返します。入力文字列が空である場合、またはパターンが一致する文字列を見つけられない場合は、必要に応じて空のシーケンスまたは入力文字列全体が返されます。

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:tokenize(
'a b c', '\s')
('a', 'b', 'c')
fn:tokenize(
'a b c', '\s')
('a', '', '', 'b', 'c')
fn:tokenize(
'a b c', '\s+')
('a', 'b', 'c')
fn:tokenize(
' b c', '\s')
('', 'b', 'c')
fn:tokenize(
'a,b,c', ',')
('a', 'b', 'c')
fn:tokenize(
'a,b,,c', ',')
('a', 'b', '', 'c')
fn:tokenize(
'a, b, c', '[,\s]+')
('a', 'b', 'c')
fn:tokenize(
'2006-12-25T12:15:00', '[\-T:]')
('2006', '12', '25',
'12', '15', '00')
fn:tokenize(
'Hello, there.', '\W+')
('Hello', 'there', '')
fn:tokenize(
(), '\s+')
()
fn:tokenize(
'abc', '\s')
abc
fn:tokenize(
'abcd', 'b?')
Error FORX0003
fn:tokenize(
'a,xb,xc', ',|,x')
('a', 'xb', 'xc')
fn:tokenize("", ",")
()

translate

XQueryのtranslate関数は、ソース文字からターゲット文字への指定されたマッピングに基づいて、文字列内の文字を置き換えるために使用します。この関数は、文字列内の単純な文字の置換と削除を行う場合に便利です。

構文

fn:translate(arg, mapString, transString)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
文字置換を行う入力文字列。この引数が空のシーケンス(())である場合は、空の文字列として処理されます。
mapString
必須
置換する文字を含む文字列。mapString内のそれぞれの文字は、transString内の対応する文字にマッピングされます。
transString
必須
置換文字を含む文字列。mapString内のそれぞれの文字は、transString内の対応する位置の文字に置き換えられます。transStringmapStringよりも短い場合、対応する置換値がない文字は入力から削除されます。

戻り値

入力$src内のそれぞれの文字が$mapString$transStringで定義されたマッピングに従って置き換えられた文字列を返します。$mapStringにない$srcの文字は変更されません。置換によって文字が削除された場合、それらの文字は削除されます。

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:translate('1999/01/02', '/', '-')
1999-01-02
fn:translate('xml query', 'qlmx', 'QLMX')
XML Query
fn:translate('xml query', 'qlmx ', 'Q')
Query
fn:translate('xml query', 'qlmx ', '')
uery
fn:translate('xml query', 'abcd', 'ABCD')
xml query
fn:translate('', 'qlmx ', 'Q')
zero-length string
fn:translate((), 'qlmx ', 'Q')
zero-length string
fn:translate("hello world", "hod", "jrx")
"jellr wxrlr"
fn:translate("12345", "9", "0")
"12345"

upper-case

XQueryのupper-case関数は、Unicode標準に従って、特定の文字列内のすべての文字を大文字に変換します。この関数は、比較または表示の目的でテキストを正規化する場合に役立ちます。

構文

fn:upper-case(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
文字を大文字に変換する入力文字列。この引数が空のシーケンス(())である場合は、空の文字列として処理されます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:upper-case('query')
QUERY
fn:upper-case('QUERY')
QUERY
fn:upper-case('Query')
QUERY
fn:upper-case('query-123')
QUERY-123
fn:upper-case("123abc!@#")
"123ABC!@#"
fn:upper-case("")
""

XMLドキュメント、URI、ID

次の関数は、式エディタの[XMLドキュメント、URI、ID]セクションで使用できます。

base-uri

XQueryのbase-uri関数は、指定されたノードのベースURIを返します。ベースURIは、通常、ドキュメント内の相対URIを解決する基準となるURIです。

構文

fn:base-uri(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
オプション
ベースURIを取得するノード。省略した場合または空の場合は、コンテキスト項目が使用されます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:base-uri()(コンテキスト項目がベースURIを持つノードの場合)
"http://example.com/doc.xml"
fn:base-uri(/root)
"http://example.com/doc.xml"
fn:base-uri(())
()
fn:base-uri()(コンテキスト項目がない場合)
エラー

追加情報

collection

XQueryのcollection関数は、URIで特定されるコレクションからノードのシーケンスを返します。一般にXQueryまたはXMLデータベース環境などの、コレクションに保存されている一連のXMLドキュメントや項目にアクセスするために使用されます。

構文

fn:collection(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
オプション
取得するコレクションを特定するURI。省略した場合または空の場合は、静的コンテキストのデフォルトコレクションが返されます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:collection("http://example.com/myCollection")
コレクションからのノードのシーケンス
fn:collection()
デフォルトコレクションからのノードのシーケンス
fn:collection("")
空のシーケンス
fn:collection("nonexistent")
空のシーケンス

追加情報

doc

XQueryのdoc関数は、URIで特定される単一のXMLドキュメントノードを取得します。一般的に、これは、クエリを実行するために指定したURIからXQuery式にXMLドキュメントをロードするために使用されます。

構文

fn:doc(uri)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
uri
必須
取得するXMLドキュメントを特定するURI。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:doc("http://example.com/sample.xml")
指定したXMLのドキュメントノード
fn:doc("")
空のシーケンス
fn:doc("nonexistent.xml")
空のシーケンス

追加情報

doc-available

XQueryのdoc-available関数は、指定したURIによって特定されるドキュメントが使用可能であり、エラーなく取得できるかどうかをチェックします。

構文

fn:doc-available(uri)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
uri
必須
チェックするXMLドキュメントを特定するURI。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:doc-available("http://example.com/sample.xml")
true
fn:doc-available("nonexistent.xml")
false
fn:doc-available("")
false

追加情報

document-uri

XQueryのdocument-uri関数は、指定したドキュメントノードに関連付けられているドキュメントURIを返します。これは、ノードの発生元であるドキュメントのURIを特定するのに役立ちます。

構文

fn:document-uri(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
ドキュメントURIを取得する対象のドキュメントノード。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:document-uri(fn:doc("http://example.com/sample.xml"))
"http://example.com/sample.xml"
fn:document-uri(())
()
fn:document-uri(<root/>)
()

追加情報

encode-for-uri

XQueryのencode-for-uri関数は、入力文字列内にURIコンポーネントで許可されていない文字がある場合に、その文字をRFC 3986に従ってパーセントエンコードした文字列を返します。これはURLエンコードに似ていますが、URIコンポーネント用に調整されています。

構文

fn:encode-for-uri(uri-part)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
uri-part
必須
URIコンポーネントとして使用するためにエンコードする文字列。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:encode-for-uri("a b+c/d")
"a%20b%2Bc%2Fd"
fn:encode-for-uri("name@example.com")
"name%40example.com"
fn:encode-for-uri("")
""

追加情報

escape-html-uri

XQueryのescape-html-uri関数は、HTMLにおいて特別な意味を持つ文字(&<>"'など)対応するパーセントエンコードでエスケープすることによって、HTML URI内で安全に使用できる文字列を返します。これにより、マークアップを壊すことなく、URIをHTML属性に安全に埋め込むことができます。

構文

fn:escape-html-uri(uri)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
uri
必須
HTMLで使用できるようにエスケープする必要があるURI文字列。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:escape-html-uri("foo<>\")
"foo%3C%3E%22"
fn:escape-html-uri("")
""

追加情報

id

XQueryのid関数は、指定したID値と一致する一意のIDを持つ要素ノードのシーケンスを返します。要素のID属性の値に基づいて要素を取得します。一般に、この属性はxml:idまたはDTD ID属性で定義された要素を参照するために使用されます。

構文

fn:id(arg, node)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
一致する要素を見つける対象となる1つ以上のID値(スペース区切りのトークン)。
node
オプション
IDを解決するためのコンテキストを提供するノード。省略した場合、デフォルトはコンテキスト項目のルートノードになります。

戻り値

追加情報

idref

XQueryのidref関数は、$argで指定された1つ以上のID値と一致するIDREF値を持つ要素または属性ノードのシーケンスを返します。

構文

fn:idref(arg, node)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
必須
参照要素を検索するための、1つ以上のIDREF値(スペース区切りのトークン)。
node
オプション
IDREFを解決するためのコンテキストを提供するノード。省略した場合、デフォルトはコンテキスト項目のルートノードになります。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:idref("item1", /root)
/rootの下にあるID「item1」を参照する要素。
fn:idref(("item1", "item2"))
「item1」または「item2」を参照する要素のシーケンス。
fn:idref("nonexistent")
()
fn:idref("item1")(コンテキストノードは省略)
コンテキストルートノードに対して「item1」を参照する要素。

追加情報

iri-to-uri

XQueryのiri-to-uri関数は、RFC 3986に従ってURIで許可されていない文字をエスケープすることにより、国際化リソース識別子(IRI)を統一リソース識別子(URI)に変換します。このプロセスには、ASCII範囲外の文字や特定の予約文字のパーセントエンコードが含まれます。

構文

fn:iri-to-uri(iri)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
iri
必須
URIに変換する対象のIRI文字列。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:iri-to-uri("http://example.com/ümlaut")
"http://example.com/%C3%BCmlaut"
fn:iri-to-uri("https://example.com/space here")
"https://example.com/space%20here"
fn:iri-to-uri("foo://bar.com/παράδειγμα")
"foo://bar.com/%CF%80%CE%B1%CF%81%CE%AC%CE%B4%CE%B5%CE%B9%CE%B3%CE%BC%CE%B1"

追加情報

resolve-uri

XQueryのresolve-uri関数は、指定した相対URIをベースURIに対して解決し、絶対URIを生成します。最初の引数がすでに絶対URIである場合は、それを直接返します。これは、相対パスとベースの場所を組み合わせる場合に便利です。

構文

fn:resolve-uri(relative, base)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
相対
必須
解決する対象の相対URI。絶対URIの場合、変更されずにそのまま返されます。
ベース
オプション
相対URIを解決する基準となるベースURI。省略した場合、静的コンテキストのベースURIまたは空のシーケンスが使用されます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:resolve-uri("page.html", "http://example.com/folder/")
"http://example.com/folder/page.html"
fn:resolve-uri("", "http://example.com")
()
fn:resolve-uri("../image.png", "http://example.com/folder/page.html")
"http://example.com/image.png"

追加情報

static-base-uri

XQueryのstatic-base-uri関数は、呼び出されたクエリまたはモジュールの静的ベースURIを返します。これは、静的に割り当てられたベースURIであり、多くの場合はクエリファイルまたはモジュールの場所です。クエリ内の相対URIを解決するためのデフォルトのベースとして使用されます。

構文

fn:static-base-uri()

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:static-base-uri()
"http://example.com/queries/myquery.xq"
fn:static-base-uri()(静的ベースURIがない環境の場合)
()

追加情報

XML名前空間と名前

次の関数は、式エディタの[XML名前空間と名前]セクションで使用できます。

QName

XQueryのQName関数は、名前空間URIとローカル部分(ローカル名)からQName(修飾名)を構築します。これは、XQueryでQName値を動的に作成するために使用されます。

構文

fn:QName(paramURI, paramQName)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
paramURI
オプション
QNameの名前空間URI部分。名前空間が不要な場合は、空または""にすることができます。
paramQName
必須
QNameのローカル部分(ローカル名)。コロンが使用されていない有効な名前(NCName)である必要があります。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:QName("http://example.com/ns", "name")
QName("{http://example.com/ns}name")
fn:QName("", "name")
QName("name")
fn:QName((), "name")
QName("name")
fn:QName("http://example.com/ns", "1invalid")
エラー

追加情報

in-scope-prefixes

in-scope-prefixes関数は、指定した要素ノードのスコープ内にある名前空間プレフィックスのシーケンスを返します。これは、その要素とそのサブ要素に使用できる名前空間プレフィックスを特定するのに役立ちます。

構文

fn:in-scope-prefixes(element)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
要素
必須
スコープ内プレフィックスを返す対象の要素ノード。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:in-scope-prefixes(<a xmlns="http://ns1" xmlns:x="http://ns2"/>)
("", "x")
fn:in-scope-prefixes(())
検証エラーです。in-scope-prefixes関数の最初の引数として空のシーケンスを渡すことは許可されていません。

追加情報

local-name

XQueryのlocal-name関数は、入力として提供されたノードの拡張QNameのローカル部分(ローカル名)を返します。これでは、名前空間プレフィックスと名前空間URIは除外されます。

構文

fn:local-name(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
オプション
ローカル名を抽出する対象のノード。省略した場合または空の場合は、コンテキスト項目が使用されます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:local-name(<a:book xmlns:a="http://example.com"/> )
"book"
fn:local-name(text{"Hello"})
""
fn:local-name(())
""
fn:local-name()(スコープ内のコンテキストノードが<ex:item>の場合)
"item"

追加情報

local-name-from-QName

XQueryのlocal-name-from-QName関数は、QName値のローカル部分を返します。指定したxs:QNameから名前空間プレフィックスまたはURIのないローカル名のみを抽出します。

構文

fn:local-name-from-QName(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
オプション
ローカル名を抽出する対象のQName。空または省略されている場合は、空のシーケンスを返します。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:local-name-from-QName(QName("", "bar"))
"bar"
fn:local-name-from-QName(())
()

追加情報

name

XQueryのname関数は、ノードのQName値を文字列として返します。この値は、プレフィックス(存在する場合)を含めた要素名または属性名を表します。文字列形式のノード名を返します。

構文

fn:name(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
オプション
名前を返す対象のノード。省略すると、コンテキスト項目が使用されます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:name(<a:book xmlns:a="http://example.com"/> )
"a:book"
fn:name(text{"Hello"})
""
fn:name(())
""
fn:name()(スコープ内のコンテキストノードが<ex:item>の場合)
"ex:item"

追加情報

namespace-uri

XQueryのnamespace-uri関数は、指定したノードの拡張QNameの名前空間URIを返します。これは、要素または属性に関連付けられている名前空間部分を取得するのに役立ちます。

構文

fn:namespace-uri(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
オプション
名前空間URIを取得する対象のノード。省略すると、コンテキスト項目が使用されます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:namespace-uri(<a:book xmlns:a="http://example.com"/>)
"http://example.com"
fn:namespace-uri(document{<root/>})
""
fn:namespace-uri(text{"Hello"})
""
fn:namespace-uri(())
""

追加情報

namespace-uri-for-prefix

XQueryのnamespace-uri-for-prefix関数は、指定した要素ノードのコンテキストで特定のプレフィックスにバインドされている名前空間URIを返します。これは、XMLを処理するときにプレフィックスが対応する名前空間を判別するのに役立ちます。

構文

fn:namespace-uri-for-prefix(prefix, element)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
接頭語
必須
解決する対象の名前空間プレフィックス。デフォルトの名前空間の場合は""(空の文字列)を使用します。
要素
オプション
プレフィックスの解決に使用する名前空間コンテキストを持つ要素ノード。省略すると、静的コンテキストが使用されます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:namespace-uri-for-prefix("ex", <a xmlns:ex="http://example.com"/> )
"http://example.com"
fn:namespace-uri-for-prefix("", <a xmlns="http://default.com"/> )
"http://default.com"
fn:namespace-uri-for-prefix("unknown", <a/>)
()
fn:namespace-uri-for-prefix("a")(コンテキスト項目が<a xmlns:a="http://a.com"/>の場合)
"http://a.com"

追加情報

namespace-uri-from-QName

XQueryのnamespace-uri-from-QName関数は、指定したQName値の名前空間URI部分を返します。これにより、xs:QNameから名前空間URIコンポーネントを抽出できます。

構文

fn:namespace-uri-from-QName(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
オプション
名前空間URIを抽出する対象のQName。$argが空または省略されている場合は、空のシーケンスを返します。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:namespace-uri-from-QName(QName("", "bar"))
""(空の文字列)
fn:namespace-uri-from-QName(())
()

追加情報

node-name

XQueryのnode-name関数は、ノードのQNameを返します。これには、名前空間プレフィックスとローカル名がxs:QName値として含まれています。これは、要素ノードまたは属性ノードの修飾名を取得するために使用されます。

構文

fn:node-name(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
オプション
QNameを返す対象のノード。省略すると、コンテキスト項目が使用されます。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:node-name(<a:book xmlns:a="http://example.com"/>)
QName("{http://example.com}book")
fn:node-name(text{"Hello"})
()
fn:node-name(())
()
fn:node-name()(コンテキストノードが<ex:item/>の場合)
コンテキストノードに対応するQName

追加情報

prefix-from-QName

XQueryのprefix-from-QName関数は、指定したQName値の名前空間プレフィックス部分を返します。QNameにプレフィックスがない場合、関数は空のシーケンスを返します。

構文

fn:prefix-from-QName(arg)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
arg
オプション
プレフィックスを抽出する対象のQName。入力が空または省略されている場合は、空のシーケンスを返します。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:prefix-from-QName(QName("", "bar"))
()
fn:prefix-from-QName(())
()

追加情報

resolve-QName

XQueryのresolve-QName関数は、QName文字列を受け取り、指定した要素ノードのスコープ内名前空間を使用してxs:QName値に解決します。基本的に、文字列形式のQNameを、要素の名前空間コンテキストに基づいて実際のQNameにマッピングします。

構文

fn:resolve-QName(qname, element)
以下の表に、このコマンドの引数を示します。
引数
必須/オプション
説明
qname
必須
解決する対象のQNameを表す文字列で、プレフィックスが含まれる場合があります。例えば、"ex:tag"などです。
要素
必須
QName文字列のプレフィックスを解決するための名前空間コンテキストを提供する要素ノード。

戻り値

次の表に、一部のサンプル値と戻り値を示します。
SAMPLE FUNCTION
OUTPUT
fn:resolve-QName("ex:foo", <a xmlns:ex="http://example.com"/>)
QName("{http://example.com}foo")
fn:resolve-QName("bar", <a xmlns="http://default.com"/> )
QName("{http://default.com}bar")
fn:resolve-QName("ns:tag", <a/>)
エラー

追加情報

XMLノード関数

式エディタの[XMLノード]セクションでは、次のようなXML関数を使用できます。

data

ノードの原子値。
fn:data関数は、項目のシーケンスを入力とし、原子値のシーケンスを返します。

構文

fn:data(arg)
以下の表に、の引数を示します。
引数
必須/
オプション
説明
arg
必須
型指定された値が返される項目。

戻り値

原子値の場合は、変更されていない値を返します。ノードの場合は、ノードの型指定された値を抽出します。

次の式は、結果として123, 456を返します。
fn:data((123, 456))
次のような変数定義があるとします。
let $x := <hello>Hello
let $x := <hello>Hello
<world>World</world>
</hello>
fn:data($x)は、次の結果を返します。
Hello World

deep-equal

2つのノードが同じコンテンツと属性を持つかどうかを評価します。
deep-equalになるには、それらが対でdeep-equalな項目を含む必要があります。また、2項目がdeep-equalになるには、それらが等しいと見なされる原子値であるか、または同じ種類で同じ名前、かつその子がdeep-equalであるノードである必要があります。$collation引数は、名前を比較するときではなく、文字列を比較するときに再帰の全レベルにおいて使用されている照合を特定します。

構文

fn:deep-equal(parameter1, parameter2, collation)
次の表に、引数を示します。
引数
必須/
オプション
説明
parameter1
必須
比較する最初のシーケンス。
parameter2
必須
比較する2番目のシーケンス。
collation
オプション
文字列の比較に使用する照合順序。collation引数は、名前を比較するときではなく、文字列を比較するときに再帰の全レベルにおいて使用されている照合を特定します。

戻り値

$parameter1および$parameter2のシーケンスに同じ値が同じ順序で含まれている場合にtrueを返します。
原子値は、eq演算子を使用して、型指定された値に基づいて比較されます。2つの原子値を比較できない場合(例えば、1つが数値で、もう1つが文字列である場合)、この関数は、エラーではなくfalseを返します。

次の式は、結果としてtrueを返します。
fn:deep-equal (1, 1)
次の式は、結果としてfalseを返します。
fn:deep-equal ((1,2), (2,1))
次の式は、結果としてfalseを返します。
fn:deep-equal (123, John)

root

引数を含むツリーのルートを返します。

構文

fn:root(arg)
以下の表に、の引数を示します。
引数
必須/
オプション
説明
arg
必須
ルートノードが返されるノード。

戻り値

$argノードがドキュメントの一部である場合、fn:root関数はドキュメントノードを返します。ただし$argノードがドキュメントの一部でない場合は、要素を返します。
$argが空のシーケンスである場合は、空のシーケンスが返されます。
関数が引数なしで呼び出された場合は、コンテキスト項目がデフォルトの引数として使用されます。コンテキスト項目が未定義であるか、ノードではない場合は、エラーが発生します。

次のような変数定義があるとします。
let $in-xml := <a><x>123</x></a>
root($in-xml/x)は、次の結果を返します。
<a>
<x>123</x>
</a>

関数と変数の指定

サービスコネクタを構成するには、バインディング、出力フィールド、その他のプロパティを定義するための変数と関数を指定する必要があります。

ビルトイン変数

これらの変数は、XQuery式を使用してサービスコネクタで参照できます。
変数
変数型
説明
$VariableName
すべての接続プロパティ
プロパティ、入力、その他のパラメータは、この形式を使用して指定できます。
$ResponseStatusCode
出力フィールドマッピング
HTTP応答コード。
$ResponseHeaders
出力フィールドマッピング
各項目が次のとおりの要素リスト内にHTTP応答ヘッダーが格納されます。
<header name="Content-Type">text/plain</header>
以下に例を示します。
$ResponseHeaders[@name = "Content-Type"]/text()
$RESTResponse
出力フィールドマッピング
ヘッダーとコードを含むRESTResponse XMLデータが格納されます。サービスコネクタのテスト結果内に表示されます。

出力フィールドマッピング関数

サービスコネクタでバインディングを定義するときは、式エディタで多くの関数を使用できます。
使用可能なすべての機能については、関数の使用および式エディタの使用を参照してください。
次の表に、サービスコネクタの出力フィールドのマッピングで使用できる関数を示します。
機能
構文
説明
responseHeaderExists
svc:responseHeaderExists($ResponseHeaders, headerName ) : boolean
ヘッダーパラメータが応答内にあるかどうかを示すBoolean値を返します。
getResponseHeader
svc:getResponseHeader( $ResponseHeaders, headerName, defaultValue ) : string
svc:getResponseHeader( $ResponseHeaders, headerName ): string
応答ヘッダー値を返します。ヘッダーパラメータが定義されていない場合、この関数は、オプションのデフォルト値を返します。
getResponseHeaderNames
svc:getResponseHeaderNames( $ResponseHeaders ) : list of strings
応答ヘッダー内のすべてパラメータの名前を格納したリストを返します。

デジタル署名関数の概要

デジタル署名関数は、Process Designerに対して使用できます。XQueryを使用して、コンテンツの署名を処理するプロセスおよびサービスコネクタを作成できます。サポート対象の関数は次のいずれかです。
署名付きデジタルコンテンツのよくある用途の1つは、サービスコネクタ内でのAPI認証を可能にすることです。これにより、文字列ベースのコンテンツに対してハッシュと関連関数を使用できます。例えば、署名付きヘッダーをペイロードの一部として使用する必要がある場合があります。
各関数の詳細については、関数の使用を参照してください。
注:
現在、署名付きコンテンツの検証またはバイナリコンテンツに署名するためにサポートされている関数はありません。

HMAC

HMAC署名方法は、次のサービスを含む多くのサービスで使用されます。
Process Designerは、HMAC SHA1、HMAC SHA256、HMAC SHA512をBase64、Hex、Hex64、Base64Urlのいずれかのエンコードでサポートしています。例えば、AWS用のコンテンツに署名するために、これらのいずれかの関数を使用できます。

AWS認証

AWS REST APIには、次の形式で認証ヘッダーが必要です。
Authorization: AWS AWSAccessKeyId:Signature
ここで、
Signature = dsig:hmacSHA1signature($strToSign, "AwsSecretKeyId")
AWSAccessKeyおよびAwsSecretKeyIdは、AWSによって生成され、AWS開発者コンソールを介してアクセスできます。
注:
$strToSignはHTTPヘッダー値とその他のパラメータの組み合わせです。
AWSのためのREST認証の詳細については、 http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.htmlを参照してください。

非対称プライベートキーベースの署名

次のプライベートキーの方法がサポートされています。
注:
プライベートキーを使用してコンテンツに署名する場合、キーストアファイルはSecure Agentにあり、プロセスまたはサービスコネクタは、そのキーにアクセスするために、Secure Agent上で実行されている必要があります。そのキーへのファイルパスが、オブジェクトプロパティに指定されている必要があります(C:/certs/mykey.p12など)。
次の構成にすることもできます。

PKCS8キーファイル

PKCS8キーファイルを使用して署名するには、この関数を使用します。
dsig:signWithKeyFile( $messageToSign as xs:string, $pathToKey as xs:string, $encryptionAlgorithm as xs:string, $digestAlgorithm as xs:string ) as xs:string
キーファイルはバイナリまたはBase64エンコード形式にできます。
P12およびキーストアベースのファイル
P12またはキーストアベースのファイルを使用して署名するには、この関数を使用します。
dsig:signWithCertificate( $messageToSign as xs:string, $pathToCertificate as xs:string, $keyRecoveryPassword as xs:string, $encryptionAlgorithm as xs:string, $digestAlgorithm as xs:string ) as xs:string
例えば、サービスアカウントに対してこのGoogle JWT(JSON Webトークン)認証用の方法を使用できます。GoogleプライベートキーをSecure Agentでアクセスして保存するために取得したら、JWT要求を作成し、自分のプライベートキーを使用してそれに署名します。
JWT認証の詳細については、https://console.developers.google.comおよび https://developers.google.com/identity/protocols/OAuth2ServiceAccountを参照してください。

hmacSHA256signatureForList

SHA256アルゴリズムとオプションのエンコードを使用して、ハッシュベースのメッセージ認証コード(HMAC)を計算します($encodingはBase64(デフォルト値)、Base64Url、Hex、またはHex64のいずれかの値です)。

構文

dsig:hmacSHA256signatureForList(data, delimiter, secretKey, encoding, keyCharset)
次の表に、引数を示します。
引数
必須/
オプション
説明
data
必須
ハッシュを計算するためのプレーンテキスト。
区切り文字
必須
文字列を分割する基準となる1つ以上の文字のシーケンス。
secretKey
必須
HMAC計算のシークレットキー。キーの長さは任意です。ただし、推奨されるサイズは64バイトです。キーの長さが64バイトを超える場合は、SHA-256を使用してハッシュされ、32バイトのキーが導出されます。
encoding
必須
出力に使用されるエンコードのタイプ。例えば、SHA256アルゴリズムを使用してHMACを計算することができます(encodingはBase64(デフォルト)、Base64Url、Hex、Hex64のいずれかの値です)。
keyCharset
オプション
関数で引数として渡すシークレットキーの文字セットを指定するために使用する引数。keyCharsetはデフォルトでUTF-8に設定されています。

添付ファイル

Process Designerはエンドポイントを公開することで、イベントハンドラ、内部API呼び出し、カスタムサービスコネクタ、Amazon S3コネクタなどの組み込みコネクタを使用して、プロセス内で添付ファイルにアクセスできるようにします。これにより、応答内で関数を使用して(サポートされている場合)添付ファイルを渡し、添付ファイルに関するファイルサイズ、ファイル名などのデータを抽出できます。
プロセスの設計時に、添付ファイルをサブプロセス、サービスコネクタ、サービスの各ステップに渡すか、添付ファイルを返せます(出力フィールドが添付ファイルのタイプを使用して定義されている場合)。
プロセス内では、添付ファイルが画面からの直接入力として入力される1つまたは複数の添付ファイルを追加することを、ユーザーに許可できます。これは、プロセスフィールドを使用してステップ間を移動する方法ではありません。例えば、プロセスを使用して、不動産データをキャプチャし、ユーザーが関連不動産の写真を添付するようにできます。ただし、添付ファイルデータには、プロセス内でアクセスすることはできません。
注:
プロセスをCloud Server上で実行する場合、サイズがデフォルトの5,242,880バイトを超える添付ファイルは使用しないでください。クラウドサーバーは、5,242,880バイトを超える添付ファイルを処理できません。
エンコード
添付ファイルは次の形式でエンコードできます。
データタイプ
2つの簡単なデータタイプを使用して、名前付き入力パラメータを添付ファイルとして指定できます。
プロセス内から、XQuery式と組み込み関数を使用して、添付ファイルに関するメタデータにアクセスできます。例えば、次の式では、写真入力のサイズが返されます。
sff:getAttachmentSize($input.photo)
添付フィールド割り当てステップを使用することで、出力フィールドまたは一時フィールドに入力添付フィールドを割り当てられす。その場合、ターゲットの一時フィールドまたは出力フィールドも[添付]タイプである必要があります。
この例では、2番目のパラメータ($encodedContent)は、Base64でエンコードされた文字列です。
sff:createAttachmentFromBase64("base64", "UOpGUIRA", "ascii")
注:
プロセス内で添付関数をで使用できますが、サービスコネクタ内では使用できません。サービスコネクタ内での添付ファイルの処理に関する詳細は、次を参照してください。
添付ファイルと一緒に使用できる関数の詳細については、関数の使用を参照してください。

添付ペイロード

単純な添付ファイルを使用する場合、次の状態であることを確認してください。

サービスコネクタ内での添付ファイルの使用

サービスコネクタは、プロセスからサービスコネクタの入力に添付を送信する、サービスコネクタから添付を取得してプロセスに添付として送信するなどの目的で定義できます。
添付ファイルはサービス入力(Salesforceベースのサービスを含む)に対してプロセスとサービスコネクタから直接送信されます。
注:
Amazon S3などのサービスからは、コンテンツをアップロードまたはダウンロードし、出力マッピングで定義された名前で添付をメインプロセスにプロパゲートして戻します。Amazon S3コネクタを使用すると、S3オブジェクトのコンテンツをBase64でエンコードされた文字列として、または添付ファイルとして読み書きできます。詳細については、Amazon S3コネクタに関するガイドを参照してください。

サービスコネクタでの複数の出力添付ファイルの使用

サービスコネクタでは、マルチパート応答を適切に処理し、さまざまな応答パートに対し複数の添付ファイルを作成できます。パート関連メタデータ情報は、添付ファイルのプロパティで使用できます。
サービスコネクタでは、ペイロードパートも認識されます。最初のJSON/XML/テキストパートがペイロードとして使用されます。非マルチパート応答の使用時に通常行うアクションの出力フィールド式のペイロードからデータを抽出できます。選択されたペイロードは添付として使用できません。
[出力]タブで、[添付ファイルの取得]オプションを使用して複数の添付ファイルを処理し、添付ファイルの全リストをペイロードを除く選択された変数に渡すことができます。
サービスコネクタで添付ファイルを処理する式を使用することもできます。式エディタを開くと、[出力添付ファイル]セクションの[関数]タブで新しい関数を見つけることができます。

GET、POST、PUTの使用

JSONまたはXMLをサポートしていないリソースに対してGET、POST、PUTの各操作を使用するサービスコネクタを定義できます。
以下の点に注意してください。
: 「sff」関数はプロセス内でのみ使用できます。

HTTPおよびJMSヘッダー

ヘッダー関数を使用して、プロセスの起動時に渡すヘッダーに関する詳細を取得します。プロセスヘッダーとメッセージイベントヘッダーの詳細を取得できます。
ヘッダー関数を使用して、プロセスの起動時に渡すヘッダーのみから入手できる情報を取得します。例として、日付、JSON Webトークン、セキュリティIDなどがあります。
フィールドにヘッダー値を割り当て、必要に応じて値にXQuery操作を実行できます。
次の図は、式エディタの[要求コンテキスト]セクションで利用できるヘッダー関数を示します。
この図では、式エディタの[関数]セクションの[要求コンテキスト]セクションに、6つのHTTPSヘッダー関数が表示されています。
各関数の働きを理解するために、次のヘッダーと値で起動するプロセスについて検討します。
ヘッダー
accept-language
en-US;q=0.9
client-ip
192.0.2.1
accept
text/xml
postman-token
0023-a5dfd-8vdg3-n2b3
CustomHeader
This is a custom header
ExecutionDate
Wed, July 25 2018 06:25:24 GMT
次のヘッダー関数を単独で、または他の関数と一緒に使用できます。
全ヘッダー値の取得
getAllHeaders関数を使用して、全ヘッダーとそれらの値のリストを取得します。
例えば、次の式を使用すると、特定の出力が得られます。
式:
fn:getAllHeaders()
出力:
<headers>
<header name="accept-language">en-US;q=0.9</header>
<header name="client-ip">192.0.2.1</header>
<header name="accept">text/xml</header>
<header name="postman-token">0023-a5dfd-8vdg3-n2b3</header>
<header name="CustomHeader">This is a custom header</header>
<header name="ExecutionDate">Wed, July 25 2018 06:25:24 GMT</header>
</headers>
日付ヘッダーの取得
getDateHeader関数を使用して、日付ヘッダーの値を取得します。関数は、dateTime型のデータを返します。
他の日付と時間の関数を使用して、値を解析できます。
例えば、次の式を使用すると、特定の出力が得られます。
式:
fn:year-from-dateTime(request:getDateHeader("ExecutionDate")
出力:
2018
特定のヘッダー値の取得
getHeader関数を使用して、特定のヘッダーの値を取得します。
例えば、次の式を使用すると、特定の出力が得られます。
式:
request:getHeader("accept")
出力:
text/xml
ヘッダー名リストの取得
getHeaderNames関数を使用して、一連のヘッダー名を値なしで取得します。
例えば、次の式を使用すると、特定の出力が得られます。
式:
request:getHeaderNames()
出力:
accept-language,client-ip,accept,postman-token,CustomHeader,ExecutionDate
ヘッダー値またはデフォルトの取得
getHeaderOrDefaultを使用して、ヘッダーが存在する場合はヘッダー値を取得し、ヘッダーが存在しない場合は何らかのデフォルト値を取得します。
この関数を使用するには、ヘッダー名とデフォルト値を式パラメータとして指定する必要があります。
デフォルト値はNot Availableにします。
例えば、次の式を使用すると、有効な出力が得られます。
式:
concat ("The header I want is",
request:getHeaderOrDefault("postman-token","Not Avaialble" )
出力:
The header I want is 0023-a5dfd-8vdg3-n2b3
次の式を使用すると、Not Availableの出力が得られます。
式:
concat ("The header I want is",
request:getHeaderOrDefault("special-token","Not Avaialble" )
出力:
The header I want is Not Available
これは、要求に、名前がspecial-tokenのヘッダーが含まれないためです。
特定のヘッダーが存在するかどうかの確認
headerExists関数を使用して、特定の名前を持つヘッダーが存在するかどうかを確認します。
出力は、TrueまたはFalseのいずれかになります。
例えば、次の式を使用すると、特定の出力が得られます。
式:
request:headerExists("CustomHeader")
出力:
True

メッセージイベントのヘッダー

プロセスにメッセージイベントがある場合、任意のヘッダー関数を使用して、メッセージイベントのヘッダーを取得できます。これを行うには、式パラメータとして、メッセージイベント名を大文字と小文字を区別して追加する必要があります。
例えば、名前がCustomHeaderのヘッダーをメッセージイベント受信ステップに渡す場合、次の式を使用して、CustomHeaderの値をメッセージイベントME1から取得します。
request:getHeader("CustomHeader","ME1")

HTTP動詞の関数

要求で使用されるHTTP動詞とリソースパスセグメントを取得するには、HTTP動詞の関数を使用します。HTTP動詞の関数は、式エディタの[要求コンテキスト]セクションで利用できます。
次のHTTP動詞の関数を使用できます。
getRequestHTTPVerb
要求で使用されているHTTP動詞を判別するには、getRequestHTTPVerb関数を使用します。この関数によって、要求からHTTP動詞が取得され、次の応答のいずれかが文字列形式で返されます。
getResourcePathSegments
REST要求のすべてのまたは特定のリソースパスセグメントを取得するには、getResourcePathSegments関数を使用します。この関数によって、トークンの文字列として値が返されます。
例えば、次の要求URLがあるとします。
https://na1.ai.dm-us.informaticacloud.com/active-bpel/rt/InitiateOrder/Orders/OrderID_100/quantity/5
request:getResourcePathSegments()式を使用すると、次の応答が返されます。
[Orders, OrderID_100, quantity, 5]
特定のリソースパスセグメントを取得するには、数値修飾子を使用して、プロセス名からのリソースパスセグメントの位置を示します。
例えば、OrderID_100セグメントだけを応答で取得するには、次の式を使用します。
request:getResourcePathSegments()[2]
注:
getResourcePathSegments関数を使用して、SOAP要求およびメッセージイベントのリソースパスセグメントを取得することはできません。getResourcePathSegments関数を使用して、ホストコンテキストを取得することはできません。

ヒューマンタスクXQueryユーティリティ

プロセス内でヒューマンタスクステップを使用する場合、Process Designerで、または式を使用して値を設定するフィールドで、XQueryを操作するときにヒューマンタスクユーティリティ関数を使用できます。
ヒューマンタスクユーティリティ関数は、式エディタの[ヒューマンタスクユーティリティ]の下にあります。
次の表に、ヒューマンタスクユーティリティ関数を示します。
機能
構文
説明
getHumanTaskId
task:getHumanTaskId(humanTaskStepName)
指定されたヒューマンタスクステップ名に関連付けられたヒューマンタスクのIDを返します。
このIDは、ヒューマンタスクに関する情報の取得、タスクの再割り当て、タスクのキャンセルなどの他のアクションに使用できます。
getHumanTaskInfo
task:getHumanTaskInfo(humanTaskId)
指定されたヒューマンタスクIDに基づいて、ヒューマンタスクに関する次の情報を返します。
  • - タスクID
  • - タスク名
  • - ステータス
  • - 優先度
  • - タスクイニシエータ
  • - 関係者
  • - 潜在的な所有者
  • - 管理者
  • - タスク所有者
  • - タスク作成日
  • - タスクを作成したユーザー。
  • - タスクアクティブ化時刻
  • - タスク有効期限
  • - スキップ可能オプション値
reassignHumanTask
task:reassignHumanTask(humanTaskId, users, groups)
指定されたユーザーおよびグループにヒューマンタスクを再割り当てし、タスクIDを返します。
タスクを1人のユーザーに再割り当てすると、そのユーザーがタスクの所有者になります。タスクをグループまたは複数のユーザーに再割り当てする場合、ユーザーはタスクを引き受けてタスク所有者になる必要があります。
複数のユーザーまたはグループを指定するには、カンマ文字を区切り文字として使用します。例えば、以下の構文を使用します。
task:reassignHumanTask(humanTaskId, ('<user1>','<user2>'), ('<group1>','<group2>'))
タスクをグループではなく特定のユーザーに再割り当てする場合は、次の構文を使用します。
task:reassignHumanTask(humanTaskId, '<user1>',")
cancelHumanTask
task:cancelHumanTask(humanTaskId)
ヒューマンタスクをキャンセルし、タスクを廃止します。タスクIDを返します。ヒューマンタスクがキャンセルされた後、プロセスは次のステップに進みます。