[
https://issues.apache.org/jira/browse/SCXML-242?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ate Douma resolved SCXML-242.
-----------------------------
Resolution: Fixed
Thanks [~woon_san] for the review!
Concerning the suggested improvements for the ContentParser: they all make
sense.
However, I'm actually working on rewriting the SCXMLReader completely, making
it XML DOM instead of XMLStream based...
There are just too many use-cases (not yet, or not properly, implemented) which
need an XML DOM representation or parsing of the SCXML model, like for an
<invoke> with an nested <content> containing an embedded SCXML document, or
other <content> use-cases.
The current SCXMLReader currently cannot be used for this but first need a
stringified representation again to be able to parse it (again!) via XMLStream.
Making this XML DOM based 'parsing' really simplifies things a lot further, and
this will also 'affect' (simplify) the logic currently contained within the
ContentParser.
Maybe even no longer needed (to be merged back into the new SCXMLReader).
Anyway, I will take you suggestions into account for this rewrite.
Concerning the earlier suggestion about using Node.getTextContent() in
#readData() instead of using #getNodeValue():
this isn't needed and won't make a difference as the content parsing in
#readNode already deals with CDATA content (converting it into a single
TEXT_NODE).
> Provide JSON based datamodel as replacement for XML/XPath
> ---------------------------------------------------------
>
> Key: SCXML-242
> URL: https://issues.apache.org/jira/browse/SCXML-242
> Project: Commons SCXML
> Issue Type: New Feature
> Reporter: Ate Douma
> Assignee: Ate Douma
> Fix For: 2.0
>
>
> The XML/XPath datamodel, with 'convenient' support through Data() and
> Location() operations for usage within the Jexl, Javascript and Groovy SCXML
> languages has been the root and cause of many invasive and complicating
> problems in the implementation of Commons SCXML (2.0).
> The [SCXML 1.0 specification|http://www.w3.org/TR/2015/REC-scxml-20150901/]
> has dropped the xpath datamodel from the specification because of
> similar/same complications and (also thereof) lack of 'reference'
> implementations.
> Further maintaining and trying to 'improve' on the XML/XPath datamodel
> support in Commons SCXML therefore will be stopped and removed from the
> implementation all together.
> Instead and as replacement new JSON datamodel support will be added, which
> also aligns with the (optional) Ecmascript datamodel as described in the
> SCXML specification.
> The JSON based datamodel will be parsed (in Java) into a 'raw' object model,
> consisting of plain Maps (JSON Object) and Lists (JSON Array), and thus
> trivially to be used from the Commons SCXML supported languages (Jexl, Groovy
> and Javascript).
> As this new JSON datamodel will replace all XML/XPath usages, part of this
> new feature implementation will be updating and replacing all the
> example/unit-test usages in the codebase, and thereby also removing all
> usages of the custom Data() and Location() functions.
> Once these changes are in place, the Data() and Location() custom functions
> will then be removed as well.
> Finally, the XPath language itself then can be removed, including all the
> supporting logic scattered throughout the engine implementation itself, but
> this will be done as a separate issue afterwards.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)