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
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
QVariantholds 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.errorMessagewill contain a more detailed description of the error.