scxml转换目标如何工作

scxml转换目标如何工作,scxml,Scxml,我试图理解scxml转换目标状态集。下面是我的一些示例代码: <parallel id="p"> <state id="A" initial="A1"> <state id="A1"> <transition event="test" target="B2" /> </state> <state id="A2" /> </state

我试图理解scxml转换目标状态集。下面是我的一些示例代码:

<parallel id="p">
    <state id="A" initial="A1">
        <state id="A1">
            <transition event="test" target="B2" />
        </state>
        <state id="A2" />
    </state>
    <state id="B" initial="B1">
        <state id="B1" />
        <state id="B2" />
    </state>
    <state id="C" initial="C1">
        <state id="C1" />
        <state id="C2" />
    </state>
</parallel>

如果p、A、A1、B、B1、C和C2当前处于激活状态。现在事件“test”即将到来,因此将发生到目标状态“b2”的转换 1) 基于状态图XML(SCXML):用于控制抽象的状态机表示法的第3.13节,祖先状态A和P将受到影响。Al状态将退出,然后重新输入P,或者仅A1和A退出?
2) 如果在P退出并重新进入所有状态,则设置P、A、A1、B、B2、C和C1为激活状态,或设置P、A、A1、B、B2、C和C2为激活状态?(因为c2在转换“测试”发生之前处于活动状态)

退出集由所有活动状态组成,这些状态是源状态和目标状态LCCA的正确后代。这意味着所有状态都将退出,包括P,因为LCCA必须是a,而不是a

入口集由转换的完整目标集的所有成员组成,一旦退出集中的状态已退出,这些成员将不会处于活动状态

因为退出后没有活动状态,所以条目集是B2,在转换的目标中指定,以及两个默认状态A1和C1。没有关于退出前哪些状态处于活动状态的“内存”

所以“p,A,A1,B,B2,C和C1”是正确的答案