[
https://issues.apache.org/jira/browse/SCXML-38?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12472556
]
Wolfgang Frech commented on SCXML-38:
-------------------------------------
ad a) I posted the issue to the W3C voice mailing list.
The question to the SCXML commons team remains: what did you implement?
Quoting from the message to the mailing list:
---
So the real question is: what exactly is the format of the external file
referenced by a src attribute?
It could be one of the following
a) a complete SCXML document, with scxml element as root, and exactly one state
element, that is identical to the state element in the main SCXML document, and
without initialstate attribute.
This would follow the example.
b) as a), but with an initialstate attribute pointing to its one and only state.
This would meet the definition of the scxml element
c) an fragment of a SCXML document, without scxml root element, but with
exactly one state element as root.
This would avoid the question if initialstate is required.
d) a fragement with the content of the state element, that is an XML fragment
with a list of elements, not with a single root.
This would _not_: follow the example, and it would be hard to edit with an XML
editor.
---
> spec and semantics of initialstate attribute not clear for external state
> -------------------------------------------------------------------------
>
> Key: SCXML-38
> URL: https://issues.apache.org/jira/browse/SCXML-38
> Project: Commons SCXML
> Issue Type: Bug
> Affects Versions: 0.6
> Environment: Win XP, Java 5, Eclipse 3.2, JUnit 4
> Reporter: Wolfgang Frech
> Priority: Minor
>
> The WD-SCXML is not fully consistent if the initialstate attribute is
> required for an external state, that is a state that has a src attribute
> pointing to a file containing its content.
> The attribute details (WD 3.1.1) define the initialstate attribute as
> required, without any exception for external states.
> The example Test2Sub1.scxml (WD F.1) does not have a initialstate attribute.
> If this is only a minor omission in the example, the real issue is: how does
> an initialstate attribute affect the behavior of the state chart?
> So far this would be only an issue with the WD.
> The commons SCXML implementation decided to treat the initialstate attribute
> as required.
> Demonstration code follows.
> The issue with the commons implementation is:
> It is not clear which (state) id can be given in the initialstate attribute
> of an external state SCXML file and what this means.
> The id of the external state itself is not accepted. See second demonstration
> code.
> Demo - initialstate required:
> ----
> @Test
> public void externalStateWithoutInitialstate() throws
> FileNotFoundException,
> IOException, SAXException, ModelException {
> final URL definition = getClass().getClassLoader().getResource(
> "externalStateWithoutInitialstate-main.scxml");
> try {
> SCXMLDigester.digest(definition, new
> SimpleErrorHandler());
> fail();
> } catch (ModelException e) {
> assertEquals(
> "Initial state null or not a descendant
> of state with ID \"start\"",
> e.getMessage());
> }
> }
> ----
> main scxml
> ----
> <?xml version="1.0"?>
> <scxml
> xmlns="http://www.w3.org/2005/07/scxml"
> version="1.0"
> initialstate="start">
> <state id="start" src="externalStateWithoutInitialstate-external.scxml"/>
> </scxml>
> ----
> included scxml
> note: no initalstate
> ----
> <?xml version="1.0"?>
> <scxml
> xmlns="http://www.w3.org/2005/07/scxml"
> version="1.0">
> <state id="start" />
> </scxml>
> Demo - with initialstate pointing to external state
> -----
> @Test
> public void externalStateWithInitialstate() throws
> FileNotFoundException,
> IOException, SAXException, ModelException {
> final URL definition = getClass().getClassLoader().getResource(
> "externalStateWithInitialstate-main.scxml");
> try {
> SCXMLDigester.digest(definition, new
> SimpleErrorHandler());
> fail();
> } catch (ModelException e) {
> assertEquals(
> "Initial state null or not a descendant
> of state with ID \"start\"",
> e.getMessage());
> }
> }
> -----
> main scxml
> -----
> <?xml version="1.0"?>
> <scxml
> xmlns="http://www.w3.org/2005/07/scxml"
> version="1.0"
> initialstate="start">
> <state id="start" src="externalStateWithInitialstate-external.scxml"/>
> </scxml>
> ----
> included scxml
> note: with initialstate
> ----
> <?xml version="1.0"?>
> <scxml
> xmlns="http://www.w3.org/2005/07/scxml"
> version="1.0"
> initialstate="start">
> <state id="start">
> <onentry>
> <log expr="'now in state start'" />
> </onentry>
> </state>
> </scxml>
> ----
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]