This issue has been added to the wsbpel issue list with a status
of "received".
The status will be changed to "open" if a motion to open the issue is
proposed and that
motion is approved by the TC. A motion could also be proposed to close
it without
further consideration. Otherwise it will remain as "received".
The issues list is posted as a Technical Committee document to the
OASIS
WSBPEL TC pages
on a regular basis. The current edition, as a TC document, is the most
recent version of the document entitled in the "Issues" folder of the WSBPEL
TC document list
- the next posting as a TC document will include this issue.
The list editor's working copy, which will normally include an issue
when it is announced, is available at this
constant URL.
Issue - R33 - Optional XML Data in Assignments
Status: received
Date added: 9 Nov 2006
Date submitted: 08 November 2006
Submitter: Dieter
König
Description: When XML data is defined as optional
(minOccurs="0") then
you may run into a selectionFailure when accessing an absent element in
a from-spec. OTOH, it is a likely business scenario to have business
objects with several optional subelements. If multiple of these
optional
subelements must be copied individually (the key here is that you
actually access the subelements) you end up with an exponentially
growing number of selectionFailure fault handling combinations for
something that is perfectly valid (i.e. you'd have to model all these).
Another approach to address this situation is the following:
<if>
<condition> count($variable/optionalelement) = 1 </condition>
<assign>
<copy>
<from> $variable/optionalelement </from>
<to> ... </to>
</copy>
</assign>
</if>
The downside of this is that you get a flood of activities AND that you
would *not* be able to do multiple <copy>'s in an atomic way
anymore
(since there'd always be a check for == 1 needed).
Submitter's proposal: Introduce a new attribute
suppressFromSelectionFailure="yes|no" on <copy> (the default is
"no").
If set to "yes" then the <copy> would be a *no-op* instead of
throwing
selectionFailure when the from-spec returns zero nodes. Note that the
selectionFailure would still be thrown when you try to access an
nonexistent element in the *to*-spec.
Optionally - to be discussed as well - apply the following
variations:
- add the new attribute also to higher-level elements
(<assign>,
<scope>,
<process>) in order to let multiple <copy> elements inherit
its value.
- add the new attribute to <from> instead of <copy>
and let it also
apply also variable initializations.
Changes: 9 Nov 2006 - new issue
To comment on this issue (including whether it should be
accepted), please follow-up to this announcement on the
wsbpel@lists.oasis-open.org list (replying to this message should
automatically send your message to that list), or ensure
the subject line as you send it starts "Issue - R33 -
[anything]" or is a reply
to such a message. If you want to formally propose a resolution to an
open issue, please start the subject line "Issue - R33 - Proposed
resolution", without any Re: or similar.
To add a new issue, see the issues procedures document