Show TOC

Built-In FunctionsLocate this document in the navigation structure

Use

The expression editor contains a list with built-in functions for data transformation. You can use the built-in functions together with the functions you create to write expressions.

The following table contains the available built-in functions, their input and output parameters, and a short description of each function:

Name (Symbol)

Input

Output

Documentation

and

left  as   xsd:boolean,  right  as   xsd:boolean

result  as   xsd:boolean

Returns true if and only if both arguments are true. Returns false if one of the arguments is true and the other argument is false, or if both arguments are false.

boolean

value  as   xsd:string

result  as   xsd:boolean

Returns true if the <str> has literal value "true".

boolean-equal  ( = )

left  as   xsd:boolean ,   right  as   xsd:boolean

result  as   xsd:boolean

Returns true if both arguments are true or if both arguments are false. Returns false if one of the arguments is true and the other argument is false.

boolean-not-equal  ( != )

left  as   xsd:boolean ,   right  as   xsd:boolean

result  as   xsd:boolean

Returns true if one of the arguments is true and the other argument is false.

not  ( ! )

value  as   xsd:boolean

result  as   xsd:boolean

Returns the logical negation of the argument (true if the Boolean value is false, and false if the Boolean value is true).

or

left  as   xsd:boolean ,   right  as   xsd:boolean

result  as   xsd:boolean

Returns true if one or both of the arguments are true. Returns false if both arguments are false.

Name (Symbol)

Input

Output

Documentation

Duration

dayTimeDuration-greater-equal

left  as   xsd:duration ,   right  as   xsd:duration

result  as   xsd:boolean

Returns true if and only if <left> is greater than <right>. Returns false otherwise.

days-from-duration

value  as   xsd:duration

result  as   xsd:int

Returns an xs:int representing the days component in the value of <value>.

dayTimeDuration-greater-than

left  as   xsd:duration ,   right  as   xsd:duration

result  as   xsd:boolean

 

dayTimeDuration-less-equal

left  as   xsd:duration ,   right  as   xsd:duration

result  as   xsd:boolean

 

dayTimeDuration-less-than

left  as   xsd:duration ,   right  as   xsd:duration

result  as   xsd:boolean

Returns true if and only if <left> is less than <right>. Returns false otherwise.

dayTimeDuration-not-equal

left  as   xsd:duration ,   right  as   xsd:duration

result  as   xsd:boolean

Returns true if and only if the value of left is not equal to the value of right. Returns false otherwise.

duration-equal

left  as   xsd:duration ,   right  as   xsd:duration

result  as   xsd:boolean

Returns true if and only if the value of left is equal to the value of right. Returns false otherwise.

duration-not-equal

left  as   xsd:duration ,   right  as   xsd:duration

result  as   xsd:int

Returns true if and only if the value of left is not equal to the value of right. Returns false otherwise.

hours-from-duration

value  as   xsd:duration

result  as   xsd:int

Returns an xs:int representing the hours component in the value of <value>.

IF  ( )

value  as   xsd:boolean ,   value  as   xsd:duration   [] ,   value  as   xsd:duration   []

result  as   xsd:duration   []

This function could be used over both lists and single values as input parameters.

Caution

All of the three input parameters are evaluated. That is why you have to define a semantically correct expression for all of the parameters that could be evaluated at runtime.

Based on the returned Boolean value from the evaluation of the first input parameter (the Boolean condition), the function returns an xsd:duration representing the value received after the evaluation of either the second or the third input parameter.

minutes-from-duration

value  as   xsd:duration

result  as   xsd:int

Returns an xs:int representing the minutes component in the value of <value>.

months-from-duration

value  as   xsd:duration

result  as   xsd:int

Returns an xs:int representing the months component in the value of <value>.

seconds-from-duration

value  as   xsd:duration

result  as   xsd:int

Returns an xs:int representing the seconds component in the value of <value>.

yearMonthDuration-equal

left  as   xsd:duration ,   right  as   xsd:duration

result  as   xsd:boolean

 

yearMonthDuration-greater-equal

left  as   xsd:duration ,   right  as   xsd:duration

result  as   xsd:boolean

 

yearMonthDuration-greater-than

left  as   xsd:duration ,   right  as   xsd:duration

result  as   xsd:boolean

Returns true if and only if <left> is greater than <right>. Returns false otherwise.

yearMonthDuration-less-equal

left  as   xsd:duration ,   right  as   xsd:duration

result  as   xsd:boolean

 

yearMonthDuration-less-than

left  as   xsd:duration ,   right  as   xsd:duration

result  as   xsd:boolean

Returns true if and only if <left> is less than <right>. Returns false otherwise.

yearMonthDuration-not-equal

left  as   xsd:duration ,   right  as   xsd:duration

result  as   xsd:boolean

Returns true if and only if the value of left is not equal to the value of right. Returns false otherwise.

years-from-duration

value  as   xsd:duration

result  as   xsd:int

Returns an xs:int representing the years component in the value of <value>.

Date-Time

add-days-to-dateTime

value  as   xsd:dateTime ,   days  as   xsd:int

result  as   xsd:dateTime

 

add-dayTimeDuration-to-dateTime

value  as   xsd:dateTime ,   duration  as   xsd:duration

result  as   xsd:dateTime

Returns the xs:dateTime computed by adding <duration> to the value of <value>. If <duration> is negative, then the result xs:dateTime precedes <value>. The result has the same time zone as <value>. If <value> has no time zone, the result has no time zone.

add-hours-to-dateTime

value  as   xsd:dateTime ,   hours  as   xsd:int

result  as   xsd:dateTime

 

add-milliseconds-to-dateTime

value  as   xsd:dateTime ,   milliseconds  as   xsd:long

result  as   xsd:dateTime

 

add-minutes-to-dateTime

value  as   xsd:dateTime ,   minutes  as   xsd:int

result  as   xsd:dateTime

 

add-months-to-dateTime

value  as   xsd:dateTime ,   months  as   xsd:int

result  as   xsd:dateTime

 

add-seconds-to-dateTime

value  as   xsd:dateTime ,   seconds  as   xsd:int

result  as   xsd:dateTime

 

add-yearMonthDuration-to-dateTime

value  as   xsd:dateTime ,   duration  as   xsd:duration

result  as   xsd:dateTime

Returns the xs:dateTime computed by adding <ymDiration> to the value of <value>. If <ymDiration> is negative, then the result xs:dateTime precedes <value>. The result has the same time zone as <value>. If <value> has no time zone, the result has no time zone.

add-years-to-dateTime

value  as   xsd:dateTime ,   years  as   xsd:int

result  as   xsd:dateTime

 

current-dateTime

 

result  as   xsd:dateTime

Returns the current dateTime.

date-from-dateTime

value  as   xsd:dateTime

result  as   xsd:date

 

dateTime

value  as   xsd:string

result  as   xsd:dateTime

 

dateTime-equal  ( = )

left  as   xsd:dateTime ,   right  as   xsd:dateTime

result  as   xsd:boolean

Returns true if and only if the value of left is equal to the value of right. Returns false otherwise.

dateTime-greater-equal  ( >= )

left  as   xsd:dateTime ,   right  as   xsd:dateTime

result  as   xsd:boolean

Returns true if and only if left is greater than or equal to the value of right. Returns false otherwise.

dateTime-greater-than  ( > )

left  as   xsd:dateTime ,   right  as   xsd:dateTime

result  as   xsd:boolean

Returns true if and only if the value of <left> is greater than the value of <right>

dateTime-less-equal  ( <= )

left  as   xsd:dateTime ,   right  as   xsd:dateTime

result  as   xsd:boolean

Returns true if and only if <left> is less than or equal <right>. Returns false otherwise.

dateTime-less-than  ( < )

left  as   xsd:dateTime ,   right  as   xsd:dateTime

result  as   xsd:boolean

Returns true if and only if the value of <left> is less than the value of <right>.

dateTime-not-equal  ( != )

left  as   xsd:dateTime ,   right  as   xsd:dateTime

result  as   xsd:boolean

Returns true if and only if the value of left is not equal to the value of right. Returns false otherwise.

day-from-dateTime

value  as   xsd:dateTime

result  as   xsd:int

Returns an xs:int between 1 and 31, both inclusive, representing the day component in the localized value of <value>.

hours-from-dateTime

value  as   xsd:dateTime

result  as   xsd:int

Returns an xs:int between 0 and 23, both inclusive, representing the hours component in the localized value of <value>.

IF  ( )

test  as   xsd:boolean ,   thenValue  as   xsd:dateTime   [] ,   elseValue  as   xsd:dateTime   []

result  as   xsd:dateTime   []

This function could be used over both lists and single values as input parameters.

Caution

All of the three input parameters are evaluated. That is why you have to define a semantically correct expression for all of the parameters that could be evaluated at runtime.

Based on the returned Boolean value from the evaluation of the first input parameter (the Boolean condition), the function returns an xsd:dateTime representing the value received after the evaluation of either the second or the third input parameter.

minutes-from-dateTime

value  as   xsd:dateTime

result  as   xsd:int

Returns an xs:int value between 0 and 59, both inclusive, representing the minute component in the localized value of <value>.

month-from-dateTime

value  as   xsd:dateTime

result  as   xsd:int

Returns an xs:int between 1 and 12, both inclusive, representing the month component in the localized value of <value>.

remove-timeZone()

value as xsd:dateTime or xsd:date

result as xsd:dateTime or xsd:date

The remove-timeZone() function extracts any existing information about the time zone from the input parameter which is of type xsd:dateTime in "YYYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm]" format or xsd:date in "YYYY-MM-DD[Z|(+|-)hh:mm]" format. The return value from this function is of type xsd:dateTime in "YYYY-MM-DDThh:mm:ss" format or xsd:date in "YYYY-MM-DD" format.

  • In this example, the input parameter is 2011-05-11T16:55:36.793Z which is of type xsd:dateTime and this date is in UTC time

                                     remove-timeZone(2011-05-11T16:55:36.793Z
                                  

    The return value would be 2011-05-11T16:55:36.793 , which is also of type xsd:dateTime, but does not contain any indication for the time zone.

  • In this example, the input parameter is 2011-05-11+01 which is of type xsd:date and has a specified offset from the UTC time(+01).

                                     remove-timeZone(2011-05-11+01)
                                  

    The return value would be 2011-05-11 , which is also of type xsd:date, but does not contain any indication for the time zone.

The return value from this function could be used in mappings to Global Data Type XSDDATE_D, which does not support time zone offset and thus requires data that does not have any time zone information.

seconds-from-dateTime

value  as   xsd:dateTime

result  as   xsd:int

Returns an xs:int value greater than or equal to zero and less than 60, representing the seconds in the localized value of <value>.

subtract-dateTimes

left  as   xsd:dateTime ,   right  as   xsd:dateTime

result  as   xsd:duration

Returns the xs:dayTimeDuration that corresponds to the difference between the normalized value of <left> and the normalized value of <right>. If the normalized value of <left> precedes in time the normalized value of <right>, then the returned value is a negative duration.

subtract-dateTimes-as-milliseconds

left  as   xsd:dateTime ,   right  as   xsd:dateTime

result  as   xsd:long

 

subtract-days-from-dateTime

left  as   xsd:dateTime ,   right  as   xsd:int

result  as   xsd:dateTime

 

subtract-dayTimeDuration-from-dateTime

value  as   xsd:dateTime ,   duration  as   xsd:duration

result  as   xsd:dateTime

Returns the xs:dateTime computed by negating <duration> and adding the result to the value of <value>. If <duration> is negative, then the xs:dateTime returned follows <value>. The result has the same time zone as <value>. If <value> has no time zone, the result has no time zone.

subtract-hours-from-dateTime

value  as   xsd:dateTime ,   hours  as   xsd:int

result  as   xsd:dateTime

 

subtract-milliseconds-from-dateTime

value  as   xsd:dateTime ,   milliseconds  as   xsd:long

result  as   xsd:dateTime

 

subtract-minutes-from-dateTime

value  as   xsd:dateTime ,   minutes  as   xsd:int

result  as   xsd:dateTime

 

subtract-months-from-dateTime

value  as   xsd:dateTime ,   months  as   xsd:int

result  as   xsd:dateTime

 

subtract-seconds-from-dateTime

value  as   xsd:dateTime ,   seconds  as   xsd:int

result  as   xsd:dateTime

 

subtract-yearMonthDuration-from-dateTime

value  as   xsd:dateTime ,   duration  as   xsd:duration

result  as   xsd:dateTime

Returns the xs:dateTime computed by negating <duration> and adding the result to the value of <value>. If <duration> is negative, then the xs:dateTime returned follows <value>. The result has the same time zone as <value>. If <value> has no time zone, the result has no time zone.

subtract-years-from-dateTime

value  as   xsd:dateTime ,   years  as   xsd:int

result  as   xsd:dateTime

 

time-from-dateTime

value  as   xsd:dateTime

result  as   xsd:time

 

year-from-dateTime

value  as   xsd:dateTime

result  as   xsd:int

Returns an xs:int representing the year component in the localized value of <value>. The result may be negative.

Name (Symbol)

Input

Output

Documentation

filter

list  as   xsd:anyType   [] ,   criteria  as   xsd:string

result  as   xsd:anyType   []

Returns a subset of the argument <list> that matches the condition in the argument <criteria>.

get

list  as   xsd:anyType   [] ,   index  as   xsd:long

result  as   xsd:anyType

Returns an item of the argument <list> from the position in the argument <index>.

IF

test  as   xsd:boolean ,   thanValue  as   xsd:anyType   [] ,   elseValue  as   xsd:anyType   []

result  as   xsd:anyType   []

This function could be used over both lists and single values as input parameters.

Caution

All of the three input parameters are evaluated. That is why you have to define a semantically correct expression for all of the parameters that could be evaluated at runtime.

Based on the returned Boolean value from the evaluation of the first input parameter (the Boolean condition), the function returns the value received after the evaluation of either the second or the third input parameter.

insert-before

target  as   xsd:anyType   [] ,   position  as   xsd:long ,   inserts  as   xsd:anyType   []

result  as   xsd:anyType   []

Returns a new sequence constructed from the value of <target> with the value of <inserts> inserted at the position specified by the value of <position>.

isSet

arg  as   xsd:anyType   []

result  as   xsd:boolean

 

nilled

arg  as   xsd:anyType   []

result  as   xsd:boolean

 

sort

list  as   xsd:anyType   [] ,   sortBy  as   xsd:string ,   descending  as   xsd:boolean

result  as   xsd:anyType   []

Returns the all the items in the argument <list> sorted by <sortBy> element, <descending> defines the order of sorting.

Name (Symbol)

Input

Output

Documentation

Finite-Integer

abs

value  as   xsd:long

result  as   xsd:long

Returns the absolute value of <value>. If <value> is negative, it returns -<value>; otherwise, it returns <value>.

avg

arg  as   xsd:long   []

result  as   xsd:long

Returns the average of the values in the input sequence <arg>, that is, the sum of the values divided by the number of values. If <arg> is the empty sequence, the empty sequence is returned.

IF  ( )

test  as   xsd:boolean ,   thenValue  as   xsd:long   [] ,   elseValue  as   xsd:long   []

result  as   xsd:long   []

This function could be used over both lists and single values as input parameters.

Caution

All of the three input parameters are evaluated. That is why you have to define a semantically correct expression for all of the parameters that could be evaluated at runtime.

Based on the returned Boolean value from the evaluation of the first input parameter (the Boolean condition), the function returns an xsd:long representing the value received after the evaluation of either the second or the third input parameter.

long

value  as   xsd:double

result  as   xsd:long

Cast from fuzzy-real

long

value  as   xsd:integer

result  as   xsd:long

Cast from infinite-integer

long

value  as   xsd:decimal

result  as   xsd:long

Cast from precise-real

long

value  as   xsd:string

result  as   xsd:long

Cast from text

max

left  as   xsd:long ,   right  as   xsd:long

result  as   xsd:long

 

max-range

arg  as   xsd:long   []

result  as   xsd:long

Selects an item from the input sequence <arg> whose value is greater than or equal to the value of every other item in the input sequence. If <arg> is the empty sequence, the empty sequence is returned.

min

left  as   xsd:long ,   right  as   xsd:long

result  as   xsd:long

 

min-range

arg  as   xsd:long   []

result  as   xsd:long

Selects an item from the input sequence <arg> whose value is less than or equal to the value of every other item in the input sequence. If <arg> is the empty sequence, the empty sequence is returned.

numeric-add  ( + )

left  as   xsd:long ,   right  as   xsd:long

result  as   xsd:long

Returns the sum of its operands (<left> + <right>).

numeric-divide  ( div )

left  as   xsd:long ,   right  as   xsd:long

result  as   xsd:long

Returns the arithmetic quotient of its operands: (<left> div <right>)

numeric-equal  ( = )

left  as   xsd:long ,   right  as   xsd:long

result  as   xsd:boolean

Returns true if and only if the value of <left> is equal to the value of <right>.

numeric-greater-equal  ( >= )

left  as   xsd:long ,   right  as   xsd:long

result  as   xsd:boolean

Returns true if and only if left is greater than or equal to the value of right. Returns false otherwise.

numeric-greater-than  ( > )

left  as   xsd:long ,   right  as   xsd:long

result  as   xsd:boolean

Returns true if and only if left is greater than right. Returns false otherwise.

numeric-less-equal  ( <= )

left  as   xsd:long ,   right  as   xsd:long

result  as   xsd:boolean

Returns true if and only if left is less than or equal to right. Returns false otherwise.

numeric-less-than  ( < )

left  as   xsd:long ,   right  as   xsd:long

result  as   xsd:boolean

Returns true if and only if left is less than right. Returns false otherwise.

numeric-multiply  ( * )

left  as   xsd:long ,   right  as   xsd:long

result  as   xsd:long

Returns the arithmetic product of its operands: (<left> * <right>).

numeric-not-equal  ( != )

left  as   xsd:long ,   right  as   xsd:long

result  as   xsd:boolean

Returns true if and only if the value of left is not equal to the value of right. Returns false otherwise.

numeric-subtract  ( - )

left  as   xsd:long ,   right  as   xsd:long

result  as   xsd:long

Returns the difference of its operands (left - right).

numeric-unary-minus

value  as   xsd:long

result  as   xsd:long

Returns its operand with the sign reversed: (- <value>). If <value> is positive, its negative is returned; if it is negative, its positive is returned.

numeric-unary-plus

value  as   xsd:long

result  as   xsd:long

Returns its operand with the sign unchanged: (+ <value>). Semantically, this operation performs no operation.

power

left  as   xsd:long ,   right  as   xsd:long

result  as   xsd:long

 

signum

value  as   xsd:long

result  as   xsd:long

 

square

value  as   xsd:long

result  as   xsd:long

 

square-root

value  as   xsd:long

result  as   xsd:long

 

sum

arg  as   xsd:long   []

result  as   xsd:long

Returns a value obtained by adding together the values in <arg>. If <arg> is the empty sequence, the empty sequence is returned.

Fuzzy-Real

abs

value  as   xsd:double

result  as   xsd:double

Returns the absolute value of <value>. If <value> is negative itreturns -<value>; otherwise, it returns <value>.

avg

arg  as   xsd:double   []

result  as   xsd:double

Returns the average of the values in the input sequence <arg>, that is, the sum of the values divided by the number of values. If <arg> is the empty sequence, the empty sequence is returned.

ceiling

value  as   xsd:double

result  as   xsd:double

Returns the smallest (closest to negative infinity) number with no fractional part that is not less than the value of <value>.

double

value  as   xsd:long

result  as   xsd:double

Cast from finite-integer

double

value  as   xsd:integer

result  as   xsd:double

Cast from infinite-integer

double

value  as   xsd:decimal

result  as   xsd:double

Cast from precise-real

double

value  as   xsd:string

result  as   xsd:double

Cast from text

floor

value  as   xsd:double

result  as   xsd:double

Returns the largest (closest to positive infinity) number with no fractional part that is not greater than the value of <value>.

IF  ( )

test  as   xsd:boolean   [] ,   thenValue  as   xsd:double   [] ,   elseValue  as   xsd:double   []

result  as   xsd:double   []

This function could be used over both lists and single values as input parameters.

Caution

All of the three input parameters are evaluated. That is why you have to define a semantically correct expression for all of the parameters that could be evaluated at runtime.

Based on the returned Boolean value from the evaluation of the first input parameter (the Boolean condition), the function returns an xsd:double representing the value received after the evaluation of either the second or the third input parameter.

inverse

value  as   xsd:double

result  as   xsd:double

 

max

left  as   xsd:double ,   right  as   xsd:double

result  as   xsd:double

 

max-range

arg  as   xsd:double   []

result  as   xsd:double

Selects an item from the input sequence <arg> whose value is greater than or equal to the value of every other item in the input sequence. If <arg> is the empty sequence, the empty sequence is returned.

min

left  as   xsd:double ,   right  as   xsd:double

result  as   xsd:double

 

min-range

arg  as   xsd:double   []

result  as   xsd:double

Selects an item from the input sequence <arg> whose value is less than or equal to the value of every other item in the input sequence. If <arg> is the empty sequence, the empty sequence is returned.

multiply  ( * )

left  as   xsd:double ,   right  as   xsd:double

result  as   xsd:double

Returns the arithmetic product of its operands: (<left> * <right>).

numeric-add  ( + )

left  as   xsd:double ,   right  as   xsd:double

result  as   xsd:double

Returns the sum of its operands (left + right).

numeric-divide  ( div )

left  as   xsd:double ,   right  as   xsd:double

result  as   xsd:double

Returns the arithmetic quotient of its operands: (<left> div <right>)

numeric-equal  ( = )

left  as   xsd:double ,   right  as   xsd:double

result  as   xsd:boolean

Returns true if and only if the value of left is equal to the value of right. Returns false otherwise.

numeric-greater-equal  ( >= )

left  as   xsd:double ,   right  as   xsd:double

result  as   xsd:boolean

Returns true if and only if left is greater than or equal to the value of right. Returns false otherwise.

numeric-greater-than  ( > )

left  as   xsd:double ,   right  as   xsd:double

result  as   xsd:boolean

Returns true if and only if left is greater than right. Returns false otherwise.

numeric-less-equal  ( <= )

left  as   xsd:double ,   right  as   xsd:double

result  as   xsd:boolean

Returns true if and only if left is less than or equal to right. Returns false otherwise.

numeric-less-than  ( < )

left  as   xsd:double ,   right  as   xsd:double

result  as   xsd:boolean

Returns true if and only if left is less than right. Returns false otherwise.

numeric-not-equal  ( != )

left  as   xsd:double ,   right  as   xsd:double

result  as   xsd:boolean

Returns true if and only if the value of left is not equal to the value of right. Returns false otherwise.

numeric-subtract  ( - )

left  as   xsd:double ,   right  as   xsd:double

result  as   xsd:double

Returns the difference of its operands (left - right).

numeric-unary-minus

value  as   xsd:double

result  as   xsd:double

Returns its operand with the sign reversed: (- <value>). If <value> is positive, its negative is returned; if it is negative, its positive is returned.

numeric-unary-plus

value  as   xsd:double

result  as   xsd:double

Returns its operand with the sign unchanged: (+ <value>). Semantically, this operation performs no operation.

power

left  as   xsd:double ,   right  as   xsd:double

result  as   xsd:double

 

round

value  as   xsd:double

result  as   xsd:double

Returns the number with no fractional part that is closest to the argument. If there are two such numbers, then the one that is closest to positive infinity is returned.

signum

value  as   xsd:double

result  as   xsd:double

 

square

value  as   xsd:double

result  as   xsd:double

 

square-root

value  as   xsd:double

result  as   xsd:double

 

sum

arg  as   xsd:double   []

result  as   xsd:double

Returns a value obtained by adding together the values in <arg>. If <arg> is the empty sequence, the empty sequence is returned.

Infinite-Integer

abs

value  as   xsd:integer

result  as   xsd:integer

Returns the absolute value of <value>. If <value> is negative, it returns -<value>; otherwise, it returns <value>.

avg

arg  as   xsd:integer   []

result  as   xsd:integer

Returns the average of the values in the input sequence <arg>, that is, the sum of the values divided by the number of values. If <arg> is the empty sequence, the empty sequence is returned.

IF  ( )

test  as   xsd:boolean ,   thenValue  as   xsd:integer   [] ,   elseValue  as   xsd:integer   []

result  as   xsd:integer   []

This function could be used over both lists and single values as input parameters.

Caution

All of the three input parameters are evaluated. That is why you have to define a semantically correct expression for all of the parameters that could be evaluated at runtime.

Based on the returned Boolean value from the evaluation of the first input parameter (the Boolean condition), the function returns an xsd:integer representing the value received after the evaluation of either the second or the third input parameter.

integer

value  as   xsd:double

result  as   xsd:integer

Cast from fuzzy-real

integer

value  as   xsd:long

result  as   xsd:integer

Cast from finite-integer

integer

value  as   xsd:decimal

result  as   xsd:integer

Cast from precise-real

integer

value  as   xsd:string

result  as   xsd:integer

Cast from text

max

left  as   xsd:integer ,   right  as   xsd:integer

result  as   xsd:integer

 

max-range

arg  as   xsd:integer   []

result  as   xsd:integer

Selects an item from the input sequence <arg> whose value is greater than or equal to the value of every other item in the input sequence. If <arg> is the empty sequence, the empty sequence is returned.

min

left  as   xsd:integer ,   right  as   xsd:integer

result  as   xsd:integer

 

min-range

arg  as   xsd:integer   []

result  as   xsd:integer

Selects an item from the input sequence <arg> whose value is less than or equal to the value of every other item in the input sequence. If <arg> is the empty sequence, the empty sequence is returned.

numeric-add  ( + )

left  as   xsd:integer ,   right  as   xsd:integer

result  as   xsd:integer

Returns the sum of its operands (left + right).

numeric-divide  ( div )

left  as   xsd:integer ,   right  as   xsd:integer

result  as   xsd:integer

Returns the arithmetic quotient of its operands: (<left> div <right>)

numeric-equal  ( = )

left  as   xsd:integer ,   right  as   xsd:integer

result  as   xsd:boolean

Returns true if and only if the value of left is equal to the value of right. Returns false otherwise.

numeric-greater-equal  ( >= )

left  as   xsd:integer ,   right  as   xsd:integer

result  as   xsd:boolean

Returns true if and only if left is greater than or equal to the value of right. Returns false otherwise.

numeric-greater-than  ( > )

left  as   xsd:integer ,   right  as   xsd:integer

result  as   xsd:boolean

Returns true if and only if left is greater than right. Returns false otherwise.

numeric-less-equal  ( <= )

left  as   xsd:integer ,   right  as   xsd:integer

result  as   xsd:boolean

Returns true if and only if left is less than or equal to right. Returns false otherwise.

numeric-less-than  ( < )

left  as   xsd:integer ,   right  as   xsd:integer

result  as   xsd:boolean

Returns true if and only if left is less than right. Returns false otherwise.

numeric-mod  ( mod )

left  as   xsd:integer ,   right  as   xsd:integer

result  as   xsd:integer

Informally, this function returns the remainder resulting from dividing <left>, the dividend, by <right>, the divisor.

numeric-multiply  ( * )

left  as   xsd:integer ,   right  as   xsd:integer

result  as   xsd:integer

Returns the arithmetic product of its operands: (<left> * <right>).

numeric-not-equal  ( != )

left  as   xsd:integer ,   right  as   xsd:integer

result  as   xsd:boolean

Returns true if and only if the value of left is not equal to the value of right. Returns false otherwise.

numeric-subtract  ( - )

left  as   xsd:integer ,   right  as   xsd:integer

result  as   xsd:integer

Returns the difference of its operands (left - right).

numeric-unary-minus

value  as   xsd:integer

result  as   xsd:integer

Returns its operand with the sign reversed: (- <value>). If <value> is positive, its negative is returned; if it is negative, its positive is returned.

numeric-unary-plus

value  as   xsd:integer

result  as   xsd:integer

Returns its operand with the sign unchanged: (+ <value>). Semantically, this operation performs no operation.

power

left  as   xsd:integer ,   right  as   xsd:integer

result  as   xsd:integer

 

signum

value  as   xsd:integer

result  as   xsd:integer

 

square

value  as   xsd:integer

result  as   xsd:integer

 

sum

arg  as   xsd:integer   []

result  as   xsd:integer

Returns a value obtained by adding together the values in <arg>. If <arg> is the empty sequence, the empty sequence is returned.

Precise-Real

abs

value  as   xsd:decimal

result  as   xsd:decimal

Returns the absolute value of <value>. If <value> is negative, it returns -<value>; otherwise, it returns <value>.

avg

arg  as   xsd:decimal   []

result  as   xsd:decimal

Returns the average of the values in the input sequence <arg>, that is, the sum of the values divided by the number of values. If <arg> is the empty sequence, the empty sequence is returned.

ceiling

value  as   xsd:decimal

result  as   xsd:decimal

Returns the smallest (closest to negative infinity) number with no fractional part that is not less than the value of <value>.

decimal

value  as   xsd:long

result  as   xsd:decimal

Cast from finite-integer

decimal

value  as   xsd:double

result  as   xsd:decimal

Cast from fuzzy-real

decimal

value  as   xsd:integer

result  as   xsd:decimal

Cast from infinite-integer

decimal

value  as   xsd:string

result  as   xsd:decimal

Cast from text

floor

value  as   xsd:decimal

result  as   xsd:decimal

Returns the largest (closest to positive infinity) number with no fractional part that is not greater than the value of <value>.

IF  ( )

test  as   xsd:boolean ,   thenValue  as   xsd:decimal   [] ,   elseValue  as   xsd:decimal   []

result  as   xsd:decimal   []

This function could be used over both lists and single values as input parameters.

Caution

All of the three input parameters are evaluated. That is why you have to define a semantically correct expression for all of the parameters that could be evaluated at runtime.

Based on the returned Boolean value from the evaluation of the first input parameter (the Boolean condition), the function returns an xsd:decimal representing the value received after the evaluation of either the second or the third input parameter.

inverse

value  as   xsd:decimal

result  as   xsd:decimal

 

max

left  as   xsd:decimal ,   right  as   xsd:decimal

result  as   xsd:decimal

 

max-range

arg  as   xsd:decimal   []

result  as   xsd:decimal

Selects an item from the input sequence <arg> whose value is greater than or equal to the value of every other item in the input sequence. If <arg> is the empty sequence, the empty sequence is returned.

min

left  as   xsd:decimal ,   right  as   xsd:decimal

result  as   xsd:decimal

 

min-range

arg  as   xsd:decimal   []

result  as   xsd:decimal

Selects an item from the input sequence <arg> whose value is less than or equal to the value of every other item in the input sequence. If <arg> is the empty sequence, the empty sequence is returned.

numeric-add  ( + )

left  as   xsd:decimal ,   right  as   xsd:decimal

result  as   xsd:decimal

Returns the sum of its operands (left + right).

numeric-divide  ( div )

left  as   xsd:decimal ,   right  as   xsd:decimal

result  as   xsd:decimal

Returns the arithmetic quotient of its operands: (<left> div <right>)

numeric-equal  ( = )

left  as   xsd:decimal ,   right  as   xsd:decimal

result  as   xsd:boolean

Returns true if and only if the value of left is equal to the value of right. Returns false otherwise.

numeric-greater-equal  ( >= )

left  as   xsd:decimal ,   right  as   xsd:decimal

result  as   xsd:boolean

Returns true if and only if left is greater than or equal to the value of right. Returns false otherwise.

numeric-greater-than  ( > )

left  as   xsd:decimal ,   right  as   xsd:decimal

result  as   xsd:boolean

Returns true if and only if left is greater than right. Returns false otherwise.

numeric-less-equal  ( <= )

left  as   xsd:decimal ,   right  as   xsd:decimal

result  as   xsd:boolean

Returns true if and only if left is less than or equal to right. Returns false otherwise.

numeric-less-than  ( < )

left  as   xsd:decimal ,   right  as   xsd:decimal

result  as   xsd:boolean

Returns true if and only if left is less than right. Returns false otherwise.

numeric-mod  ( mod )

left  as   xsd:decimal ,   right  as   xsd:decimal

result  as   xsd:decimal

Informally, this function returns the remainder resulting from dividing <left>, the dividend, by <right>, the divisor.

numeric-multiply  ( * )

left  as   xsd:decimal ,   right  as   xsd:decimal

result  as   xsd:decimal

Returns the arithmetic product of its operands: (<left> * <right>).

numeric-not-equal  ( != )

left  as   xsd:decimal ,   right  as   xsd:decimal

result  as   xsd:boolean

Returns true if and only if the value of left is not equal to the value of right. Returns false otherwise.

numeric-subtract  ( - )

left  as   xsd:decimal ,   right  as   xsd:decimal

result  as   xsd:decimal

Returns the difference of its operands (left - right).

numeric-unary-minus  ( unary-minus )

value  as   xsd:decimal

result  as   xsd:decimal

Returns its operand with the sign reversed: (- <value>). If <value> is positive, its negative is returned; if it is negative, its positive is returned.

numeric-unary-plus  ( unary-plus )

value  as   xsd:decimal

result  as   xsd:decimal

Returns its operand with the sign unchanged: (+ <value>). Semantically, this operation performs no operation.

power

left  as   xsd:decimal ,   right  as   xsd:decimal

result  as   xsd:decimal

 

round

value  as   xsd:decimal

result  as   xsd:decimal

Returns the number with no fractional part that is closest to the argument. If there are two such numbers, then the one that is closest to positive infinity is returned.

signum

value  as   xsd:decimal

result  as   xsd:decimal

 

square

value  as   xsd:decimal

result  as   xsd:decimal

 

sum

arg  as   xsd:decimal   []

result  as   xsd:decimal

Returns a value obtained by adding together the values in <arg>. If <arg> is the empty sequence, the empty sequence is returned.

Name (Symbol)

Input

Output

Documentation

       

getPrincipal

principalID  as   xsd:string

result  as   glx:Principal

Returns the principal corresponding to the given principalID. The returned principal can be a user or a group.

getPrincipalByUniqueName

uniqueName  as   xsd:string ,   identityType  as   xsd:string

result  as   glx:Principal

Returns the principal corresponding to the given uniqueName and identityType. The returned principal can be a user, a group or a role.

getPrincipals

principalID  as   xsd:string   []

result  as   glx:Principal   []

Returns the principals corresponding to the given principalIDs. The returned principals can be a user or a group.

Name (Symbol)

Input

Output

Documentation

concat

head  as   xsd:string ,   tail  as   xsd:string

result  as   xsd:string

Returns the concatenation of the strings.

contains

left  as   xsd:string ,   right  as   xsd:string

result  as   xsd:boolean

 

ends-with

left  as   xsd:string ,   right  as   xsd:string

result  as   xsd:boolean

 

IF  ( )

test  as   xsd:boolean ,   thenValue  as   xsd:string   [] ,   elseValue  as   xsd:string   []

result  as   xsd:string   []

This function could be used over both lists and single values as input parameters.

Caution

All of the three input parameters are evaluated. That is why you have to define a semantically correct expression for all of the parameters that could be evaluated at runtime.

Based on the returned Boolean value from the evaluation of the first input parameter (the Boolean condition), the function returns an xsd:string representing the value received after the evaluation of either the second or the third input parameter.

lower-case

value  as   xsd:string ,   locale  as   xsd:string

result  as   xsd:string

Converts the string argument to lowercase using the rules of the given locale.

matches

left  as   xsd:string ,   right  as   xsd:string

result  as   xsd:boolean

Returns true if <left> matches the regular expression supplied as <pattern>

replace

value  as   xsd:string ,   pattern  as   xsd:string ,   replacement  as   xsd:string

result  as   xsd:string

Replaces each pattern from the src with the given replacement

starts-with

left  as   xsd:string ,   right  as   xsd:string

result  as   xsd:boolean

Returns an xs:boolean indicating whether or not the value of <left> starts with <right>.

string

value  as   xsd:boolean

result  as   xsd:string

Cast from boolean

string

value  as   xsd:dateTime

result  as   xsd:string

Cast from date-time

string

value  as   xsd:long

result  as   xsd:string

Cast from finite-integer

string

value  as   xsd:double

result  as   xsd:string

Cast from fuzzy-real

string

value  as   xsd:integer

result  as   xsd:string

Cast from infinite-real

string

value  as   xsd:decimal

result  as   xsd:string

Cast from precise-real

string-equal  ( = )

left  as   xsd:string ,   right  as   xsd:string

result  as   xsd:boolean

Returns true if and only if the value of left is equal to the value of right. Returns false otherwise.

string-greater-equal  ( >= )

left  as   xsd:string ,   right  as   xsd:string

result  as   xsd:boolean

Returns true if and only if left is greater than or equal to right. Returns false otherwise.

string-greater-than  ( > )

left  as   xsd:string ,   right  as   xsd:string

result  as   xsd:boolean

Returns true if and only if left is greater than right. Returns false otherwise.

string-join

values  as   xsd:string   [] ,   separator  as   xsd:string

result  as   xsd:string

Returns a string created by concatenating the members of the list using the second argument as a separator. If the value of <separator> is the zero-length string, then the list elements are concatenated without a separator.

string-length

value  as   xsd:string

result  as   xsd:int

Returns the length of the specified string.

string-less-equal  ( <= )

left  as   xsd:string ,   right  as   xsd:string

result  as   xsd:boolean

Returns true if and only if left is less than or equal to right. Returns false otherwise.

string-less-than  ( < )

left  as   xsd:string ,   right  as   xsd:string

result  as   xsd:boolean

Returns true if and only if left is less than right. Returns false otherwise.

string-not-equal  ( != )

left  as   xsd:string ,   right  as   xsd:string

result  as   xsd:boolean

Returns true if and only if the value of left is not equal to the value of right. Returns false otherwise.

substring

value  as   xsd:string ,   location  as   xsd:int ,   length  as   xsd:int

result  as   xsd:string

Returns the portion of the value of <value> beginning at the position indicated by the value of <location> and continuing for the number of characters indicated by the value of <length>

tokenize

input  as   xsd:string ,   pattern  as   xsd:string

result  as   xsd:string   []

This function breaks the <input> string into a sequence of strings, treating any substring that matches <pattern> as a separator. The separators themselves are not returned.

translate

arg  as   xsd:string ,   mapString  as   xsd:string ,   transString  as   xsd:string

result  as   xsd:string

Returns the value of <arg> modified so that every character in the value of <arg> that occurs at some position N in the value of <mapString> has been replaced by the character that occurs at position N in the value of <transString>.

upper-case

value  as   xsd:string ,   locale  as   xsd:string

result  as   xsd:string

Converts the string argument to uppercase using the rules of the given locale.