You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "Karthick Sankarachary (JIRA)" <ji...@apache.org> on 2009/04/17 22:22:15 UTC

[jira] Closed: (ODE-371) Auto Complete Copy Destination (L-Value)

     [ https://issues.apache.org/jira/browse/ODE-371?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Karthick Sankarachary closed ODE-371.
-------------------------------------


> Auto Complete Copy Destination (L-Value)
> ----------------------------------------
>
>                 Key: ODE-371
>                 URL: https://issues.apache.org/jira/browse/ODE-371
>             Project: ODE
>          Issue Type: New Feature
>    Affects Versions: 1.2
>         Environment: platform-independent
>            Reporter: Karthick Sankarachary
>            Assignee: Karthick Sankarachary
>             Fix For: 1.3.1
>
>         Attachments: auto-complete-copy-for-branch.txt
>
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> A lot of times, users expect the <copy> operation in a WS-BPEL assign activity to behave such that the path specified by the destination ("to-spec") is automatically created, if it doesn't already exist. By default, if the to-spec used within a <copy> operation does not select exactly one XML information item during execution, then the standard fault bpel:selectionFailure is thrown (as mandated by the spec).
> To override this default behavior, we introduce a insertMissingToData attribute in the <copy> operation, which if it is set to "yes", will instruct the runtime to complete the (XPath) L-value specified by the to-spec, if no items were selected. For the sake of simplicity, we will complete the to-spec if and only if:
> a) It's a path expression whose steps are separated by "/", and
> b) Its steps have an axis, which is either "child" or "attribute", and
> c) Its steps have no following predicates, and
> d) Its steps test the name of a node,  without the use of wildcards.
> Formally, the grammar of the to-spec, for which auto-complete is enabled, may be defined in terms of these productions:
>     PathExpr              ::=    ("/" RelativePathExpr?) | RelativePathExpr
>     RelativePathExpr      ::=    ForwardStep (("/" ) ForwardStep)*
>     ForwardStep           ::=    (ForwardAxis QName) | AbbrevForwardStep
>     AbbrevForwardStep     ::=    "@"? QName
>     ForwardAxis           ::=    ("child" "::") | ("attribute" "::")
> The example below illustrates the use of the insertMissingToData attribute. Let's say that the variable "response" is uninitialized. In that case, the first <copy> operation will fail, whereas the second one will succeed.
>     <copy>
>         <from>$request.requestMessageData/typeIndicators/types:indicatorTwo</from>
>         <to>$response/typeIndicators/types:indicatorTwo</to>
>     </copy>
>     <copy insertMissingToData="yes">
>         <from>$request.requestMessageData/typeIndicators/types:indicatorTwo</from>
>         <to>$response/typeIndicators/child::types:indicatorTwo</to>
>      </copy>
> Best Regards,
> Karthick Sankarachary

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.