SCXML 合规性

支持的数据模型

Qt SCXML SCXML 支持以下数据模型:

支持的元素和属性

Qt SCXML 的实现与 SCXML 兼容,但有几处例外:

  • 事件数据 (_event.data) 以QVariant 的形式实现。如果向<send> 传递参数,QVariant 会保存一个QVariantMap ,因此不支持多个同名参数。
  • 事件没有 "原始 "表示法。
  • 不支持基本 http 事件 I/O 处理器(可选)。
  • <script> 标签和<data> 标签的内容必须对所选数据模型有效。因此,举例来说不支持 <data> 内的 XML 内容。不过,ECMAScript 数据模型确实支持 JSON 格式的数据。
  • 唯一能通过<invoke> 实例化的服务是另一个 SCXML 状态机。
  • 为了保持动态创建的状态机和编译状态机的行为一致,不支持typeexprsrcexpr属性。此外,如果在<invoke> 标签内使用<content> 标签,该内容必须是 XML。具体来说,不支持动态创建 SCXML,例如通过连接字符串与 ECMAScript 数据模型。

Qt SCXML 扩展

Qt SCXML 实现以下列方式扩展了 SCXML:

  • 如果事件是错误事件,_event.errorMessage 将包含更详细的错误描述。

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