目标集的SCXML表示法

时间:2018-04-07 19:08:46

标签: scxml

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

但无论如何我想知道,我在标准中错过了什么,以确保独立于翻译。

这是一个小测试代码:

<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_2并且State_2_2必须处于活动状态(transition属性正确执行)。 如果有人拥有除SCION之外的其他翻译,你能在那里测试一下吗? 另外的语法是将前4行替换为

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

谢谢。

1 个答案:

答案 0 :(得分:1)

它是空间分隔的。您可以在SCXML test test suite中看到相关示例。例如test364的第9行。

希望这会有所帮助。感谢。