Hello everybody,
I'm new to SCXML and with my research group we are trying to understand
if it fits our needs.
We developed our own languages to represent FSMs with different kinds of
constraints (e.g. semantic assertions, time constraints, ...) and now we
are evaluating whether through SCXML we can "standardize" our languages
and tools.
One of our languages is named XAL and deals with FSM, time constraints
(as in Timed Automata) and actions associated to the single states (an
example can be found here:
http://www.computervaritt.it/xal/index.php/en/tutorial/49-progettazione-dellapplicazione-.html
).
The first problem we are trying to solve is: how to extend the
definition of Transition to accept custom XML nodes to be interpreted as
complex conditions? E.g. we would like to express something as:
<scxml xmlns="http://www.w3.org/2005/07/scxml"
version="1.0"
initialstate="a"
datamodel="xmlns:cc="someurl" >
<state id="a">
<transition target="b" cond="cc:eval(//condition)" >
<cc:condition>
<time exp="clock > 1 sec" />
</cc:condition>
</transition>
</state>
<state id="b" final="true">
</state>
</scxml>
In this case I have two states (a,b) and the transition a -> b is
activated only when the time condition (clock > 1 sec) is true, provided
a meaningful interpretation function "eval" is provided. In particular I
would like to specify to the eval function the "child element" named
condition
As far as I've got is possible to use the xpath data-model for this
purpose (there is a similar example in appendix D.3.2 at this URL
http://www.w3.org/TR/scxml/ ). Unfortunately the "datamodel" in the root
attribute <scxml ...> is not supported in the current implementation of
the Parser in Apache commons.
Provided all that, we are thinking about implementing an xpath datamodel
for the scxml (or an ecmascript datamodel, in which case the solution
would be very similar).
My questions are:
- is there any documentation explaining how to implement a new Datamodel
in a standard way?
- would it be possible to reach the same result without implementing a
brand new Datamodel, i.e. just using the default one (so-called
null-datamodel)?
Any suggestion would be very helpful. Thanks in advance :)
--
Francesco Spegni
Post Doc
Dipartimento di Ingegneria dell'Informazione (DII)
Università Politecnica delle Marche
via Brecce Bianche, 60131 Ancona, Italy
Phone: (+39) 328-8694618
Web: http://www.manuefra.eu
Skype: francesco.spegni
"Ama le nuvole, le macchine, i libri, ma prima di tutto ama l'uomo" -
Nazim Hilkmet
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
For additional commands, e-mail: user-h...@commons.apache.org