Rahul, it seems to me that the current implementation automatically forwards (external) events to <invoke>'d child state machines (or other components):
see: triggerEvents() of SCXMLExecuter.java // Forward events (external only) to any existing invokes, // and finalize processing semantics.processInvokes(evts, errorReporter, scInstance); Do I understand this comment correctly? Is this intended? I actually do not understand the current SCXML WD in this way [1]. I would like to have control which events to forward to an invoked component at markup level, something like: <state id="invoker"> <invoke targettype="scxml" src="invoked-01.xml"> <param name="foo" expr="'foo'" /> <param name="bar" expr="'bar'" /> <finalize> <log expr="'Finalizing ...'" /> </finalize> </invoke> <transition event="foo"> <send event="foo" target="invokedID" targettype="SCXML" namelist="_eventdata"/> </transition> <transition event="invoker.invoke.done" target="end" /> </state> What do you think? Regards, Ingmar [1] http://www.w3.org/TR/2007/WD-scxml-20070221/#Invoke