Message Processing

The mp (Message Processing) execution engine provides access to the current request and response (up to the previous command) using standard XPath queries in a pseudo document with top-level element <root>, henceforth called the mp document.

Whenever an expression (e.g. an XPath from a test or select attribute) is evaluated, it is done so against the mp document. When processing starts, the mp document provides access to the XML request. After processing a command, its response is available for all successive commands.

CRM.interface includes elements for flow control and expression evaluation that are loosely based on XSLT, but naturally are implemented separately. All mp commands reside in their own namespace.

<mp:choose>

Provides multiple condition testing in conjunction with the <mp:when> and <mp:otherwise> elements.

<mp:choose />

Attributes

(no attributes)

Contents

<mp:when> + <mp:otherwise>?

May occur in

<request>

(any table)

Remarks

none

<mp:for-each>

<mp:for-each> allows repeated execution of a command.

<mp:for-each>

Attributes

select

Contents

(any command)

May occur in

<request>

Remarks

none

<mp:if>

Allows conditional XML fragments.

<mp:if />

Attributes

test

Contents

(any command)

(any field)

May occur in

<request>

(any table)

Remarks

none

<mp:otherwise>

Provides multiple condition testing in conjunction with the <mp:choose> and <mp:when> elements.

<mp:otherwise />

Attributes

(no attributes)

Contents

(any command)

(any field)

May occur in

<mp:choose>

Remarks

none

<mp:value-of>

Provides for expression evaluation, variable resolution, and XPath selection.

<mp:value-of />

Attributes

eval resolve select

Contents

(no content)

May occur in

(any field)

(any mp content)

Remarks

none

<mp:when>

Provides multiple condition testing in conjunction with the <mp:choose>and <mp:otherwise> elements.

<mp:when />

Attributes

test

Contents

(any command)

(any field)

May occur in

<mp:when>

Remarks

none