SCXML是否支持<transition>块中的条件目标?

时间:2016-03-09 16:52:15

标签: transitions scxml apache-commons-scxml

我想在SCXML中实现这种条件转换

current_state = s01  
if (Math.random() < 50) go to state s02  
  else go to state s03  

SCXML是否支持这种条件目标?
要将它放入SCXML语言中,是否可能与以下代码段等效?

<transition event="event_1">
        <if cond="import java.util.Random; Math.abs(new Random().nextInt(100)) gt 50">
            <target="s02"/>
            <else/>
            <target="s03"/>
        </if>
</transition>

不胜感激任何指向他们文档的提示。为此/替代策略来处理它。
感谢。

1 个答案:

答案 0 :(得分:1)

类似以下(未经测试的)代码将执行您想要的操作。

<scxml 
    datamodel="ecmascript"
    xmlns="http://www.w3.org/2005/07/scxml"
    version="1.0">

    <state id="s01">
      <transition event="event_1" target="s02" cond="Math.random() &gt; .5"/>
      <transition event="event_1" target="s03"/>
    </state> 

    <state id="s02"/>

    <state id="s03"/>

</scxml>