XLANG-s Expressions
An expression is a sequence of operators and operands. This topic illustrates the syntax that XLANG/s supports for various expressions.
Basic Expressions
The following code shows the syntax for basic expressions:
primary-expression:
literal
enum-constant
variable-reference
invocation-expression
message-field-reference
message-property-reference
message-part-property-reference
correlation-property-reference
port-property-reference
service-property-reference
service-link-property-reference
message-part-reference
parenthesized-expression
object-reference
checked-expression
unchecked-expression
intrinsic-expression
xpath-expression
exists-expression
enum-constant:
enum-type-name.enum-member
enum-type-name:
type-name
enum-member:
identifier
parenthesized-expression:
(expression)
checked-expression:
checked(expression)
checked(statement)
unchecked-expression:
unchecked(expression)
unchecked(statement)
unary-expression:
primary-expression
+ unary-expression
- unary-expression
! unary-expression
~ unary-expression
cast-expression
property-reference exists
cast-expression:
(type-name) unary-expression
multiplicative-expression:
exists-expression
multiplicative-expression * unary-expression
multiplicative-expression / unary-expression
multiplicative-expression % unary-expression
additive-expression:
multiplicative-expression
additive-expression + multiplicative-expression
additive-expression – multiplicative-expression
shift-expression:
additive-expression
shift-expression << additive-expression
shift-expression >> additive-expression
relational-expression:
shift-expression
relational-expression < shift-expression
relational-expression > shift-expression
relational-expression <= shift-expression
relational-expression >= shift-expression
equality-expression:
relational-expression
equality-expression == relational-expression
equality-expression != relational-expression
and-expression:
equality-expression
and-expression & equality-expression
exclusive-or-expression:
and-expression
exclusive-or-expression ^ and-expression
inclusive-or-expression:
exclusive-or-expression
inclusive-or-expression | exclusive-or-expression
conditional-and-expression:
inclusive-or-expression
conditional-and-expression && inclusive-or-expression
conditional-or-expression:
conditional-and-expression
conditional-or-expression || conditional-and-expression
conditional-expression:
conditional-or-expression
exists-expression:
property-reference exists
property-reference exists message-reference
property-reference exists message-part-reference
xpath-expression:
xpath(message-part-reference, string-expression)
xpath(string-expression)
intrinsic-expression:
succeeded(identifier)
assignment-expression:
variable-assignment
object-assignment
variable-assignment:
variable-reference = conditional-expression
object-assignment:
object-reference = object-creation-expression
object-reference = conditional-expression
object-reference = invocation-expression
object-creation-expression:
new class-name(method-argument-list) //method-argument-list is optional
new class-name[integer-expression]
invocation-expression:
object-reference.method-name(method-argument-list) //method-argument-list is optional
Service and Method Arguments
The following code shows the syntax for service and method arguments:
service-argument-list:
service-argument
service-argument-list, service-argument
service-argument:
param-direction message-reference //param-direction is optional
param-direction variable-reference //param-direction is optional
param-direction object-name //param-direction is optional
correlation-reference
service-link-name
port-name
conditional-expression
method-argument-list:
method-argument
method-argument-list, method-argument
method-argument:
message-reference
param-direction variable-reference //param-direction is optional
param-direction object-name //param-direction is optional
conditional-expression
param-direction message-part-reference //param-direction is optional
param-direction message-field-reference //param-direction is optional
Top-Level Expressions
The following code shows the syntax for top-level expressions:
expression:
conditional-expression
assignment-expression
invocation-expression
constant-expression:
conditional-expression
boolean-expression:
conditional-expression
integer-expression:
conditional-expression
date-time-expression:
conditional-expression
time-span--expression:
conditional-expression
string-expression:
conditional-expression
See Also
XLANG-s Data Types
XLANG-s Statements
XLANG-s Variables and Operators
XLANG-s Reserved Words
XLANG-s to BPEL4WS Type Conversions