W3C

State Chart XML (SCXML): State Machine Notation for Control Abstraction Recommendation Errata

Last updated $Date: 2016/12/28 14:46:27 $

This document records known errors in the SCXML Recommendation:
http://www.w3.org/TR/2015/REC-scxml-20150901/


About the SCXML Recommendation

The SCXML Recommendation has been produced by the W3C Voice Browser Working Group as part of the activity of the W3C Ubiquitous Web Domain.

This document lists known errata to the Recommendation. Each entry has the following information:

Please send general comments about this document to the public mailing list at www-voice@w3.org. The archive for the list is accessible online.

Conventions

Added text marked ↑new, added text↑. Changed text marked ↑changed text↑. Removed text marked ↓deleted text↓.

Proposed and Pending Errata

None.

Rejected proposed errata

None.


Known errors as of 28 December 2016


Errata

E1: Appendix C.1.2 Example 3 - 'sendid' attribute wrongly used instead of 'id'

In section C.1.2, "Example 3" contains an incorrect attribute name.

<send sendid="send-123" .../>

should be:

<send id="send-123".../>

That is, the <send> element has an 'id' attribute, and does not have a 'sendid' attribute.

Email trail:

E2: Appendix B. Data Models - misleading description on a data model

The second paragraph of Appendix B should read:

The definition of a data model MUST:

instead of:

The definition of a data model MUST:

The existing language in the specification is misleading and can be read as saying that the attributes that are mentioned are the only places that the various expression languages are used. That is not necessarily the case. The attributes are mentioned only as examples.

Email trail:

E3: 3.12.1 Event Descriptors - event name matching example

The fourth paragraph of section 3.12.1 on the example of event name match should read:

For example, a transition with an 'event' attribute of "error foo" will match event names "error", "error.send", "error.send.failed", etc. (or "foo", "foo.bar" etc.) but would not match events named "errors.my.custom", "errorhandler.mistake", "errOr.send" or "foobar".

instead of:

For example, a transition with an 'event' attribute of "error foo" will match event names "error", "error.send", "error.send.failed", etc. (or "foo", "foo.bar" etc.) but would not match events named "errors.my.custom", "errorhandler.mistake", "error.send" or "foobar".

The text in the specification erroneously has "error.send" in place of "errOr.send".

Email trail:

E4 (25 February 2016): Appendix D - misleading description on interepret() procedure

In the prose introduction to the interpret() procedure, the following sentence is incorrect:

Finally call enterStates on the initial configuration, set the global running variable to true and start the interpreter's event loop.

It should read:

Finally call enterStates on a one item list consisting of the <transition> inside the <initial> element that has been created from the 'initial' attribute on <scxml>. Then set the global running variable to true and start the interpreter's event loop.

Email trail:

E5 (25 February 2016): Appendix D - typo in the example code of interpret() procedure

The procedure interpret() fails to set the 'binding' global variable, which causes the variable to be unbound when it is accessed in enterStates().

The following statement in interpret():

if doc.binding == "early":
        initializeDatamodel(datamodel, doc)

should be replaced by:

binding = doc.binding
if binding == "early":
        initializeDatamodel(datamodel, doc)

Email trail:

E6 (25 February 2016): Appendix G.1 - typo in example SCXML code, "Main.scxml"

In the example Main.scxml, there is a transition that incorrectly contains a 'next' attribute instead of a 'target' attribute:

<transition event="done.state.Test2" next="Test3"/>

should be:

<transition event="done.state.Test2" target="Test3"/>

Email trail:

E7 (23 December 2016): Appendix G.5 - typo in example SCXML code, "Traffic Report" and "Blackjack"

In the examples of "Traffic Report" and "Blackjack", there are states that incorrectly contain an 'onenter' element instead of an 'onentry' element.

For example:

<onenter>
  <script>enterStartOver();</script>
</onenter>

should be:

<onentry>
  <script>enterStartOver();</script>
</onentry>

Email trail:


Kazuyuki Ashimura