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

Reply via email to