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 132 - Proposal For Vote

132 - In-line Variable Initialization

Proposal: Allow in-line variable initialization in BPEL

Rationale: Many languages allow for variables to be initialized when 
they are declared so as to allow for an explicit relationship between 
the variable and its initial value. That way no one can accidentally 
insert code between the variable and its initialization thus causing 
various unforeseen problems.

Changes Required:

Section 9.2. Variable

Change the variable syntax declaration to:
	<variable name="ncname" messageType="qname"?
		type=”qname”? element=”qname”?>+

Insert the following paragraph after the paragraph that ends " However 
the children of the document element MUST exclusively consist of the 
complexType values assigned to the variable.":

A variable can optionally be initialized by using an in-line from-spec. 
From-spec is defined in section 9.3. Conceptually the in-line variable 
initializations are modeled as a virtual sequence activity that contains 
a series of virtual assign activities, one for each variable being 
initialized. The virtual assigns then each contain a single virtual copy 
whose from-spec is as given in the variable initialization and the 
to-spec points to the variable being created. For purposes of 
determining order of execution the virtual sequence activity can be 
treated as executing just before the main activity of the scope or 
process the variables are defined on. This means, for example, that the 
fault handlers for the scope/process will be initialized before the 
variables are initialized. The exception to the previous ordering is for 
a scope or process that contains the initial start activity that started 
a process instance. In that case the initial start activity will 
complete execution before variable initialization occurs. But variable 
initialization will then follow immediate after the initial start 
activity and before any other activities are executed.

Change Schema for tVariable to:

<complexType name="tVariable">
       <extension base="bpws:tExtensibleElements">
             <element ref="bpws:from" minOccurs="0"/>
          <attribute name="name" type="NCName" use="required"/>
          <attribute name="messageType" type="QName" use="optional"/>
          <attribute name="type" type="QName" use="optional"/>
          <attribute name="element" type="QName" use="optional"/>

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