The W3C Voice Browser Working Group has published a Working Draft of State Chart XML (SCXML). SCXML provides a generic state-machine based execution environment based on CCXML and Harel State Tables and is a candidate for the control language within multiple markup languages coming out of the W3C. Commons SCXML is a Java implementation of an SCXML engine.

The library provides an SCXML engine capable of executing a state machine defined using a SCXML document, while abstracting out the environment interfaces. For project motivation and overview see the Commons SCXML Webpage.


Wiki Resources

  • ../FrequentlyAskedQuestions
  • ../BusinessCases

Release Plans


  • ../Tutorials/Templating - SCXML allows for defining of a certain FSM externally which can be re-used for convenience. This tutorial briefly covers the use-cases and the implementation of the Templating Pattern.
  • ../Tutorials/History - Remembering State Information - This tutorial describes the uses of <history/> element in SCXML. The history is used when it is required to remember the state of a complex state. i.e. If it were required to enter a complex state at the same point where we left it, we would use a history element to ensure that the state is preserved when the complex state is exited
  • ../Tutorials/Logging - SCXML uses commons-logging, a wrapper that works between others with Log4J ...
  • ../Tutorials/ImplicitEvents - Implicit events supported by Commons SCXML (.entry and .exit for states and .change for data)

GSoC Proposals


This is a section to document the evolution of the Commons SCXML library, most importantly a placeholder to note any API changes and upgrade notes.

From The Archives

  • ../ProjectProposal

External Resources

  • No labels