# uSCXML ReadMe uSCXML is a SCXML interpreter written in C/C++. It is still in a rather early stage but mostly feature-complete as far as the W3C SCXML draft specifies. It runs on most Linux, Windows and MacOSX, each 32- as well as 64Bits. There is no technical reason for it not to run on iOS and Android as well, but we did not yet setup the respective build-process. * Datamodels * ECMAScript using Google's v8 and JavaScriptCore (JSC is incomplete) * Prolog using SWI prolog * Invokers * scxml: Invoke a nested scxml interpreter * dirmon: Watches a directory for changes to files * scenegraph: Simplified 3D scenegraphs with custom markup * heartbeat: Periodically sends events * httpservlet: Sends events for http requests to special paths * umundo: Subscribe to channels and publish events * DOM * DOM Core Level 2 + XPath extensions available for ecmascript datamodel * Namespace aware to embed custom markup for special invokers * Communication * Features the standard basichttp io-processor * Can actually respond to HTTP requests with data via <response> * Language Bindings * PHP module for apache and cli interpreter ## Test Reports [Results](http://uscxml.tk.informatik.tu-darmstadt.de/cdash/index.php?project=uscxml) for continuous testing of the [W3C IRP tests](http://www.w3.org/Voice/2013/scxml-irp/) for SCXML and some platform tests.
Test#StatusComment
153Failed / Fix in test The XSLT transformation leave some gibberish in the file (Saxon HE XSLT)
178Failed / Fix in draft A manual test that relies on an unspecified _event.raw attribute
226Failed / Fix in test Requires a file with wrong file extension
230False report A manual test that is not actually failing but does not end in a state called pass
250False report A manual test that is not actually failing but does not end in a state called pass
301Failed "If the script can not be downloaded within a platform-specific timeout interval, the document is considered non-conformant, and the platform must reject it" -- USCXML will try to evaluate the rest of the document nevertheless.
302Failed / Fix in test datamodel attribute is missing from test
303Failed / Fix in test datamodel attribute is missing from test
304Failed / Fix in test datamodel attribute is missing from test
307False report A manual test that is not actually failing but does not end in a state called pass
321Failed / Fix in test Gibberish form XSLT transformation still inside $_sessionid
323Failed / Fix in test Gibberish form XSLT transformation still inside $_name
329Failed / Raise on ML Tests that _event cannot be assigned, but I like to add attributes to _event to have a scope that only lasts for one event
330Failed Namespace issues
333Failed / Won't fix "sendid [...] Otherwise it must leave it blank." -- USCXML sets this to the empty string instead of null.
335Failed / Won't fix "origin [...] For internal and platform events, the Processor must leave this field blank." -- USCXML sets this to the empty string instead of null.
337Failed / Won't fix "origintype [...] For internal and platform events, the Processor must leave this field blank." -- USCXML sets this to the empty string instead of null.
339Failed / Won't fix "invokeid [...] Otherwise it must leave it blank." -- USCXML sets this to the empty string instead of null.
346Failed / Won't fix "test that any attempt to change the value of a system variable causes error.execution to be raised." -- I like to edit _event.
436Failed / Won't fix Requires NULL datamodel
441bFailed / Won't fix Requires NULL datamodel
456Failed / Raise on ML Expects undefined + 1 to be 1
463 - 486bFailed / Won't fix Requires xpath datamodel
488Failed / Raise on ML Expects _event.data to be the empty string when we have it as undefined
537 - 547Failed / Won't fix Requires xpath datamodel
555Failed / Won't fix Requires xpath datamodel
569Failed SCXML I/O processor is implicit at the moment
## License uSCXML itself is distributed under the Simplified BSD license as in, do not sue us and do not misrepresent authorship. Please have a look at the licenses of the [libraries we depend upon](https://github.com/tklab-tud/uscxml/blob/master/docs/BUILDING.md#build-dependencies) as well. ## Download We do not yet feature installers. Please download the source and have a look at the [build instructions](https://github.com/tklab-tud/uscxml/blob/master/docs/BUILDING.md).