[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Issue 11 - Creation of Repeating/Optional XML Structures
At our September F2F, I presented some alternatives for addressing issue 11. The alternative were met with some opposition to even addressing the issue at all. In order to get the conversations going again, I'd like to present a very high level view of the pros and cons of addressing the issue. It seems most appropriate to me to begin at this level, before spending any more time actually trying to solve the issue. The issue: To modify a variable's XML structure, one uses the <assign> <from/> <to variable="ncname" part="ncname"? query="queryString"?/> </assign> syntax. "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." What this ends up meaning is that if there is a repeating element that has N instances of the element, the N+1th may not be created. Additionally, if there is an optional element that is not present, it can not be created. Pro-Issue 11: There are many use cases where the creation of repeating and/or optional elements is required. A notable one is looping over an array of inputs, calling a service on each one, and creating an array of outputs. There are many more. BPEL would be crippled without this feature. Anti-Issue 11: BPEL has some very primitive data handling capabilities, but should never have full-blown data handling capabilities. If the language is modified to solve this problem, we are starting down a slippery slope. What will the next data handling addition be? When will the ocean be boiled? If data handling capabilites beyond what are currently included are needed, then simply call out to a data handling/modification service.
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]