SCXMLコンプライアンス
対応データモデル
Qt SCXML は以下のデータモデルをサポートしています:
- NULL データモデル。SCXML 仕様書 B.1 NULL データモデルに記述されています。
- SCXML Specification - B.2 The ECMAScript Data Modelに記述されている ECMAScript データモデル。
- QScxmlCppDataModel ドキュメントに記述されている C++ データモデル
サポートされる要素と属性
Qt SCXML の実装は、いくつかの例外を除いて SCXML に準拠しています:
- イベントデータ(
_event.data
)はQVariant として実装される。パラメータが<send>
に渡される場合、QVariant はQVariantMap を保持するので、同じ名前の複数のパラメータはサポートされない。 - イベントの「生の」表現はない。
- (オプションの)基本的な http イベント I/O プロセッサーはサポー トされていない。
<script>
タグと<data>
タグの内容は、選択されたデータモデルで有効でなければな らない。つまり、例として<data>内のXMLコンテンツはサポートされません。しかし、ECMAScriptデータモデルはJSON形式のデータをサポートする。<invoke>
でインスタンス化できる唯一のサービスは別の SCXML ステートマシンです。- 動的に作成されたステートマシンとコンパイルされたステートマシンの動作を同じに保つために、typeexpr属性とsrcexpr属性はサポートされていません。さらに、
<content>
タグが<invoke>
タグの内部で使用されている場合、その内容は XML でなければなりません。具体的には、例えば ECMAScript データモデルと文字列を連結して SCXML を動的に作成することはサポートされていません。
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.