Conditional xeme expressions return a boolean as the value of their outgoing workitem. They are cataloged as 'xeme expressions' as they care about evaluating XML fragments (often emitted by regular xeme expressions).
Will return 'true' if the content of the expression evaluates to null.
<sequence>
<if>
<is-null>
<participant ref="alpha" />
</is-null>
<!-- then -->
<participant ref="bravo" />
<!-- else -->
<participant ref="charly" />
</if>
<sequence>
In this example, the flow will certainly go to 'bravo' as the participant expression making up the content of 'is-null' is not supposed to yield any value for the field '__result__'. Of course, if the participant 'alpha' had set the field '__result__' to something, the flow would have gone to 'charly'.
Another name for this expression would perhaps have been 'is-xml' or 'is-xml-fragment'.
<sequence>
<!--
all the 'print' expressions in this example will echo
'true' to the stdout of the engine
-->
<set variable="v0">
<list>a, b, c, d</list>
</set>
<set variable="v1">
<list>
a
<list>1, 2, 3</list>
c
</list>
</set>
<print><is-list>${v1}</is-list></print>
<print><is-list><v>v1</v></is-list></print>
<set variable="v2">
<q>
a
<list>1, 2, 3</list>
c
</q>
</set>
<print><is-list>${v2}</is-list></print>
<set field="f1">
<a>
<list>
<string>nada</string>
<int>2</int>
</list>
</a>
</set>
<print><is-list><f>f1</f></is-list></print>
<print><is-list>${field:f1}</is-list></print>
</sequence>