Supported Data Models▲
Qt SCXML supports the following data models:
-
null data model, as described in SCXML Specification - B.1 The Null Data Model
-
ECMAScript data model, as described in SCXML Specification - B.2 The ECMAScript Data Model
-
C++ data model, as described in the QScxmlCppDataModel documentation
Supported Elements and Attributes▲
The Qt SCXML implementation is SCXML compliant, with a few exceptions:
-
Event data (_event.data) is implemented as a QVariant. If parameters are passed to <send>, the QVariant holds a QVariantMap, so multiple parameters with the same name are not supported.
-
There is no "raw" representation of an event.
-
The (optional) basic http event I/O processor is not supported.
-
The contents of a <script> tag and a <data> tag must be valid for the chosen data model. So, as an example: XML content inside <data> is not supported. However, the ECMAScript data model does support data in JSON format.
-
The only service that can be instantiated with <invoke> is another SCXML state machine.
-
To keep the behavior of dynamically created state machines and compiled state machines the same, the typeexpr and srcexpr attributes are not supported. Moreover, if a <content> tag is used inside an <invoke> tag, that content must be XML. Specifically, dynamically creating SCXML, for example by concatenating strings with the ECMAScript data model, is not supported.
Qt SCXML Extensions▲
The Qt SCXML implementation extends SCXML in the following ways:
-
If the event is an error event, _event.errorMessage will contain a more detailed description of the error.