2

如何根据https://www.w3.org/TR/scxml/#LegalStateConfigurations定义“合法状态配置” 。我想指定一个目标集(!),而不是单个目标。目标集可以定义在and元素的initial属性中,也可以定义在元素的属性中。但我似乎在上述属性中找不到任何表示多个状态的例子。它们必须是空间分隔的吗?还是根据 JavaScript 的数组表示法?还是对象符号?还是逗号分隔?感谢您的任何提示。<scxml><state>target<transition>

但无论如何,我想知道我在标准中遗漏了什么,以确保独立于解释器。

这是一个小测试代码:

<scxml xmlns="http://www.w3.org/2005/07/scxml" version="1.0">
    <initial>
        <transition target="State_3_2 State_4_2" />
    </initial>
    <parallel id="Parallel_1">
        <history id="hist" type="deep">
            <transition target="State_1_2 State_2_2" />
        </history>
        <state id="State_1">
            <state id="State_1_1" />
            <state id="State_1_2" />
        </state>
        <state id="State_2">
            <state id="State_2_1" />
            <state id="State_2_2" />
        </state>
    </parallel>
    <parallel id="Parallel_2">
        <transition target="hist" event="switch_hist" />
        <state id="State_3">
            <state id="State_3_1" />
            <state id="State_3_2" />
        </state>
        <state id="State_4">
            <state id="State_4_1" />
            <state id="State_4_2" />
        </state>
    </parallel>
</scxml>

测试:在进入时,状态State_3_2State_4_2必须是活动的(initial元素正确执行),在事件之后switch_hist,状态State_1_2State_2_2必须是活动的(transition属性正确执行)。如果有人有除 SCION 之外的所有解释器,你可以在那里测试吗?前 4 行的替代语法也替换为

<scxml xmlns="http://www.w3.org/2005/07/scxml" version="1.0" initial="State_3_2 State_4_2">

谢谢你。

4

1 回答 1

1

它是空间分隔的。您可以在SCXML 测试测试套件中看到一个这样的示例。例如test364的第 9 行。

希望这可以帮助。谢谢。

于 2018-04-08T05:23:22.440 回答