Hi Francesco, The example you describe looks like the special "timeout" event described by Harel in his original papers on Statechart semantics: http://research.microsoft.com/apps/pubs/default.aspx?id=148785 http://dl.acm.org/citation.cfm?id=235322
If so, this event can be implemented in SCXML as a transformation, as in the following example: https://gist.github.com/4195449 In this example, on entering state "a", the event "$timeout_1" is scheduled to be sent after 1 second. If the state is exited before that time, the scheduled event will be cancelled via the <cancel> action. If the machine stays in state "a", and after 1 second the event is sent, then the transition in state "a" with event "$transition_1" will be selected, and the machine will leave state "a" and enter state "b". This transformation can be implemented easily in a language like XSLT. Therefore, SCXML should be able to handle your example out of the box. Does your application have other, more complex requirements for transition conditions? Jake On Mon, Dec 3, 2012 at 9:30 AM, Francesco Spegni <[email protected] > wrote: > The first problem we are trying to solve is: how to extend the definition > of Transition to accept custom XML nodes to be interpreted as complex > conditions? E.g. we would like to express something as: > > <scxml > xmlns="http://www.w3.org/2005/**07/scxml<http://www.w3.org/2005/07/scxml> > " > version="1.0" > initialstate="a" > datamodel="xmlns:cc="someurl" > > > <state id="a"> > <transition target="b" cond="cc:eval(//condition)" > > <cc:condition> > <time exp="clock > 1 sec" /> > </cc:condition> > </transition> > </state> > > <state id="b" final="true"> > > </state> > </scxml> >
