commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Wolfgang Frech (JIRA)" <j...@apache.org>
Subject [jira] Commented: (SCXML-38) spec and semantics of initialstate attribute not clear for external state
Date Tue, 13 Feb 2007 07:59:05 GMT

    [ 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: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message