SCXML-Konformität

Unterstützte Datenmodelle

Qt SCXML unterstützt die folgenden Datenmodelle:

Unterstützte Elemente und Attribute

Die Implementierung von Qt SCXML ist bis auf wenige Ausnahmen SCXML-konform:

  • Ereignisdaten (_event.data) sind als QVariant implementiert. Wenn Parameter an <send> übergeben werden, enthält QVariant ein QVariantMap, so dass mehrere Parameter mit demselben Namen nicht unterstützt werden.
  • Es gibt keine "rohe" Darstellung eines Ereignisses.
  • Der (optionale) grundlegende http-Ereignis-E/A-Prozessor wird nicht unterstützt.
  • Der Inhalt eines <script> -Tags und eines <data> -Tags muss für das gewählte Datenmodell gültig sein. Ein Beispiel: XML-Inhalte innerhalb von <data> werden nicht unterstützt. Das ECMAScript-Datenmodell unterstützt jedoch Daten im JSON-Format.
  • Der einzige Dienst, der mit <invoke> instanziiert werden kann, ist ein weiterer SCXML-Zustandsautomat.
  • Um das Verhalten von dynamisch erstellten Zustandsautomaten und kompilierten Zustandsautomaten gleich zu halten, werden die Attribute typeexpr und srcexpr nicht unterstützt. Wenn außerdem ein <content> -Tag innerhalb eines <invoke> -Tags verwendet wird, muss dieser Inhalt XML sein. Insbesondere wird die dynamische Erstellung von SCXML, z. B. durch Verkettung von Zeichenketten mit dem ECMAScript-Datenmodell, nicht unterstützt.

Qt SCXML Erweiterungen

Die Implementierung von Qt SCXML erweitert SCXML in folgender Weise:

  • Wenn es sich um ein Fehlerereignis handelt, enthält _event.errorMessage eine ausführlichere Beschreibung des Fehlers.

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