如何验证我的SCXML定义了一个有效的状态机?

4
我刚开始研究定义状态机,SCXML看起来很有吸引力,尤其是Apache Commons SCXML for Java。显然,我可以使用适当的XSD验证XML。
然而,我无法找到任何方法来验证已定义的状态机是否有效(无死路,无不可达状态等)。
但是,在执行之前如何验证已定义的状态机呢? 特别是我对可以集成到构建工具链中的工具感兴趣(即从命令行)。
1个回答

6

uscxml-analyze工具来自uSCXML发行版,可以实现这一点:

$ uscxml-browser -c ../../test/w3c/ecma/test144.scxml

它检查了一大堆 问题
  • 必需属性
  • 有效的父元素
  • 有效的默认历史配置
  • 有效的初始转换
  • 有效的初始属性
  • 不可达状态层次结构
  • 状态 id 属性的唯一性
  • 转换的有效目标
  • 多余/不可选的转换
  • 多余的历史元素
  • 目标集的合法配置
  • 一堆属性/元素组合约束
  • 数据模型表达式的有效语法

在解释期间,uSCXML 解释器还会检查宏步骤中是否存在循环。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接