State Chart XML
Filename extension
Developed byWorld Wide Web Consortium
Latest release
September 1, 2015
Type of formatMarkup language
Extended fromXML

SCXML stands for State Chart XML: State Machine Notation for Control Abstraction. It is an XML-based markup language that provides a generic state-machine-based execution environment based on Harel statecharts.

SCXML is able to describe complex finite state machines. For example, it is possible to describe notations such as sub-states, parallel states, synchronization, or concurrency, in SCXML.


The objective of this standard is to genericize state diagram notations that are already used in other XML contexts. For example, it is expected that SCXML notations will replace the State machines notations used in the next CCXML 2.0 version (an XML standard designed to provide telephony support to VoiceXML). It could also be used as a multimodal control language in the Multimodal Interaction Activity.

One of the goals of this language is to make sure that the language is compatible with CCXML and that there is an easy path for existing CCXML scripts to be converted to SCXML without major changes to the programming model or document structure (for example, by using an XSL Transformation).

The current version of the specification was released by the W3C in September 2015.[1]


According to the W3C SCXML specification,[2] SCXML is a general-purpose event-based state machine language that can be used in many ways, including:

The draft W3C VoiceXML 3.0 specification[3] includes State Chart and SCXML Representation to define functionality.

Multimodal applications

Multimodal application designs can use different modalities (for example, voice vs. touchscreen vs. keyboard and mouse) for different parts of a communication best suited to it. For example, voice input can be used to avoid having to type on the small screen of a mobile phone, but the screen may be a faster way of communicating a list or map, compared to listening to long descriptions of available options. SCXML makes it easy to do several things in parallel, and the Interaction Manager SCXML application will maintain the synchronization between Voice and Visual dialogues.

A multimodal configuration

The W3C document Authoring Applications for the Multimodal Architecture[4] describes a multimodal system that implements the W3C Multimodal Architecture and gives an example of a simple multimodal application authored using various W3C markup languages, including SCXML, CCXML, VoiceXML 2.1 and HTML.


Inactive implementations

The following implementations are inactive, i.e., the last change to their source code was made more than two years ago:

See also


  1. ^ "State Chart XML (SCXML): State Machine Notation for Control Abstraction". World Wide Web Consortium. September 1, 2015. Retrieved March 2, 2016.
  2. ^ State Chart XML (SCXML): State Machine Notation for Control Abstraction specification
  3. ^ Voice Extensible Markup Language (VoiceXML) 3.0 specification
  4. ^ Authoring Applications for the Multimodal Architecture