Conformidad con SCXML
Modelos de datos compatibles
Qt SCXML admite los siguientes modelos de datos:
- modelo de datos null, según se describe en Especificación SCXML - B.1 El modelo de datos null
- modelo de datos ECMAScript, tal como se describe en Especificación SCXML - B.2 El modelo de datos ECMAScript
- Modelo de datos C++, tal y como se describe en la documentación de QScxmlCppDataModel
Elementos y atributos compatibles
La implementación de Qt SCXML es compatible con SCXML, con algunas excepciones:
- Los datos de eventos (
_event.data) se implementan como un QVariant. Si se pasan parámetros a<send>, el QVariant contiene un QVariantMap, por lo que no se admiten múltiples parámetros con el mismo nombre. - No existe una representación "en bruto" de un evento.
- No se admite el procesador básico de E/S de eventos http (opcional).
- El contenido de una etiqueta
<script>y de una etiqueta<data>debe ser válido para el modelo de datos elegido. Así, a modo de ejemplo El contenido XML dentro de <data> no es compatible. Sin embargo, el modelo de datos ECMAScript sí admite datos en formato JSON. - El único servicio que puede instanciarse con
<invoke>es otra máquina de estado SCXML. - Para que el comportamiento de las máquinas de estado creadas dinámicamente y las máquinas de estado compiladas sea el mismo, no se admiten los atributos typeexpr y srcexpr. Además, si se utiliza una etiqueta
<content>dentro de una etiqueta<invoke>, ese contenido debe ser XML. En concreto, no se admite la creación dinámica de SCXML, por ejemplo concatenando cadenas con el modelo de datos ECMAScript.
Qt SCXML Extensiones
La implementación de Qt SCXML amplía SCXML de las siguientes maneras:
- Si el evento es un evento de error,
_event.errorMessagecontendrá una descripción más detallada del error.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. 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.