XLANG-s to BPEL4WS Type Conversions

The following tables detail the conversions between various XLANG/s constructs and BPEL4WS constructs.

Caution

XPath 1.1 does not support numbers in exponential or double formats. Literal values in these formats in XLANG/s orchestrations are exported to BPEL4WS using the %f format, and a loss of precision might result.

Literals (if the literal is part of an expression)

XLANG/s BPEL4WS
String, character XPath string
Integer, real XPath number
Boolean "true", "false" XPath true(), false() functions

Literals (standalone assignment)

XLANG/s BPEL4WS
Literal constant XSD equivalent

Variables

XLANG/s BPEL4WS
Variable reference bpws:getContainerData(%varName%, part, %locationPath%)
Message reference (.NET type) bpws:getContainerData(%msgName%, part, %locationPath%)
Message-part reference bpws:getContainerData(%msgName%, %locationPath%)
Distinguished-field reference bpws:getContainerData(%msgName%, %partName%, %locationPath%)
Message data-property reference bpws:getContainerProperty(%msgName%, %propertyQName%)

Operators

XLANG/s BPEL4WS
Unary + Ignored
Unary - XPath unary -
Unary ! XPath not() function
Binary &&, || XPath 'and', 'or' operators
Binary ==, !=, <=, <, >=, > XPath '=', '! =', '<=', '<', '>=', '>' operators
Binary +, -, *, % with both integral operands XPath '+', '-', '*', 'mod' operators

XLANG/s constructs that are disallowed in BPEL4WS

  • Message context-property reference

  • Service-property reference

  • Port-property reference

  • Service link-property reference

  • Unary – with non-integral type

  • Unary ~

  • Cast operator

  • Binary / with integral operands

  • Binary +, -, *, %, / with non-integral operands

  • Binary <=, <, >=, > with non-string operands

  • Bitwise operators &, ^, |

  • Shift operators <<, >>

  • Checked expression

  • Intrinsic expression

  • Pre- and post- increment and decrement ++, --

  • Object invocation (with our without out and/or ref params)

  • 'new' operator