<?xml version="1.0" encoding="UTF-8"?><!-- test that we keep pulling external events off the queue till we find one that matches a transition. --><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 event="externalEvent1"/>
    <send event="externalEvent2" delay="1s"/>
    <raise event="internalEvent"/>
    </onentry>
    <!-- in this state we should process only internalEvent -->
   <transition event="internalEvent" target="s1"/>
    <transition event="*" target="fail"/>
   </state>
   
 <state id="s1">
 <!-- in this state we ignore externalEvent1 and wait for externalEvent2 -->
   <transition event="externalEvent2" target="pass"/>
   <transition event="internalEvent" 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>