<?xml version="1.0"?>
<!-- test that default history content is executed correctly.   The Process MUST execute any executable content in the transition after the parent state's onentry handlers, and, in the case where the history pseudo-state is the target of an <initial> transition, 
the executable content inside the <initial> transition.  However the Processor MUST
execute this content only if there is no stored history.  Once the history state's
parent state has been visited and exited, the default history content must not be executed -->


<scxml  version="1.0" initial="s0" conf:datamodel=""  xmlns="http://www.w3.org/2005/07/scxml" xmlns:conf="http://www.w3.org/2005/scxml-conformance">

       
<state id="s0">
	<datamodel>
		  <data conf:id="1" conf:expr="0"/>
		</datamodel>
	<initial>
		 <transition target="sh1">
		 	<raise event="event2"/>
		 	</transition>
		 	</initial>
  <onentry>
  	<send conf:delay="1" event="timeout"/>
    <raise event="event1"/>
    </onentry>
  <onexit>
  	<conf:incrementID id="1"/>
  	</onexit>
 <history id="sh1">
 	  <transition target="s01">
 	  	 <raise event="event3"/>
 	  	</transition>
  	</history>
  	
  	<state id="s01">
  		<transition event="event1" target="s02"/>
  		<transition event="*" conf:targetfail=""/>
  		</state>
  		
  <state id="s02">
  	<transition event="event2" target="s03"/>
  	<transition event="*" conf:targetfail=""/>
  			</state>
  <state id="s03">
  	
  	<transition conf:idVal="1=0" event="event3" target="s0"/>
  	<transition conf:idVal="1=1" event="event1" target="s2"/>
  	<transition event="*" conf:targetfail=""/>
  	</state>
</state> 

<state id="s2">
	<transition event="event2" target="s3"/>
	<transition event="*" conf:targetfail=""/>

	</state>   

<state id="s3">
	<transition event="event3" conf:targetfail=""/>
	<transition event="timeout" conf:targetpass=""/>
	</state>

 
<conf:pass/>
<conf:fail/>

</scxml>