Sur cette page

Conformité SCXML

Modèles de données pris en charge

Qt SCXML prend en charge les modèles de données suivants :

Éléments et attributs pris en charge

L'implémentation de « Qt SCXML » est conforme à SCXML, à quelques exceptions près :

  • Les données d’événement (_event.data) sont implémentées sous la forme d’un objet « QVariant ». Si des paramètres sont transmis à ` <send>`, la variable ` QVariant ` contient un objet ` QVariantMap` ; par conséquent, les paramètres multiples portant le même nom ne sont pas pris en charge.
  • Il n’existe pas de représentation « brute » d’un événement.
  • Le processeur d’E/S d’événements HTTP de base (facultatif) n’est pas pris en charge.
  • Le contenu d’une balise « <script> » et d’une balise « <data> » doit être valide pour le modèle de données choisi. Ainsi, à titre d’exemple : le contenu XML à l’intérieur de <data> n’est pas pris en charge. Cependant, le modèle de données ECMAScript prend en charge les données au format JSON.
  • Le seul service pouvant être instancié avec ` <invoke> ` est une autre machine à états SCXML.
  • Afin de garantir la cohérence entre le comportement des machines à états créées dynamiquement et celui des machines à états compilées, les attributs `typeexpr` et `srcexpr` ne sont pas pris en charge. De plus, si une balise <content> est utilisée à l’intérieur d’une balise <invoke>, ce contenu doit être au format XML. Plus précisément, la création dynamique de SCXML, par exemple en concaténant des chaînes de caractères avec le modèle de données ECMAScript, n’est pas prise en charge.

Qt SCXML Extensions

L’implémentation de ` Qt SCXML ` étend SCXML de la manière suivante :

  • Si l’événement est un événement d’erreur, _event.errorMessage contiendra une description plus détaillée de l’erreur.

© 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.