这篇文档描述了SCXML,或者说是“状态图可扩展标记语言”。SCXML基于CCXML和Harel State Tables为状态机提供了一个一般性的可执行环境,
概述
这篇文档描述的SCXML,是一种基于事件的状态机语言。它是CCXML和Harel State Tables 结合的产物。CCXML是一种基于事件的状态机语言,被设计用来在语音应用中支持通话控制。CCXML1.0规范定义了一个状态机和事件处理语法以及一系列的通话控制元素。Harel State Table由David Harel于1987年提出的一种状态机记号,后来UML中的状态机沿用了这些记号。Harel State Tables 提供了一个简洁、语义良好和功能强大的控制结构。这篇文章就是使用XML语法和Harel State Table语义来描述CCXML中状态和事件转移的逻辑概念
核心结构
[这部分是非正式的]
介绍
基础的状态机概念
组合状态
并行状态
初始化,终止和历史状态
转移类型
scxml
[这部分是规范的]
文档的顶层元素,携带了版本信息。一个状态机由和他的孩子元素共同组成。
提示:任何时候只有一个孩子是处于活跃状态。
名字
必须
约束
类型
默认值
有效值
描述
inital
False
None
Id引用
None
初始状态的id值,如果没有指定,默认的初始状态是文档中第一个孩子状态
name
False
None
名称记号
None
任何有效的名称记号 状态机的名字
xmlns
True
None
URI
None
version
True
None
数字
None
必须是:“1.0”
datamodel
False
None
名称记号
“null”,“ecmascript”,”xpath”,或者实现者定义的值
表示状态机中的数据模型
binding
False
None
Enum