summaryrefslogtreecommitdiffstats
path: root/test/samples/w3c/Main.scxml
diff options
context:
space:
mode:
authorStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2013-03-28 23:28:46 (GMT)
committerStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2013-03-28 23:28:46 (GMT)
commit2317f2bf8beb03c60463a9482dbef23540f5c1e0 (patch)
tree9983553e5289cf622e782d0132bb1810276364d2 /test/samples/w3c/Main.scxml
parent7279ab2caf72b68126bf0c1d7e62c7d89024f9a0 (diff)
downloaduscxml-2317f2bf8beb03c60463a9482dbef23540f5c1e0.zip
uscxml-2317f2bf8beb03c60463a9482dbef23540f5c1e0.tar.gz
uscxml-2317f2bf8beb03c60463a9482dbef23540f5c1e0.tar.bz2
Refactoring and W3C tests
- Moved core of interpreter to support various versions - Added experimental setConfiguration() - There can be more than one initial state
Diffstat (limited to 'test/samples/w3c/Main.scxml')
-rw-r--r--test/samples/w3c/Main.scxml204
1 files changed, 0 insertions, 204 deletions
diff --git a/test/samples/w3c/Main.scxml b/test/samples/w3c/Main.scxml
deleted file mode 100644
index 4c03631..0000000
--- a/test/samples/w3c/Main.scxml
+++ /dev/null
@@ -1,204 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- A wrapper state that contains all other states in this file
-- it represents the complete state machine -->
-<scxml
- xmlns:xi="http://www.w3.org/2001/XInclude"
- version="1.0"
- initial="Main"
- datamodel="ecmascript">
- <state id="Main">
- <!-- its initial state is Test1 -->
- <initial>
- <transition target="Test1"/>
- </initial>
-
- <!-- Really simple state showing the basic syntax. -->
- <state id="Test1">
- <initial>
- <transition target="Test1Sub1"/>
- </initial>
- <!-- Runs before we go into the substate -->
- <onentry>
- <log expr="'Inside Test1'"/>
- </onentry>
-
- <!-- Here is our first substate -->
- <state id="Test1Sub1">
- <onentry>
- <log expr="'Inside Test1Sub1.'"/>
- </onentry>
- <onexit>
- <log expr="'Leaving Test1Sub1'"/>
- </onexit>
- <!-- Go to Sub2 on Event1 -->
- <transition event="Event1" target="Test1Sub2"/>
- </state>
-
- <!-- Here is the second substate
- It is final, so Test1 is done when we get here -->
- <final id="Test1Sub2"/>
-
- <!-- We get this event when we reach Test1Sub2. -->
- <transition event="Test1.done" target="Test2"/>
-
- <!-- We run this on the way out of Test1 -->
- <onexit>
- <log expr="'Leaving Test1...'"/>
- </onexit>
- </state>
-
- <state id="Test2">
- <initial>
- <transition target="Test2Sub1"/>
- </initial>
-
- <!-- This time we reference a state
- defined in an external file. -->
- <xi:include href="Test2Sub1.xml" parse="text"/>
-
- <final id="Test2Sub2"/>
-
- <!-- Test2Sub2 is defined as final, so this
- event is generated when we reach it -->
- <transition event="done.state.Test2" next="Test3"/>
- </state>
-
- <state id="Test3">
- <initial>
- <transition target="Test3Sub1"/>
- </initial>
-
- <state id="Test3Sub1">
- <onentry>
- <log expr="'Inside Test3Sub1...'"/>
- <!-- Send our self an event in 5s -->
- <send event="'Timer'" delay="'5s'"/>
- </onentry>
- <!-- Transition on to Test4.
- This will exit both us and our parent. -->
- <transition event="Timer" target="Test4"/>
- <onexit>
- <log expr="'Leaving Test3Sub1...'"/>
- </onexit>
- </state>
-
- <onexit>
- <log expr="'Leaving Test3...'"/>
- </onexit>
- </state>
-
- <state id="Test4">
- <onentry>
- <log expr="'Inside Test4...'"/>
- </onentry>
- <initial>
- <transition target="Test4Sub1"/>
- </initial>
-
- <state id="Test4Sub1">
- <onexit>
- <log expr="'Leaving Test4Sub1...'"/>
- </onexit>
- <!-- This transition causes the state to exit immediately
- after entering Test4Sub1. The transition has no event
- or guard so it is always active -->
- <transition target="Test5"/>
- </state>
- </state>
-
- <state id="Test5">
- <onentry>
- <log expr="'Inside Test5...'"/>
- </onentry>
- <initial>
- <transition target="Test5P"/>
- </initial>
-
- <!-- Fire off parallel states. In a more realistic example
- the parallel substates Test5PSub1 and Test5PSub2 would themselves
- have substates and would do some real work before transitioning to final substates -->
- <parallel id="Test5P">
- <state id="Test5PSub1" initial="Test5PSub1Final">
- <final id="Test5PSub1Final"/>
- </state>
- <state id="Test5PSub2" initial="Test5PSub2Final">
- <final id="Test5PSub2Final"/>
- </state>
- <onexit>
- <log expr="'all parallel states done'"/>
- </onexit>
- </parallel>
-
- <!-- The parallel states immediately transition to final substates,
- so this event is generated immediately. -->
- <transition event="done.state.Test5P" target="Test6"/>
- </state>
-
- <!--
- - This state shows invocation of an external component.
- - We will use CCXML + VoiceXML actions as an example
- - as it is a good smoke test to show how it all
- - fits together.
- - Note: In a real app you would likely
- - split this over several states but we
- - are trying to keep it simple here.
- -->
- <state id="Test6"
- xmlns:ccxml="http://www.w3.org/2002/09/ccxml"
- xmlns:v3="http://www.w3.org/2005/07/vxml3">
- <datamodel>
- <data name="ccxmlid" expr="32459"/>
- <date name="v3id" expr="17620"/>
- <data name="dest" expr="'tel:+18315552020'"/>
- <data name="src" expr="'helloworld2.vxml'"/>
- <data name="id" expr="'HelloWorld'"/>
- </datamodel>
-
- <onentry>
- <!-- Use <send> a message to a CCXML Processor asking it to run createcall -->
- <send target="ccxmlid" type="basichttp" event="ccxml:createcall" namelist="dest"/>
- </onentry>
-
- <transition event="ccxml:connection.connected">
- <!-- Here as a platform-specific extension we use example V3
- Custom Action Elements instead of send. The implementation of this logic
- would be platform-dependent. -->
- <v3:form id="HelloWorld">
- <v3:block><v3:prompt>Hello World!</v3:prompt></v3:block>
- </v3:form>
- </transition>
-
- <transition event="v3:HelloWorld.done">
- <!-- Here we are using the low level <send>
- element to run a v3 form. Note that the event "v3:HelloWorld.done"
- is assumed either to be set/sent explicitly by the v3:form code or
- implicitly by some process outside of the v3:form -->
- <send target="v3id" type="basichttp" event="v3:formstart" namelist="src id"/>
- </transition>
-
- <transition event="v3:HelloWorld2.done">
- <!-- we use _event.data to access data in the event we're processing.
- Again we assume the v3:HelloWorld2.done is set/sent from outside
- this document -->
- <ccxml:disconnect connectionid="_event.data.connectionid"/>
- </transition>
-
- <transition event="ccxml:connection.disconnected" target="Done"/>
-
- <transition event="send.failed" target="Done">
- <!-- If we get an error event we move to the Done state that
- is a final state. -->
- <log expr="'Sending to and External component failed'"/>
- </transition>
-
- <onexit>
- <log expr="'Finished with external component'"/>
- </onexit>
- </state>
-
- <!-- This final state is an immediate child of Main
- - when we get here, Main.done is generated. -->
- <final id="Done"/>
- <!-- End of Main > -->
- </state>
-</scxml> \ No newline at end of file