我刚刚开始研究定义状态机,SCXML看起来很有吸引力,尤其是Apache Commons SCXML for Java。显然我可以验证 XML(使用适当的 XSD)。
但是,我显然找不到任何方法来验证定义的状态机是否有效(没有死胡同,没有无法访问的状态等)。
但是如何在执行之前验证已定义的状态机?特别是我对可以集成到构建工具链中的工具(即从命令行)感兴趣。
来自uSCXML发行版的 uscxml-analyze 工具将做到这一点:
$ uscxml-browser -c ../../test/w3c/ecma/test144.scxml
Run Code Online (Sandbox Code Playgroud)
它检查一大堆问题:
uSCXML 解释器还将在解释过程中检查宏步骤中的循环。