I am trying to port some BPLE 1.1 workflows to Ode 1.3.5 but I am having
difficulty with absolute xpath expressions. For example, the following fails
with a selectionFailure fault.
<assign name="GetProjects"
uuid="41b4d5c8-ff05-406f-ad6d-8f3c816a6521">
<copy>
<from variable="appAuth" query="/ns8:appAuth" />
<to variable="GetProjects-GetProjects" part="parameters"
query="/ns8:GetProjects/ns8:auth" />
</copy>
</assign>
I am able to work around this issue by changing all the xpaths wherever they
are found to relative xpath expressions, omitting the /rootElement/ part of the
xpath. In some case this means omitting the containing attribute entirely.
Here is the same example with the workaround.
<assign name=" GetProjects"
uuid="41b4d5c8-ff05-406f-ad6d-8f3c816a6521">
<copy>
<from variable="appAuth"/>
<to variable=" GetProjects-GetProjects " part="parameters"
query="ns8:auth" />
</copy>
</assign>
While resulting BPEL will execute correctly it is a serious impediment to
running BPLE 1.1 process on Ode.
Also According to the BPEL4WS1.1 spec this behavior is not correct. Section
14.1 Assignment states that
"Compliant implementations of the current version of BPEL4WS MUST
support the use of XPath 1.0 as the query language"
and that
"For XPath 1.0, the value of the query attribute MUST be an absolute
locationPath (with '/'
meaning the root of the document fragment representing the entire part). It is
used to
identify the root of a subtree within the document fragment representing the
part. The
location path MUST select exactly one node. If the location path selects zero
nodes or more
than one node during execution, then the standard fault bpws:selectionFailure
MUST be
thrown by a compliant implementation."
Might there be some setting I am missing, to force the use of Xpath 1.0 and get
the correct behavior?
Thanks,
Tim Buss