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: Re: [wsbpel] Next Meeting of the "Informal" Abstract BPEL ClarificationWorking Group



Hi Phil and others,

My action item this week is to resend a snapshot of email what a group of TC people discussed about Issue 24 few months ago. I attached the ".eml" file here in this email for your reference.

A recap of what we did so far in Feb:
- identify the preliminary list of syntactic differences between abstract and exec BPEL: some of them are already a part of the spec; some are not in the spec yet (e.g. if query for assign is optional in abstract, how about expression?) ; those differences do not cover Issue 91, 97, 99 and 107.
- we also annotate the XSD with special syntax comment to make it easier for us to refer from the preliminary list of syntactic differences to the corresponding part of XSD.

(If someone has problem openning this eml file, please let me know. I tried both Outlook and Mozilla, they both work fine)

Thanks!


Regards,
Alex Yiu



Rossomando, Philip wrote:
Guys:

Abstract BPEL Clarification Working Group Members:
 
Our next teleconference will be on Friday 5/21/2004 from 11:00 AM to 12:00 AM EDT.
 
Our ultimate objective remains to address the "left something out" point raised by Satish in our previous meeting. What are the "some things?" and what's left after these are left out. What is Abstract BPEL to be used for? We need to arrive at a consensus of opinion. The key here is to get all idea on the table. I want to personally thank all those who attended our last meeting and if you know others who may be interested, please feel free to invite them. The contact number is 1-877-302-3764 and the pass code is 4233998. I am looking forward to our next meeting. Please try to come prepared.  I apologize in advance if I did not include some of you on the direct mailing list. If you would kindly send me email to this effect, I will happily correct the omission in the future. (Ivana, sorry but I could not find your email address L).
 
Action Items:


    All: Try to write what you personally consider an Abstract BPEL Use Case.

            Here if you don’t write one, get behind someone who has/will so that

            Your views are expressed.

 

    All:  Come up with a list of “Must Haves” relative to Abstract BPEL. This

            Action is especially important for those of you who don’t write a Use

            Case.

 

     All: Understand the point being brought out by Issues 82, 109 and 107.
 

     Satish:  Make explicit the two use cases related  to abstract BPEL. The first

                    Relates to providing templates for those wishing to provide

                    implementations of standardized services. The second relates to

                    To define the externally visible contract for a protocol. See letter

                    at bottom of this email message. (Note: Nick was supposed to help

                    Satish).

 

     Nick:      When use cases and requirements are available figure out what is

                     The definition of Abstract BPEL. (Actually, this is an action item for the

                     Group to ultimately address.)

 

     Alex:    To resend what he created relative to Abstract and Executable BPEL

                  XSDs.

 

     Phil:  Contact Yaron and ask to see if he can come up with an Abstract

               BPEL Use Case that incorporates opaque as both an element and an

                Attribute.

 

     Phil:   Remind John to provide us with the Abstract BPEL Use Case he promised

                Us for May 14 meeting.

 

     Phil:   Get out the minutes of this meeting.

 

     Diane:  Get us a place (sub-list) on our TC Web site where we can post our work products.

 

 

Left over from Last Meeting:

 

    All: Review spec on abstract BPEL  Section 15 (extensions for Business Protocols).

 

Although not present, it would be nice if Yaron would come up with a Use Case incorporating

Opaque as an Element and as an attribute.
 

Phil Rossomando

 

 

 

Research Director, Technology & Architecture

Unisys Corporation

Unisys Way, B-330

Blue Bell, PA 19424 USA

Philip.rossomando@unisys.com

215-986-3998

FAX 413-0215-2043

 

The following was taken from an email exchange between Yaron and Yuzo dated Thu 4/15/2004 3:17 PM

 

I actually see abstract processes being used in two different contexts.

 

#1 - To define the externally visible contract for a protocol. That is,

system A wishes to work with system B. System B publishes an abstract

process. System A writes its code to work with System B's abstract

process and so is able to interoperate with System B's executable process.

 

#2 - To provide templates for those wishing to provide implementations

of standardized services. For example, the International Association of

Widget makers provides a standard for a widget request service. As part

of that standard they provide an abstract process definition that

specifies how someone implementing the widget request service is to

behave. So when a widget maker decides to implement the widget request

service they will validate their executable code against the abstract

process definition. In other words, they must make sure that their

executable process does the same thing the abstract process definition

specifies. This is the inverse of the previous example.

 

To your point about being able to put in an assign but not a receive, I

would offer the following as a counter example. Imagine that a widget

maker implementing the widget request service adds in a receive to their

implementation of the widget request service that waits for up-to-date

information from the widget factories as to the current number of

available widgets. This receive not be specified in the abstract process

definition since it is not relevant to that definition how the widget

request service knows how many widgets are available. So in this case it

is completely reasonable for the executable process to add in a receive

that was never specified in the abstract process definition.

 

Finally, as to your assertion that opaque is not necessary it is very

difficult to respond to an assertion. In my original e-mail below I

provide two examples where the use of either nothing or empty causes

ambiguities and then show how opaque resolves those ambiguities. If you

could illustrate that the ambiguities I describe don't actually exist

then it would seem likely that you would have made the case that opaque

is unnecessary.

 

    Thanks,

          Yaron

 

 

 


--- Begin Message ---

Hi, Paco and all others,


Here is the version of XML Schema which got further annotated by me 
(first round draft).
(well-formed and validated by XMLSpy)
Markup 09 - 20 are added.


-----------------------------------
Regarding to Paco's questions:  Paco wrote:
(A) "every process will have at least one partner link (on the 
assumption that no processes w/o external
interaction will be defined, either abstract or executable)."
(B) "I also don't understand the point about making 'expression' part of 
executable processes
only, because it uses XPath. Can you explain?"

For (A), I am actually referring to  "[xsd] #ayiu-09".
<element name="partnerLinks" type="bpws:tPartnerLinks" minOccurs="0"/>
Somehow, the minOccurs is zero there. Actually, it make senses to me 
that BPEL will always have at least ONE pLink no matter whether it is 
abstract or executable. I raised my original question / suggestion by 
assuming the zero minOccurs in the existing schema might be meaningful 
for abstract BPEL.

For (B),
The reason behind sugesting expression becoming executable only is:
I guess the reason behind make "query" attribute executable only is to 
hide / encapsulate: (i) the query language (XPath) details or (ii) 
message/variable structure details from Abstract BPEL developers. That 
is: (i) whether the final executable BPEL is using XPath or other query 
languages to do query on messages and variables. (ii) what exactly is 
the message / variable structures. Because the message may come from an 
abstract WSDL or abstract Schema Type.

Using the same principles / reasons, the expression used in BPEL should 
be marked as executable only.

For example: consider these:

<assign>
    <from variable="PO" query="/po/amt" />
    <to ... />
</assign>

<assign>
    <from expression="getVariableData(orderDetails)/po/amt * 0.9" />
    <to ... />
</assign>

If query attribute needs to be executable only, then expression may need 
to be executable only also.

Related markups are:
"[exec] #ayiu-13" "[exec] #ayiu-14" "[exec] #ayiu-15" "[exec] #ayiu-17"
"[exec] #ayiu-18" "[exec] #ayiu-19"
-----------------------------------


-----------------------------------
"[xsd] #ayiu-09": we may want to increase the minOccurs to 1, no matter 
for abstract or executable BPEL.

"[question] #ayiu-10": the usage of "partners" definition / declaration 
are under-specified in the spec. Anyone to shred some light on that? So, 
I am not sure whether it should be abstract / executable / both. Or, I 
should send this question to the general OASIS BPEL email list?

"[xsd] #ayiu-11": Similar to "[xsd] #ayiu-09" for variables. Is BPEL 
always stateful?

"[xsd] #ayiu-12": I tend to think we should actually have two different 
QNAMES for Abstract or Executable BPEL instead of just a boolean attribute.

"[exec] #ayiu-13" "[exec] #ayiu-14" "[exec] #ayiu-15" "[exec] #ayiu-17"
"[exec] #ayiu-18" "[exec] #ayiu-19": These markups are covered in (B) 
section above. And, if needed and agreed, we may want to add 
"opaqueExpression" or "opaque*Condition" attribute of "xsd:string" to 
the abstract version of above elements.

"[question] #ayiu-16": I have some minor reservation for making some 
variables compulsory for now. Because, it is related to WSDL 1.1 and 2.0.

"[question] #ayiu-20": If expression can be opaque in abstract BPEL , 
then variableAccessSerializable is meaningful only in executable BPEL??
-----------------------------------


Thanks for reading this email!




Regards,
Alex Yiu



Francisco Curbera wrote:

>
>
>This is my first cut at the list of differences, those thta are explicitly
>mentioned in the spec; I annotated them in the schema as Alex suggested.
>Note that I added a fourth type of difference ([xsd]) which represents
>schema rather than language artifacts that are different for the executable
>and abstract cases.
>
>1. [exec] "query" attribute in <from> and <to> element only allowed for
>executable processes.
>2. [abstract] "opaque" attribute in <from> element allowed only for
>abstract processes.
>3. [xsd] Restricting "opaque" attribute from appearing in <to> element
>unnecessary for executable processes.
>4. [diff] "inputVariable" attribute on <invoke> required in executable
>processes.
>5. [diff] "variable" attribute on <receive> required in executable
>processes.
>6. [diff] "inputVariable" attribute on <reply> required in executable
>processes.
>7. [exec] <terminate> activity only allowed in executable processes.
>8. [diff] "abstractProcess" attribute holds difference values.
>
>I don't understand example 2 in Alex' mail, since partner links are
>required in all service interaction activities (receive, reply, invoke,
>onEvent), which leads me to believe that every process will have at least
>one partner link (on the assumption that no processes w/o external
>interaction will be defined, either abstract or executable). I also don't
>understand the point about making "expression" part of executable processes
>only, because it uses XPath. Can you explain?
>
>Paco
>
>(See attached file: wsbpel-annotated.xsd)
>
>  
>
[stuff deleted]

<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://schemas.xmlsoap.org/ws/2003/03/business-process/"; xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"; xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns="http://www.w3.org/2001/XMLSchema"; elementFormDefault="qualified">
	<import namespace="http://schemas.xmlsoap.org/wsdl/"; schemaLocation="http://schemas.xmlsoap.org/wsdl/"/>
	<complexType name="tExtensibleElements">
		<annotation>
			<documentation>
		This type is extended by other component types
		to allow elements and attributes from
		other namespaces to be added.
	   </documentation>
		</annotation>
		<sequence>
			<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
		<anyAttribute namespace="##other" processContents="lax"/>
	</complexType>
	<element name="process" type="bpws:tProcess"/>
	<complexType name="tProcess">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<sequence>
					<element name="import" type="bpws:tImport" minOccurs="0"/>
					<element name="partnerLinks" type="bpws:tPartnerLinks" minOccurs="0"/>
					<!-- [xsd] #ayiu-09 -->
					<element name="partners" type="bpws:tPartners" minOccurs="0"/>
					<!-- [question] #ayiu-10 -->
					<element name="variables" type="bpws:tVariables" minOccurs="0"/>
					<!-- [xsd] #ayiu-11 -->
					<element name="correlationSets" type="bpws:tCorrelationSets" minOccurs="0"/>
					<element name="faultHandlers" type="bpws:tFaultHandlers" minOccurs="0"/>
					<element name="compensationHandler" type="bpws:tCompensationHandler" minOccurs="0"/>
					<element name="eventHandlers" type="bpws:tEventHandlers" minOccurs="0"/>
					<group ref="bpws:activity"/>
				</sequence>
				<attribute name="name" type="NCName" use="required"/>
				<attribute name="targetNamespace" type="anyURI" use="required"/>
				<attribute name="queryLanguage" type="anyURI" default="http://www.w3.org/TR/1999/REC-xpath-19991116"/>
				<attribute name="expressionLanguage" type="anyURI" default="http://www.w3.org/TR/1999/REC-xpath-19991116"/>
				<attribute name="suppressJoinFailure" type="bpws:tBoolean" default="no"/>
				<attribute name="enableInstanceCompensation" type="bpws:tBoolean" default="no"/>
				<attribute name="abstractProcess" type="bpws:tBoolean" default="no"/>
				<!-- [exec] #8 --> 
				<!-- [xsd] #ayiu-12 -->
			</extension>
		</complexContent>
	</complexType>
	<group name="activity">
		<choice>
			<element name="empty" type="bpws:tEmpty"/>
			<element name="invoke" type="bpws:tInvoke"/>
			<element name="receive" type="bpws:tReceive"/>
			<element name="reply" type="bpws:tReply"/>
			<element name="assign" type="bpws:tAssign"/>
			<element name="wait" type="bpws:tWait"/>
			<element name="throw" type="bpws:tThrow"/>
			<element name="terminate" type="bpws:tTerminate"/>
			<element name="flow" type="bpws:tFlow"/>
			<element name="switch" type="bpws:tSwitch"/>
			<element name="while" type="bpws:tWhile"/>
			<element name="sequence" type="bpws:tSequence"/>
			<element name="pick" type="bpws:tPick"/>
			<element name="scope" type="bpws:tScope"/>
			<!-- [exec] #7 -->
		</choice>
	</group>
	<complexType name="tImport">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<attribute name="namespace" type="anyURI"/>
				<attribute name="location" type="anyURI"/>
				<attribute name="importType" type="bpws:importedURI"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tPartnerLinks">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<sequence>
					<element name="partnerLink" type="bpws:tPartnerLink" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tPartnerLink">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<attribute name="name" type="NCName" use="required"/>
				<attribute name="partnerLinkType" type="QName" use="required"/>
				<attribute name="myRole" type="NCName"/>
				<attribute name="partnerRole" type="NCName"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tPartners">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<sequence>
					<element name="partner" type="bpws:tPartner" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tPartner">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<sequence>
					<element name="partnerLink" maxOccurs="unbounded">
						<complexType>
							<complexContent>
								<extension base="bpws:tExtensibleElements">
									<attribute name="name" type="NCName" use="required"/>
								</extension>
							</complexContent>
						</complexType>
					</element>
				</sequence>
				<attribute name="name" type="NCName" use="required"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tFaultHandlers">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<sequence>
					<element name="catch" type="bpws:tCatch" minOccurs="0" maxOccurs="unbounded"/>
					<element name="catchAll" type="bpws:tActivityOrCompensateContainer" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tCatch">
		<complexContent>
			<extension base="bpws:tActivityOrCompensateContainer">
				<attribute name="faultName" type="QName"/>
				<attribute name="faultVariable" type="NCName"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tActivityContainer">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<sequence>
					<group ref="bpws:activity"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tActivityOrCompensateContainer">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<choice>
					<group ref="bpws:activity"/>
					<element name="compensate" type="bpws:tCompensate"/>
				</choice>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tEventHandlers">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<sequence>
					<element name="onMessageonEvent" type="bpws:tOnMessage" minOccurs="0" maxOccurs="unbounded"/>
					<element name="onAlarm" type="bpws:tOnAlarm" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tOnMessage">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<sequence>
					<element name="correlations" type="bpws:tCorrelations" minOccurs="0"/>
					<group ref="bpws:activity"/>
				</sequence>
				<attribute name="partnerLink" type="NCName" use="required"/>
				<attribute name="portType" type="QName" use="required"/>
				<attribute name="operation" type="NCName" use="required"/>
				<attribute name="messageType" type="QName" use="required"/>
				<attribute name="variable" type="NCName" use="optional"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tOnAlarm">
		<complexContent>
			<extension base="bpws:tActivityContainer">
				<attribute name="for" type="bpws:tDuration-expr"/>
				<attribute name="until" type="bpws:tDeadline-expr"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tCompensationHandler">
		<complexContent>
			<extension base="bpws:tActivityOrCompensateContainer"/>
		</complexContent>
	</complexType>
	<complexType name="tVariables">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<sequence>
					<element name="variable" type="bpws:tVariable" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tVariable">
		<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"/>
		<anyAttribute namespace="##other" processContents="lax"/>
		<!-- variable does not allow extensibility elements
because otherwise its content model would be non-deterministic -->
	</complexType>
	<complexType name="tCorrelationSets">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<sequence>
					<element name="correlationSet" type="bpws:tCorrelationSet" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tCorrelationSet">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<attribute name="properties" use="required">
					<simpleType>
						<list itemType="QName"/>
					</simpleType>
				</attribute>
				<attribute name="name" type="NCName" use="required"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tActivity">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<sequence>
					<element name="targets" type="bpws:tTargets" minOccurs="0" maxOccurs="unbounded"/>
					<element name="sources" type="bpws:tSources" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
				<attribute name="name" type="NCName"/>
				<attribute name="joinCondition" type="bpws:tBoolean-expr"/>
				<!-- [exec] #ayiu-13 -->
				<attribute name="suppressJoinFailure" type="bpws:tBoolean" default="no"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tTargets">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<sequence>
					<element name="target" type="bpws:tTarget" maxOccurs="unbounded"/>
				</sequence>
				<attribute name="joinCondition" type="bpws:tBoolean-expr"/>
				<!-- [exec] #ayiu-14 -->
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tSources">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<sequence>
					<element name="source" type="bpws:tSource" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tSource">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<attribute name="linkName" type="NCName" use="required"/>
				<attribute name="transitionCondition" type="bpws:tBoolean-expr"/>
				<!-- [exec] #ayiu-15 -->
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tTarget">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<attribute name="linkName" type="NCName" use="required"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tEmpty">
		<complexContent>
			<extension base="bpws:tActivity"/>
		</complexContent>
	</complexType>
	<complexType name="tCorrelations">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<sequence>
					<element name="correlation" type="bpws:tCorrelation" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tCorrelation">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<attribute name="set" type="NCName" use="required"/>
				<attribute name="initiate" type="bpws:tBoolean" default="no"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tCorrelationsWithPattern">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<sequence>
					<element name="correlation" type="bpws:tCorrelationWithPattern" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tCorrelationWithPattern">
		<complexContent>
			<extension base="bpws:tCorrelation">
				<attribute name="pattern">
					<simpleType>
						<restriction base="string">
							<enumeration value="in"/>
							<enumeration value="out"/>
							<enumeration value="out-in"/>
						</restriction>
					</simpleType>
				</attribute>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tInvoke">
		<complexContent>
			<extension base="bpws:tActivity">
				<sequence>
					<element name="correlations" type="bpws:tCorrelationsWithPattern" minOccurs="0"/>
					<element name="catch" type="bpws:tCatch" minOccurs="0" maxOccurs="unbounded"/>
					<element name="catchAll" type="bpws:tActivityOrCompensateContainer" minOccurs="0"/>
					<element name="compensationHandler" type="bpws:tCompensationHandler" minOccurs="0"/>
				</sequence>
				<attribute name="partnerLink" type="NCName" use="required"/>
				<attribute name="portType" type="QName" use="required"/>
				<attribute name="operation" type="NCName" use="required"/>
				<attribute name="inputVariable" type="NCName" use="optional"/>
				<!-- [diff] #4 -->
				<!-- [question] #ayiu-16 -->
				<attribute name="outputVariable" type="NCName" use="optional"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tReceive">
		<complexContent>
			<extension base="bpws:tActivity">
				<sequence>
					<element name="correlations" type="bpws:tCorrelations" minOccurs="0"/>
				</sequence>
				<attribute name="partnerLink" type="NCName" use="required"/>
				<attribute name="portType" type="QName" use="required"/>
				<attribute name="operation" type="NCName" use="required"/>
				<attribute name="variable" type="NCName" use="optional"/>
				<!-- [diff] #5 -->
				<attribute name="createInstance" type="bpws:tBoolean" default="no"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tReply">
		<complexContent>
			<extension base="bpws:tActivity">
				<sequence>
					<element name="correlations" type="bpws:tCorrelations" minOccurs="0"/>
				</sequence>
				<attribute name="partnerLink" type="NCName" use="required"/>
				<attribute name="portType" type="QName" use="required"/>
				<attribute name="operation" type="NCName" use="required"/>
				<attribute name="variable" type="NCName" use="optional"/>
				<!-- [diff] #6 -->
				<attribute name="faultName" type="QName"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tAssign">
		<complexContent>
			<extension base="bpws:tActivity">
				<sequence>
					<element name="copy" type="bpws:tCopy" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tCopy">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<sequence>
					<element ref="bpws:from"/>
					<element ref="bpws:to"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name="from" type="bpws:tFrom"/>
	<complexType name="tFrom">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<attribute name="variable" type="NCName"/>
				<attribute name="part" type="NCName"/>
				<attribute name="query" type="string"/>
				<!-- [exec] #1 -->
				<attribute name="property" type="QName"/>
				<attribute name="partnerLink" type="NCName"/>
				<attribute name="endpointReference" type="bpws:tRoles"/>
				<attribute name="expression" type="string"/>
				<!-- [exec] #ayiu-17 -->
				<attribute name="opaque" type="bpws:tBoolean"/>
				<!-- [abstract] #2 -->
			</extension>
		</complexContent>
	</complexType>
	<element name="to">
		<complexType>
			<complexContent>
				<restriction base="bpws:tFrom">
					<attribute name="expression" type="string" use="prohibited"/>
					<attribute name="opaque" type="bpws:tBoolean" use="prohibited"/>
					<!-- [xsd] #3 -->
					<attribute name="endpointReference" type="bpws:tRoles" use="prohibited"/>
				</restriction>
			</complexContent>
		</complexType>
	</element>
	<complexType name="tWait">
		<complexContent>
			<extension base="bpws:tActivity">
				<attribute name="for" type="bpws:tDuration-expr"/>
				<attribute name="until" type="bpws:tDeadline-expr"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tThrow">
		<complexContent>
			<extension base="bpws:tActivity">
				<attribute name="faultName" type="QName" use="required"/>
				<attribute name="faultVariable" type="NCName"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tCompensate">
		<complexContent>
			<extension base="bpws:tActivity">
				<attribute name="scope" type="NCName"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tTerminate">
		<complexContent>
			<extension base="bpws:tActivity"/>
		</complexContent>
	</complexType>
	<complexType name="tFlow">
		<complexContent>
			<extension base="bpws:tActivity">
				<sequence>
					<element name="links" type="bpws:tLinks" minOccurs="0"/>
					<group ref="bpws:activity" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tLinks">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<sequence>
					<element name="link" type="bpws:tLink" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tLink">
		<complexContent>
			<extension base="bpws:tExtensibleElements">
				<attribute name="name" type="NCName" use="required"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tSwitch">
		<complexContent>
			<extension base="bpws:tActivity">
				<sequence>
					<element name="case" maxOccurs="unbounded">
						<complexType>
							<complexContent>
								<extension base="bpws:tActivityContainer">
									<attribute name="condition" type="bpws:tBoolean-expr" use="required"/>
									<!-- [exec] #ayiu-18 -->
								</extension>
							</complexContent>
						</complexType>
					</element>
					<element name="otherwise" type="bpws:tActivityContainer" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tWhile">
		<complexContent>
			<extension base="bpws:tActivity">
				<sequence>
					<group ref="bpws:activity"/>
				</sequence>
				<attribute name="condition" type="bpws:tBoolean-expr" use="required"/>
				<!-- [exec] #ayiu-19 -->
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tSequence">
		<complexContent>
			<extension base="bpws:tActivity">
				<sequence>
					<group ref="bpws:activity" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tPick">
		<complexContent>
			<extension base="bpws:tActivity">
				<sequence>
					<element name="onMessage" type="bpws:tOnMessage" maxOccurs="unbounded"/>
					<element name="onAlarm" type="bpws:tOnAlarm" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
				<attribute name="createInstance" type="bpws:tBoolean" default="no"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="tScope">
		<complexContent>
			<extension base="bpws:tActivity">
				<sequence>
					<element name="variables" type="bpws:tVariables" minOccurs="0"/>
					<element name="correlationSets" type="bpws:tCorrelationSets" minOccurs="0"/>
					<element name="faultHandlers" type="bpws:tFaultHandlers" minOccurs="0"/>
					<element name="compensationHandler" type="bpws:tCompensationHandler" minOccurs="0"/>
					<element name="eventHandlers" type="bpws:tEventHandlers" minOccurs="0"/>
					<group ref="bpws:activity"/>
				</sequence>
				<attribute name="variableAccessSerializable" type="bpws:tBoolean" default="no"/>
				<!-- [question] #ayiu-20 -->
			</extension>
		</complexContent>
	</complexType>
	<simpleType name="importedURI">
		<restriction base="anyURI">
			<enumeration value="http://www.w3.org/2001/XMLSchema"/>
			<enumeration value="http://schemas.xmlsoap.org/wsdl/"/>
		</restriction>
	</simpleType>
	<simpleType name="tBoolean-expr">
		<restriction base="string"/>
	</simpleType>
	<simpleType name="tDuration-expr">
		<restriction base="string"/>
	</simpleType>
	<simpleType name="tDeadline-expr">
		<restriction base="string"/>
	</simpleType>
	<simpleType name="tBoolean">
		<restriction base="string">
			<enumeration value="yes"/>
			<enumeration value="no"/>
		</restriction>
	</simpleType>
	<simpleType name="tRoles">
		<restriction base="string">
			<enumeration value="myRole"/>
			<enumeration value="partnerRole"/>
		</restriction>
	</simpleType>
</schema>
--- End Message ---


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