State Chart XML (SCXML) 状态机规范

摘要

这篇文档描述了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 必须是:“http://w3.org/005/07/scxml”
version True None 数字 None 必须是:“1.0”
datamodel False None 名称记号 自定义 “null”,“ecmascript”,”xpath”,或者实现者定义的值 表示状态机中的数据模型
binding False None Enum early “early”,”late” 指明数据绑定的时间

孩子元素

名字名字 说明 出现次数
一个组合状态或者原子状态 0…*
一个并行状态 0…*
一个顶层的终止状态,当状态机达到这个状态必须终止 0…*
定义了部分或者所有的数据模型 0…1

你可能感兴趣的:(Apache,SCXML)