<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- qtscxml-scxml-compliance.qdoc --> <title>SCXML Compliance | Qt SCXML 5.12.6</title> <link rel="stylesheet" type="text/css" href="style/offline-simple.css" /> <script type="text/javascript"> document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css"); // loading style sheet breaks anchors that were jumped to before // so force jumping to anchor again setTimeout(function() { var anchor = location.hash; // need to jump to different anchor first (e.g. none) location.hash = "#"; setTimeout(function() { location.hash = anchor; }, 0); }, 0); </script> </head> <body> <div class="header" id="qtdocheader"> <div class="main"> <div class="main-rounded"> <div class="navigationbar"> <table><tr> <td >Qt 5.12</td><td ><a href="qtscxml-index.html">Qt SCXML</a></td><td >SCXML Compliance</td></tr></table><table class="buildversion"><tr> <td id="buildversion" width="100%" align="right"><a href="qtscxml-index.html">Qt 5.12.6 Reference Documentation</a></td> </tr></table> </div> </div> <div class="content"> <div class="line"> <div class="content mainContent"> <div class="sidebar"> <div class="toc"> <h3><a name="toc">Contents</a></h3> <ul> <li class="level1"><a href="#supported-data-models">Supported Data Models</a></li> <li class="level1"><a href="#supported-elements-and-attributes">Supported Elements and Attributes</a></li> <li class="level1"><a href="#qt-scxml-extensions">Qt SCXML Extensions</a></li> </ul> </div> <div class="sidebar-content" id="sidebar-content"></div></div> <h1 class="title">SCXML Compliance</h1> <span class="subtitle"></span> <!-- $$$qtscxml-scxml-compliance.html-description --> <div class="descr"> <a name="details"></a> <a name="supported-data-models"></a> <h2 id="supported-data-models">Supported Data Models</h2> <p>Qt SCXML supports the following data models:</p> <ul> <li>null data model, as described in <a href="https://www.w3.org/TR/scxml/#minimal-profile">SCXML Specification - B.1 The Null Data Model</a></li> <li>ECMAScript data model, as described in <a href="https://www.w3.org/TR/scxml/#ecma-profile">SCXML Specification - B.2 The ECMAScript Data Model</a></li> <li>C++ data model, as described in the <a href="qscxmlcppdatamodel.html">QScxmlCppDataModel</a> documentation</li> </ul> <a name="supported-elements-and-attributes"></a> <h2 id="supported-elements-and-attributes">Supported Elements and Attributes</h2> <p>The Qt SCXML implementation is SCXML compliant, with a few exceptions:</p> <ul> <li>Event data (<code>_event.data</code>) is implemented as a QVariant. If parameters are passed to <code><send></code>, the QVariant holds a QVariantMap, so multiple parameters with the same name are not supported.</li> <li>There is no "raw" representation of an event.</li> <li>The (optional) basic http event I/O processor is not supported.</li> <li>The contents of a <code><script></code> tag and a <code><data></code> 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> <li>The only service that can be instantiated with <code><invoke></code> is another SCXML state machine.</li> <li>To keep the behavior of dynamically created state machines and compiled state machines the same, the <i>typeexpr</i> and <i>srcexpr</i> attributes are not supported. Moreover, if a <code><content></code> tag is used inside an <code><invoke></code> tag, that content must be XML. Specifically, dynamically creating SCXML, for example by concatenating strings with the ECMAScript data model, is not supported.</li> </ul> <a name="qt-scxml-extensions"></a> <h2 id="qt-scxml-extensions">Qt SCXML Extensions</h2> <p>The Qt SCXML implementation extends SCXML in the following ways:</p> <ul> <li>If the event is an error event, <code>_event.errorMessage</code> will contain a more detailed description of the error.</li> </ul> </div> <!-- @@@qtscxml-scxml-compliance.html --> </div> </div> </div> </div> </div> <div class="footer"> <p> <acronym title="Copyright">©</acronym> 2019 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners.<br/> The documentation provided herein is licensed under the terms of the <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation License version 1.3</a> as published by the Free Software Foundation.<br/> Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. </p> </div> </body> </html>