OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsbpel message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Issue 92 - 92.5 - Allow extensions to be declared under scope elements- Proposal For Vote


Proposal: Allow the extensions element to be used under scopes. Note 
however that the semantics of an extensions element are always global, 
that is, they always apply to the process as a whole, never to just a 
specific scope.

Rationale: Allowing for extension elements under scopes makes it easy to 
create re-usable libraries and dynamically generated code (ala what the 
GRID folks are doing). For example, one can create libraries of scopes 
that can be cut and pasted into place without having to worry about 
fixing up extension declarations. Similarly if one is, for example, 
translating a model into BPEL and that model calls out to various 
libraries who generate actual BPEL code the libraries can easily declare 
what extensions they need within the scopes they generate.
	Note however that the semantics of the extensions declaration are 
always global. So if someone defines a mandatory extension five scopes 
deep the processor must understand that mandatory extension or reject 
the entire process. Also note that allowing extensions to be declared 
under scopes (with global semantics) has no performance penalty for the 
BPEL processor as BPEL’s static analysis requirements already require a 
processor to review the entire process before accepting it for execution.

Summary of changes: Add language to 13.7 to make it legal to use the 
extensions element in scopes.

Section 13.7

Remove the process element from around the extensions element sample schema.

From: “…which is available as a child of the process element…”

To: “…which is available as a child of both the process element and the 
scope element…”

Add the following sentence to the end of the paragraph which starts 
“Extension declarations which are marked mustUnderstand=”yes”…”: The 
lexical scope of an extensions element is the entire process so even if 
an extensions element is declared on a scope nested many levels deep in 
a process, possibly in a scope that isn’t even in reachable code, the 
mustUnderstand semantics MUST still apply to the entire process.

Add the following sentence to the end of the paragraph which starts 
“Extension declarations which are marked mustUnderstand=”no””: As with 
mandatory extensions the lexical scope of an optional extension 
declaration is the entire process.

From: The same extension URI MAY be used multiple times in the 
extensions element.

To: The same extension URI MAY be used multiple times in a single 
extensions element or across multiple extensions elements in the same 
process.

From: The extension declarations in an extensions element MUST be 
treated as an unordered set.

To: The total set of extensions declared throughout an entire process 
MUST be treated as a single unordered set.

Schema:
Add to the tScope declaration:
<element name=”extensions” type=”bpws:tExtensions” minOccurs=”0”/>

        Thanks,

                      Yaron



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]