<?xml version="1.0" encoding="UTF-8"?><!-- we test that cancel works.  We cancel delayed event1.  If cancel works, we get event2 first and pass.  If
we get event1 or an error first, cancel didn't work and we fail.  --><scxml xmlns="http://www.w3.org/2005/07/scxml" xmlns:conf="http://www.w3.org/2005/scxml-conformance" initial="s0" version="1.0" datamodel="ecmascript">

   
<state id="s0">
  <onentry>
   <send id="foo" event="event1" delay="1s"/>
   <send event="event2" delay="5s"/>
   <cancel sendid="foo"/>
    </onentry>

  <transition event="event2" target="pass"/>
  <transition event="*" target="fail"/>
 
 </state>


<final id="pass"><onentry><log label="Outcome" expr="'pass'"/></onentry></final>
<final id="fail"><onentry><log label="Outcome" expr="'fail'"/></onentry></final>

</scxml>