Expressions were evaluated only once per iteration, this means variables modified within the loop were not re-evaluated. Moved dynamic content replacement from doExecute (evaluates only once on start) to checkCondition (evaluates on each loop).
Moved variable extraction to validateMessage function. This allows to derive from ReceiveMessageAction and do enhanced message validation before extraction and basic validation. Does not change functionality but allows better control in derived classes.
Support of validation matcher expressions in message validation. It is now possible to use validation matchers in xml validation expressions like the following example:

<validate path="/key/value" value="@equalsIgnoreCase(${variable})@"/>
Enhanced debug output on XML validation error. Now all validation errors are presented in the debug output. This allows fixing all reported validation problems after one test execution.
Defined complex types in testcase (core, ws) schemas for all test case actions, like it is already done for send and receive action. Defining complex types allows deriving and defining extended types, like it is already implemented for core:send and ws:send. I use an extended type of ws:send which requires derivation of ws:send which is currently not defined as complex type. All other action types are changed as well for future enhancement possibilities.

This commit does not change functionality in any way, but allows easy extensibility of schema actions.
Use test context when checking conditions for iterable test action containers
Added unit tests on validation matcher support with element expression validation
Use StringBuilder and minor cosmetic changes
Temporary revert of XSD complex type changes
Merge changes stonator/master pull request
Use complex types in testcase XSD for better extendability and customization