diff options
Diffstat (limited to 'src/scxml/doc/qtscxml-scxml-compliance.qdoc')
-rw-r--r-- | src/scxml/doc/qtscxml-scxml-compliance.qdoc | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/src/scxml/doc/qtscxml-scxml-compliance.qdoc b/src/scxml/doc/qtscxml-scxml-compliance.qdoc new file mode 100644 index 0000000..8d23647 --- /dev/null +++ b/src/scxml/doc/qtscxml-scxml-compliance.qdoc @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \page qtscxml-scxml-compliance.html + \title SCXML Compliance + \brief Describes the compliance of the Qt SCXML implementation with the + SCXML specification. + + \section1 Supported Data Models + + Qt SCXML supports the following data models: + + \list + \li null data model, as described in B.1 of the \l {SCXML specification} + \li ECMAScript data model, as described in B.2 of the + \l {SCXML specification} + \li C++ data model, as described in the QScxmlCppDataModel documentation + \endlist + + \section1 Supported Elements and Attributes + + The Qt SCXML implementation is SCXML compliant, with a few exceptions: + + \list + \li Event data (\c _event.data) is implemented as a QVariant. If parameters + are passed to \c <send>, the QVariant holds a QVariantMap, so multiple + parameters with the same name are not supported. + \li There is no "raw" representation of an event. + \li The (optional) basic http event I/O processor is not supported. + \li The contents of a \c <script> tag and a \c <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. + \li The only service that can be instantiated with \c <invoke> is another + SCXML state machine. + \li To keep the behavior of dynamically created state machines and compiled + state machines the same, the \e typeexpr and \e srcexpr attributes are + not supported. Moreover, if a \c <content> tag is + used inside an \c <invoke> tag, that content must be XML. Specifically, + dynamically creating SCXML, for example by concatenating strings with + the ECMAScript data model, is not supported. + \endlist + + \section1 Qt SCXML Extensions + + The Qt SCXML implementation extends SCXML in the following ways: + + \list + \li For communication purposes, the \c <send> tag supports an extra + value \c "qt:signal" accepted by the attribute \c type. + The generated state machine or the state machine that has loaded + the SCXML file dynamically will contain the corresponding + signal, the name of which will be equal to the value of the + \e event attribute inside the \c <send> tag. + All of the \c <param> children will be placed inside the + QMap<QString, QVariant> map, and this map will be passed as a + QVariant argument of the specified signal. + \li If the event is an error event, \c _event.errorMessage will contain a + more detailed description of the error. + \endlist +*/ |