1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- <?xml version="1.0"?>
- <!-- the assertion that errors are 'like any other event' is pretty broad, but we can check that they
- are pulled off the internal queue in order, and that prefix matching works on them. -->
- <scxml initial="s0" version="1.0" conf:datamodel="" xmlns="http://www.w3.org/2005/07/scxml" xmlns:conf="http://www.w3.org/2005/scxml-conformance">
-
- <state id="s0" initial="s01">
- <onentry>
- <!-- catch the failure case -->
- <send event="timeout" delay="1s"/>
- </onentry>
- <transition event="timeout" conf:targetfail=""/>
- <state id="s01">
- <onentry>
- <!-- the first internal event. The error will be the second, and event2 will be the third -->
- <raise event="event1"/>
- <!-- assigning to a non-existent location should raise an error -->
- <assign conf:invalidLocation="" conf:expr="2"/>
- </onentry>
-
- <transition event="event1" target="s02">
- <raise event="event2"/>
- </transition>
- <transition event="*" conf:targetfail=""/>
- </state>
-
- <state id="s02">
- <transition event="error" target="s03"/>
- <transition event="*" conf:targetfail=""/>
- </state>
-
- <state id="s03">
- <transition event="event2" conf:targetpass=""/>
- <transition event="*" conf:targetfail=""/>
- </state>
- </state>
-
- <conf:pass/>
- <conf:fail/>
- </scxml>
|