summaryrefslogtreecommitdiffstats
path: root/src/scxml/doc/qtscxml-scxml-compliance.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'src/scxml/doc/qtscxml-scxml-compliance.qdoc')
-rw-r--r--src/scxml/doc/qtscxml-scxml-compliance.qdoc86
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
+*/