On 12/8/07, Sudeep Gandhe <[EMAIL PROTECTED]> wrote: > I tried the following scxml file with the StandaloneJexlExpressions. I don't > get the correct value for "Data(d, '//tar/@name')". Can you explain, what's > wrong ? > <snip/>
We use some Xalan APIs internally to be able to resolve prefixes in XPath expressions (since XPath expressions in SCXML documents can have different context nodes, say <assign>, <log> etc. and hence different prefixes, than the <data>s they refer to). It is not immediately evident why the behavior you describe is only seen when a combination of descendent-or-self and attribute axes are used in the expression, I suspect this is either: a) A bug or inconsistency in the Xalan processing (quite unlikely), or b) A bug in the usage of Xalan APIs by Commons SCXML (more likely) In any case, can you please attach a complete JUnit test case addition to the Commons SCXML test suite that illustrates this, to the issue tracker [1]? That will help us dig deeper. Thanks in advance. -Rahul [1] http://commons.apache.org/scxml/issue-tracking.html > -- Sudeep > > SCXML file : > > <?xml version="1.0"?> > <scxml xmlns="http://www.w3.org/2005/07/scxml" version="1.0" > initialstate="first"> > > <datamodel> > <data name="d"> > <foo xmlns=""> > <bar> > <tar name="po">12</tar> > </bar> > </foo> > </data> > <data name="p"> > <one xmlns=""/> > </data> > </datamodel> > > <state id="first"> > <onentry> > <log label="//tar" expr="Data(d, '//tar')"/> > <!-- //tar/@name doesn't work --> > <log label="//tar/@name" expr="Data(d, '//tar/@name')"/> > <log label="foo/bar/tar" expr="Data(d, 'foo/bar/tar')"/> > <!-- foo/bar/tar/@name works --> > <log label="foo/bar/tar/@name" expr="Data(d, > 'foo/bar/tar/@name')"/> > </onentry> > <transition event="first.done" target="second"/> > <onexit> > <assign location="Data(p, 'one')" expr="Data(d, '//bar')"/> > </onexit> > </state> > > <state id="second" final="true"> > <onentry> > <log label="//tar" expr="Data(p, '//tar')"/> > <!-- //tar/@name doesn't work --> > <log label="//tar/@name" expr="Data(p, '//tar/@name')"/> > <!-- one/tar/@name works --> > <log label="one/tar/@name" expr="Data(p, 'one/tar/@name')"/> > </onentry> > </state> > </scxml> > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]