- From: Jim Barnett <1jhbarnett@gmail.com>
- Date: Fri, 27 Jun 2014 15:30:46 -0400
- To: www-voice@w3.org
- Message-ID: <53ADC666.2010202@gmail.com>
I have opened an issue against a future version of SCXML to keep track of this proposal. We will discuss the issue if and when we start work on a new version of SCXML. - Jim On 6/27/2014 3:10 PM, Stefan Radomski wrote: > Hey there, > > this is a suggestion for an upcoming version of the standard or maybe > a note related to SCXML: > > in order to further harmonize implementations of SCXML, I’d like to > propose that we work on a minimal interface description language (IDL) > for SCXML interpreters, not unlike those found for the W3C DOM[1] and > other documents popular with the web environment. To get us started, I > had a look at [1] and came up with the IDL below. > > It’s obviously very limited and raw, but it would provide an obvious > interface for application developers to easily change conforming > implementations. Could anyone who maintains an implementation imagine > to provide such an interface, or do you feel that it’s a futile > attempt and not needed at all? > > Currently the IDL will just specify: > 1. where to get interpreters and initialize interpreters (by URI, > String or DOM node) > 2. How to run them (while(interpreter.step(true) != FINISHED)) > 3. A very raw set of exceptions they might throw > > There are several other things one could standardize as well, but I > think, these are the most important aspects to make implementations > somewhat swappable. We can, of course, try to harmonize other aspects > as well. Thoughts anyone? > > Regards > Stefan > > P.S.: I checked that my MUA will not add newlines when sending, I hope > for the sake of readability that yours does too. > > module scxml { > valuetype SCXMLString sequence<unsigned short>; > > exception SCXMLException { > unsigned short code; > SCXMLString cause; > }; > > const unsigned short SCXML_PARSE_ERR = 1; // Given string could not > be parsed as an xml document > const unsigned short SCXML_SCHEMA_ERR = 2; // XML DOM not a valid > SCXML document > const unsigned short SCXML_IMPL_ERR = 3; // Unknown datamodel, > ioproc, executable content or invoker used > > // central place to get interpreter instances > interface SCXMLImplementation { > Interpreter fromURI(in SCXMLString uri) raises(SCXMLException); > Interpreter fromXML(in SCXMLString xmlString) raises(SCXMLException); > Interpreter fromDOM(in Node scxmlRoot); > } > > interface Configuration { > SCXMLString item(in unsigned long index); > readonly attribute unsigned long length; > }; > > interface Interpreter { > const unsigned int AFTER_MICROSTEP = 1; // step finished with a single > microstep > const unsigned int AFTER_MACROSTEP = 2; // step finished with a single > macrostep and interpreter is stable > const unsigned int IDLE = 3; // interpreter is stable with > no pending events on queues > const unsigned int FINISHED = 4; // interpreter reached > top-level final state > > const unsigned int step() raises(SCXMLException); > const unsigned int step(in boolean blocking) raises(SCXMLException); > void interpret() raises(SCXMLException); > > const receive(in SCXMLEvent event); > > readonly attribute Configuration configuration; > readonly attribute Configuration basicConfiguration; > } > } > -- Jim Barnett Genesys
Received on Friday, 27 June 2014 19:31:26 UTC