SCXML Compliance¶
Describes the compliance of the Qt SCXML implementation with the SCXML specification.
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.