[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [wsbpel] Issue - 11 Your opinion requested
Danny,
I unfortunately missed your presentation, as I was selfishly
enjoying my holidays. However, I've spent some time reviewing the
materials you provided for the two proposals, and I have to weigh in
with an opinion of -A -B. In other words, I'm not happy with either
proposal. Allow me to elaborate.
Neither solution will be very good at complex transformations; the
term painful comes to mind. (I suggest that for such transformations we
should use existing solutions like XSLT, and keep in mind emerging ones,
like XQuery.)
A further consideration is that (complex) assignments ought to be
reuseable. While this is of questionable value for a single BPEL
process, it is of much greater utility in constructing families of
processes that share the same available services.
Finally, both solutions embrace a decidely imperative approach to
defining the tree structure of a result, when the <assign> activity
itself can contain the tree structure desired in a declarative fashion
that is far easier to create and read. Something along the lines of
<node from=...> <!-- root node -->
<node from=.../> <!-- 1st child of root node -->
<node from=...> <!-- 2nd child of root node; or
following sibling to 1st child -->
<attr from=.../> <!-- attribute for 2nd child -->
</node>
</node>
This uses the XML declaration of the assignment operation to declare the
structure of the result, rather than depend on DOM-like manipulations to
describe how to arrive at the result.
I realise that this is just a list of complaints and partial
suggestions; this is not a counterproposal. I suspect that not all of us
share the same notions about what <assign> will be use for. Will it be
used to construct full-blown XML documents needed for requests (and
replies), or will it primarily be used to extract document fragments for
internal bookkeeping purposes?
-Ron
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]