Schema Name: ws-bpel_executable.xsd
Target Namespace: http://docs.oasis-open.org/wsbpel/2.0/process/executable
Documentation:
Schema for Executable Process for WS-BPEL 2.0 OASIS Standard 11th April, 2007
Collapse XSD Schema Code:

<!--
	Copyright (c) OASIS Open 2003-2007. All Rights Reserved.
-->
<xsd:schema targetNamespace="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
			xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
			xmlns:xsd="http://www.w3.org/2001/XMLSchema"
			elementFormDefault="qualified"
			blockDefault="#all">
	
	<xsd:annotation>
		<xsd:documentation>
			Schema for Executable Process for WS-BPEL 2.0
			OASIS Standard
			11th April, 2007
		</xsd:documentation>
	</xsd:annotation>
	
	<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
	
	<xsd:element name="process" type="tProcess">
		<xsd:annotation>
			<xsd:documentation>
				This is the root element for a WS-BPEL 2.0 process.
			</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="tProcess">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element ref="extensions" minOccurs="0"/>
					<xsd:element ref="import" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element ref="partnerLinks" minOccurs="0"/>
					<xsd:element ref="messageExchanges" minOccurs="0"/>
					<xsd:element ref="variables" minOccurs="0"/>
					<xsd:element ref="correlationSets" minOccurs="0"/>
					<xsd:element ref="faultHandlers" minOccurs="0"/>
					<xsd:element ref="eventHandlers" minOccurs="0"/>
					<xsd:group ref="activity" minOccurs="1"/>
				</xsd:sequence>
				<xsd:attribute name="name" type="xsd:NCName" use="required"/>
				<xsd:attribute name="targetNamespace" type="xsd:anyURI" use="required"/>
				<xsd:attribute name="queryLanguage" type="xsd:anyURI" default="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"/>
				<xsd:attribute name="expressionLanguage" type="xsd:anyURI" default="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"/>
				<xsd:attribute name="suppressJoinFailure" type="tBoolean" default="no"/>
				<xsd:attribute name="exitOnStandardFault" type="tBoolean" default="no"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:complexType name="tExtensibleElements">
		<xsd:annotation>
			<xsd:documentation>
				This type is extended by other component types to allow elements and attributes from
				other namespaces to be added at the modeled places.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element ref="documentation" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:anyAttribute namespace="##other" processContents="lax"/>
	</xsd:complexType>
	
	<xsd:element name="documentation" type="tDocumentation"/>
	<xsd:complexType name="tDocumentation" mixed="true">
		<xsd:sequence>
			<xsd:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="source" type="xsd:anyURI"/>
		<xsd:attribute ref="xml:lang"/>
	</xsd:complexType>
	
	<xsd:group name="activity">
		<xsd:annotation>
			<xsd:documentation>
				All standard WS-BPEL 2.0 activities in alphabetical order. Basic activities
				and structured activities.
				Addtional constraints:
				- rethrow activity can be used ONLY within a fault handler
				  (i.e. "catch" and "catchAll" element)
				- compensate or compensateScope activity can be used ONLY
				  within a fault handler, a compensation handler or a termination handler
			</xsd:documentation>
		</xsd:annotation>
		<xsd:choice>
			<xsd:element ref="assign"/>
			<xsd:element ref="compensate"/>
			<xsd:element ref="compensateScope"/>
			<xsd:element ref="empty"/>
			<xsd:element ref="exit"/>
			<xsd:element ref="extensionActivity"/>
			<xsd:element ref="flow"/>
			<xsd:element ref="forEach"/>
			<xsd:element ref="if"/>
			<xsd:element ref="invoke"/>
			<xsd:element ref="pick"/>
			<xsd:element ref="receive"/>
			<xsd:element ref="repeatUntil"/>
			<xsd:element ref="reply"/>
			<xsd:element ref="rethrow"/>
			<xsd:element ref="scope"/>
			<xsd:element ref="sequence"/>
			<xsd:element ref="throw"/>
			<xsd:element ref="validate"/>
			<xsd:element ref="wait"/>
			<xsd:element ref="while"/>
		</xsd:choice>
	</xsd:group>
	
	<xsd:element name="extensions" type="tExtensions"/>
	<xsd:complexType name="tExtensions">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element ref="extension" minOccurs="1" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="extension" type="tExtension"/>
	<xsd:complexType name="tExtension">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:attribute name="namespace" type="xsd:anyURI" use="required"/>
				<xsd:attribute name="mustUnderstand" type="tBoolean" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="import" type="tImport"/>
	<xsd:complexType name="tImport">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:attribute name="namespace" type="xsd:anyURI" use="optional"/>
				<xsd:attribute name="location" type="xsd:anyURI" use="optional"/>
				<xsd:attribute name="importType" type="xsd:anyURI" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="partnerLinks" type="tPartnerLinks"/>
	<xsd:complexType name="tPartnerLinks">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element ref="partnerLink" minOccurs="1" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="partnerLink" type="tPartnerLink"/>
	<xsd:complexType name="tPartnerLink">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:attribute name="name" type="xsd:NCName" use="required"/>
				<xsd:attribute name="partnerLinkType" type="xsd:QName" use="required"/>
				<xsd:attribute name="myRole" type="xsd:NCName"/>
				<xsd:attribute name="partnerRole" type="xsd:NCName"/>
				<xsd:attribute name="initializePartnerRole" type="tBoolean"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="messageExchanges" type="tMessageExchanges"/>
	<xsd:complexType name="tMessageExchanges">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element ref="messageExchange" minOccurs="1" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="messageExchange" type="tMessageExchange"/>
	<xsd:complexType name="tMessageExchange">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:attribute name="name" type="xsd:NCName" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="variables" type="tVariables"/>
	<xsd:complexType name="tVariables">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element ref="variable" minOccurs="1" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="variable" type="tVariable"/>
	<xsd:complexType name="tVariable">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element ref="from" minOccurs="0"/>
				</xsd:sequence>
				<xsd:attribute name="name" type="BPELVariableName" use="required"/>
				<xsd:attribute name="messageType" type="xsd:QName" use="optional"/>
				<xsd:attribute name="type" type="xsd:QName" use="optional"/>
				<xsd:attribute name="element" type="xsd:QName" use="optional"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:simpleType name="BPELVariableName">
		<xsd:restriction base="xsd:NCName">
			<xsd:pattern value="[^\.]+"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:element name="correlationSets" type="tCorrelationSets"/>
	<xsd:complexType name="tCorrelationSets">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element ref="correlationSet" minOccurs="1" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="correlationSet" type="tCorrelationSet"/>
	<xsd:complexType name="tCorrelationSet">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:attribute name="properties" type="QNames" use="required"/>
				<xsd:attribute name="name" type="xsd:NCName" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:simpleType name="QNames">
		<xsd:restriction>
			<xsd:simpleType>
				<xsd:list itemType="xsd:QName"/>
			</xsd:simpleType>
			<xsd:minLength value="1"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:element name="faultHandlers" type="tFaultHandlers"/>
	<xsd:complexType name="tFaultHandlers">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element ref="catch" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element ref="catchAll" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="catch" type="tCatch">
		<xsd:annotation>
			<xsd:documentation>
				This element can contain all activities including the activities
				compensate, compensateScope and rethrow.
			</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="tCatch">
		<xsd:complexContent>
			<xsd:extension base="tActivityContainer">
				<xsd:attribute name="faultName" type="xsd:QName"/>
				<xsd:attribute name="faultVariable" type="BPELVariableName"/>
				<xsd:attribute name="faultMessageType" type="xsd:QName"/>
				<xsd:attribute name="faultElement" type="xsd:QName"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="catchAll" type="tActivityContainer">
		<xsd:annotation>
			<xsd:documentation>
				This element can contain all activities including the activities
				compensate, compensateScope and rethrow.
			</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	
	<xsd:complexType name="tActivityContainer">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:group ref="activity" minOccurs="1"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="eventHandlers" type="tEventHandlers"/>
	<xsd:complexType name="tEventHandlers">
		<xsd:annotation>
			<xsd:documentation>
				XSD Authors: The child element onAlarm needs to be a Local Element Declaration, 
				because there is another onAlarm element defined for the pick activity.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element ref="onEvent" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element name="onAlarm" type="tOnAlarmEvent" minOccurs="0" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="onEvent" type="tOnEvent"/>
	<xsd:complexType name="tOnEvent">
		<xsd:complexContent>
			<xsd:extension base="tOnMsgCommon">
				<xsd:sequence>
					<xsd:element ref="scope" minOccurs="1"/>
				</xsd:sequence>
				<xsd:attribute name="messageType" type="xsd:QName" use="optional"/>
				<xsd:attribute name="element" type="xsd:QName" use="optional"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:complexType name="tOnMsgCommon">
		<xsd:annotation>
			<xsd:documentation>
				XSD Authors: The child element correlations needs to be a Local Element Declaration, 
				because there is another correlations element defined for the invoke activity.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element name="correlations" type="tCorrelations" minOccurs="0"/>
					<xsd:element ref="fromParts" minOccurs="0"/>
				</xsd:sequence>
				<xsd:attribute name="partnerLink" type="xsd:NCName" use="required"/>
				<xsd:attribute name="portType" type="xsd:QName" use="optional"/>
				<xsd:attribute name="operation" type="xsd:NCName" use="required"/>
				<xsd:attribute name="messageExchange" type="xsd:NCName" use="optional"/>
				<xsd:attribute name="variable" type="BPELVariableName" use="optional"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:complexType name="tCorrelations">
		<xsd:annotation>
			<xsd:documentation>
				XSD Authors: The child element correlation needs to be a Local Element Declaration, 
				because there is another correlation element defined for the invoke activity.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element name="correlation" type="tCorrelation" minOccurs="1" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:complexType name="tCorrelation">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:attribute name="set" type="xsd:NCName" use="required"/>
				<xsd:attribute name="initiate" type="tInitiate" default="no"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:simpleType name="tInitiate">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="yes"/>
			<xsd:enumeration value="join"/>
			<xsd:enumeration value="no"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:complexType name="tOnAlarmEvent">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:choice>
						<xsd:sequence>
							<xsd:group ref="forOrUntilGroup" minOccurs="1"/>
							<xsd:element ref="repeatEvery" minOccurs="0"/>
						</xsd:sequence>
						<xsd:element ref="repeatEvery" minOccurs="1"/>
					</xsd:choice>
					<xsd:element ref="scope" minOccurs="1"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:group name="forOrUntilGroup">
		<xsd:choice>
			<xsd:element ref="for" minOccurs="1"/>
			<xsd:element ref="until" minOccurs="1"/>
		</xsd:choice>
	</xsd:group>
	
	<xsd:element name="for" type="tDuration-expr"/>
	
	<xsd:element name="until" type="tDeadline-expr"/>
	
	<xsd:element name="repeatEvery" type="tDuration-expr"/>
	
	<xsd:complexType name="tActivity">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element ref="targets" minOccurs="0"/>
					<xsd:element ref="sources" minOccurs="0"/>
				</xsd:sequence>
				<xsd:attribute name="name" type="xsd:NCName"/>
				<xsd:attribute name="suppressJoinFailure" type="tBoolean" use="optional"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="targets" type="tTargets"/>
	<xsd:complexType name="tTargets">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element ref="joinCondition" minOccurs="0"/>
					<xsd:element ref="target" minOccurs="1" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="joinCondition" type="tCondition"/>
	
	<xsd:element name="target" type="tTarget"/>
	<xsd:complexType name="tTarget">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:attribute name="linkName" type="xsd:NCName" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="sources" type="tSources"/>
	<xsd:complexType name="tSources">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element ref="source" minOccurs="1" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="source" type="tSource"/>
	<xsd:complexType name="tSource">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element ref="transitionCondition" minOccurs="0"/>
				</xsd:sequence>
				<xsd:attribute name="linkName" type="xsd:NCName" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="transitionCondition" type="tCondition"/>
	
	<xsd:element name="assign" type="tAssign"/>
	<xsd:complexType name="tAssign">
		<xsd:complexContent>
			<xsd:extension base="tActivity">
				<xsd:sequence>
					<xsd:choice maxOccurs="unbounded">
						<xsd:element ref="copy" minOccurs="1"/>
						<xsd:element ref="extensionAssignOperation" minOccurs="1"/>
					</xsd:choice>
				</xsd:sequence>
				<xsd:attribute name="validate" type="tBoolean" use="optional" default="no"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="copy" type="tCopy"/>
	<xsd:complexType name="tCopy">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element ref="from" minOccurs="1"/>
					<xsd:element ref="to" minOccurs="1"/>
				</xsd:sequence>
				<xsd:attribute name="keepSrcElementName" type="tBoolean" use="optional" default="no"/>
				<xsd:attribute name="ignoreMissingFromData" type="tBoolean" use="optional" default="no"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="from" type="tFrom"/>
	<xsd:complexType name="tFrom" mixed="true">
		<xsd:sequence>
			<xsd:element ref="documentation" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:choice minOccurs="0">
				<xsd:element ref="literal" minOccurs="1"/>
				<xsd:element ref="query" minOccurs="1"/>
			</xsd:choice>
		</xsd:sequence>
		<xsd:attribute name="expressionLanguage" type="xsd:anyURI"/>
		<xsd:attribute name="variable" type="BPELVariableName"/>
		<xsd:attribute name="part" type="xsd:NCName"/>
		<xsd:attribute name="property" type="xsd:QName"/>
		<xsd:attribute name="partnerLink" type="xsd:NCName"/>
		<xsd:attribute name="endpointReference" type="tRoles"/>
		<xsd:anyAttribute namespace="##other" processContents="lax"/>
	</xsd:complexType>
	
	<xsd:element name="literal" type="tLiteral"/>
	<xsd:complexType name="tLiteral" mixed="true">
		<xsd:sequence>
			<xsd:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:element name="query" type="tQuery"/>
	<xsd:complexType name="tQuery" mixed="true">
		<xsd:sequence>
			<xsd:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="queryLanguage" type="xsd:anyURI"/>
		<xsd:anyAttribute namespace="##other" processContents="lax"/>
	</xsd:complexType>
	
	<xsd:simpleType name="tRoles">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="myRole"/>
			<xsd:enumeration value="partnerRole"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:element name="to" type="tTo"/>
	<xsd:complexType name="tTo" mixed="true">
		<xsd:sequence>
			<xsd:element ref="documentation" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="query" minOccurs="0"/>
		</xsd:sequence>
		<xsd:attribute name="expressionLanguage" type="xsd:anyURI"/>
		<xsd:attribute name="variable" type="BPELVariableName"/>
		<xsd:attribute name="part" type="xsd:NCName"/>
		<xsd:attribute name="property" type="xsd:QName"/>
		<xsd:attribute name="partnerLink" type="xsd:NCName"/>
		<xsd:anyAttribute namespace="##other" processContents="lax"/>
	</xsd:complexType>
	
	<xsd:element name="extensionAssignOperation" type="tExtensionAssignOperation"/>
	<xsd:complexType name="tExtensionAssignOperation">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements"/>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="compensate" type="tCompensate"/>
	<xsd:complexType name="tCompensate">
		<xsd:complexContent>
			<xsd:extension base="tActivity"/>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="compensateScope" type="tCompensateScope"/>
	<xsd:complexType name="tCompensateScope">
		<xsd:complexContent>
			<xsd:extension base="tActivity">
				<xsd:attribute name="target" type="xsd:NCName" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="empty" type="tEmpty"/>
	<xsd:complexType name="tEmpty">
		<xsd:complexContent>
			<xsd:extension base="tActivity"/>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="exit" type="tExit"/>
	<xsd:complexType name="tExit">
		<xsd:complexContent>
			<xsd:extension base="tActivity"/>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="extensionActivity" type="tExtensionActivity"/>
	<xsd:complexType name="tExtensionActivity">
		<xsd:sequence>
			<xsd:any namespace="##other" processContents="lax"/>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:element name="flow" type="tFlow"/>
	<xsd:complexType name="tFlow">
		<xsd:complexContent>
			<xsd:extension base="tActivity">
				<xsd:sequence>
					<xsd:element ref="links" minOccurs="0"/>
					<xsd:group ref="activity" minOccurs="1" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="links" type="tLinks"/>
	<xsd:complexType name="tLinks">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element ref="link" minOccurs="1" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="link" type="tLink"/>
	<xsd:complexType name="tLink">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:attribute name="name" type="xsd:NCName" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="forEach" type="tForEach"/>
	<xsd:complexType name="tForEach">
		<xsd:complexContent>
			<xsd:extension base="tActivity">
				<xsd:sequence>
					<xsd:element ref="startCounterValue" minOccurs="1"/>
					<xsd:element ref="finalCounterValue" minOccurs="1"/>
					<xsd:element ref="completionCondition" minOccurs="0"/>
					<xsd:element ref="scope" minOccurs="1"/>
				</xsd:sequence>
				<xsd:attribute name="counterName" type="BPELVariableName" use="required"/>
				<xsd:attribute name="parallel" type="tBoolean" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="startCounterValue" type="tExpression"/>
	
	<xsd:element name="finalCounterValue" type="tExpression"/>
	
	<xsd:element name="completionCondition" type="tCompletionCondition"/>
	<xsd:complexType name="tCompletionCondition">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element ref="branches" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="branches" type="tBranches"/>
	<xsd:complexType name="tBranches">
		<xsd:complexContent>
			<xsd:extension base="tExpression">
				<xsd:attribute name="successfulBranchesOnly" type="tBoolean" default="no"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="if" type="tIf"/>
	<xsd:complexType name="tIf">
		<xsd:complexContent>
			<xsd:extension base="tActivity">
				<xsd:sequence>
					<xsd:element ref="condition" minOccurs="1"/>
					<xsd:group ref="activity" minOccurs="1"/>
					<xsd:element ref="elseif" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element ref="else" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="elseif" type="tElseif"/>
	<xsd:complexType name="tElseif">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element ref="condition" minOccurs="1"/>
					<xsd:group ref="activity" minOccurs="1"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="else" type="tActivityContainer"/>
	
	<xsd:element name="invoke" type="tInvoke"/>
	<xsd:complexType name="tInvoke">
		<xsd:annotation>
			<xsd:documentation>
				XSD Authors: The child element correlations needs to be a Local Element Declaration, 
				because there is another correlations element defined for the non-invoke activities.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="tActivity">
				<xsd:sequence>
					<xsd:element name="correlations" type="tCorrelationsWithPattern" minOccurs="0"/>
					<xsd:element ref="catch" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element ref="catchAll" minOccurs="0"/>
					<xsd:element ref="compensationHandler" minOccurs="0"/>
					<xsd:element ref="toParts" minOccurs="0"/>
					<xsd:element ref="fromParts" minOccurs="0"/>
				</xsd:sequence>
				<xsd:attribute name="partnerLink" type="xsd:NCName" use="required"/>
				<xsd:attribute name="portType" type="xsd:QName" use="optional"/>
				<xsd:attribute name="operation" type="xsd:NCName" use="required"/>
				<xsd:attribute name="inputVariable" type="BPELVariableName" use="optional"/>
				<xsd:attribute name="outputVariable" type="BPELVariableName" use="optional"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:complexType name="tCorrelationsWithPattern">
		<xsd:annotation>
			<xsd:documentation>
				XSD Authors: The child element correlation needs to be a Local Element Declaration, 
				because there is another correlation element defined for the non-invoke activities.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element name="correlation" type="tCorrelationWithPattern" minOccurs="1" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:complexType name="tCorrelationWithPattern">
		<xsd:complexContent>
			<xsd:extension base="tCorrelation">
				<xsd:attribute name="pattern" type="tPattern"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:simpleType name="tPattern">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="request"/>
			<xsd:enumeration value="response"/>
			<xsd:enumeration value="request-response"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:element name="fromParts" type="tFromParts"/>
	<xsd:complexType name="tFromParts">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element ref="fromPart" minOccurs="1" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="fromPart" type="tFromPart"/>
	<xsd:complexType name="tFromPart">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:attribute name="part" type="xsd:NCName" use="required"/>
				<xsd:attribute name="toVariable" type="BPELVariableName" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="toParts" type="tToParts"/>
	<xsd:complexType name="tToParts">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:element ref="toPart" minOccurs="1" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="toPart" type="tToPart"/>
	<xsd:complexType name="tToPart">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:attribute name="part" type="xsd:NCName" use="required"/>
				<xsd:attribute name="fromVariable" type="BPELVariableName" use="required"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="pick" type="tPick"/>
	<xsd:complexType name="tPick">
		<xsd:annotation>
			<xsd:documentation>
				XSD Authors: The child element onAlarm needs to be a Local Element Declaration, 
				because there is another onAlarm element defined for event handlers.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="tActivity">
				<xsd:sequence>
					<xsd:element ref="onMessage" minOccurs="1" maxOccurs="unbounded"/>
					<xsd:element name="onAlarm" type="tOnAlarmPick" minOccurs="0" maxOccurs="unbounded"/>
				</xsd:sequence>
				<xsd:attribute name="createInstance" type="tBoolean" default="no"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="onMessage" type="tOnMessage"/>
	<xsd:complexType name="tOnMessage">
		<xsd:complexContent>
			<xsd:extension base="tOnMsgCommon">
				<xsd:sequence>
					<xsd:group ref="activity" minOccurs="1"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:complexType name="tOnAlarmPick">
		<xsd:complexContent>
			<xsd:extension base="tExtensibleElements">
				<xsd:sequence>
					<xsd:group ref="forOrUntilGroup" minOccurs="1"/>
					<xsd:group ref="activity" minOccurs="1"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="receive" type="tReceive"/>
	<xsd:complexType name="tReceive">
		<xsd:annotation>
			<xsd:documentation>
				XSD Authors: The child element correlations needs to be a Local Element Declaration, 
				because there is another correlations element defined for the invoke activity.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="tActivity">
				<xsd:sequence>
					<xsd:element name="correlations" type="tCorrelations" minOccurs="0"/>
					<xsd:element ref="fromParts" minOccurs="0"/>
				</xsd:sequence>
				<xsd:attribute name="partnerLink" type="xsd:NCName" use="required"/>
				<xsd:attribute name="portType" type="xsd:QName" use="optional"/>
				<xsd:attribute name="operation" type="xsd:NCName" use="required"/>
				<xsd:attribute name="variable" type="BPELVariableName" use="optional"/>
				<xsd:attribute name="createInstance" type="tBoolean" default="no"/>
				<xsd:attribute name="messageExchange" type="xsd:NCName" use="optional"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="repeatUntil" type="tRepeatUntil"/>
	<xsd:complexType name="tRepeatUntil">
		<xsd:complexContent>
			<xsd:extension base="tActivity">
				<xsd:sequence>
					<xsd:group ref="activity" minOccurs="1"/>
					<xsd:element ref="condition" minOccurs="1"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="reply" type="tReply"/>
	<xsd:complexType name="tReply">
		<xsd:annotation>
			<xsd:documentation>
				XSD Authors: The child element correlations needs to be a Local Element Declaration, 
				because there is another correlations element defined for the invoke activity.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="tActivity">
				<xsd:sequence>
					<xsd:element name="correlations" type="tCorrelations" minOccurs="0"/>
					<xsd:element ref="toParts" minOccurs="0"/>
				</xsd:sequence>
				<xsd:attribute name="partnerLink" type="xsd:NCName" use="required"/>
				<xsd:attribute name="portType" type="xsd:QName" use="optional"/>
				<xsd:attribute name="operation" type="xsd:NCName" use="required"/>
				<xsd:attribute name="variable" type="BPELVariableName" use="optional"/>
				<xsd:attribute name="faultName" type="xsd:QName"/>
				<xsd:attribute name="messageExchange" type="xsd:NCName" use="optional"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="rethrow" type="tRethrow"/>
	<xsd:complexType name="tRethrow">
		<xsd:complexContent>
			<xsd:extension base="tActivity"/>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="scope" type="tScope"/>
	<xsd:complexType name="tScope">
		<xsd:annotation>
			<xsd:documentation>
				There is no schema-level default for "exitOnStandardFault"
				at "scope". Because, it will inherit default from enclosing scope
				or process.
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="tActivity">
				<xsd:sequence>
					<xsd:element ref="partnerLinks" minOccurs="0"/>
					<xsd:element ref="messageExchanges" minOccurs="0"/>
					<xsd:element ref="variables" minOccurs="0"/>
					<xsd:element ref="correlationSets" minOccurs="0"/>
					<xsd:element ref="faultHandlers" minOccurs="0"/>
					<xsd:element ref="compensationHandler" minOccurs="0"/>
					<xsd:element ref="terminationHandler" minOccurs="0"/>
					<xsd:element ref="eventHandlers" minOccurs="0"/>
					<xsd:group ref="activity" minOccurs="1"/>
				</xsd:sequence>
				<xsd:attribute name="isolated" type="tBoolean" default="no"/>
				<xsd:attribute name="exitOnStandardFault" type="tBoolean"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="compensationHandler" type="tActivityContainer">
		<xsd:annotation>
			<xsd:documentation>
				This element can contain all activities including the activities
				compensate and compensateScope.
			</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	
	<xsd:element name="terminationHandler" type="tActivityContainer">
		<xsd:annotation>
			<xsd:documentation>
				This element can contain all activities including the activities
				compensate and compensateScope.
			</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	
	<xsd:element name="sequence" type="tSequence"/>
	<xsd:complexType name="tSequence">
		<xsd:complexContent>
			<xsd:extension base="tActivity">
				<xsd:sequence>
					<xsd:group ref="activity" minOccurs="1" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="throw" type="tThrow"/>
	<xsd:complexType name="tThrow">
		<xsd:complexContent>
			<xsd:extension base="tActivity">
				<xsd:attribute name="faultName" type="xsd:QName" use="required"/>
				<xsd:attribute name="faultVariable" type="BPELVariableName"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="validate" type="tValidate"/>
	<xsd:complexType name="tValidate">
		<xsd:complexContent>
			<xsd:extension base="tActivity">
				<xsd:attribute name="variables" use="required" type="BPELVariableNames"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:simpleType name="BPELVariableNames">
		<xsd:restriction>
			<xsd:simpleType>
				<xsd:list itemType="BPELVariableName"/>
			</xsd:simpleType>
			<xsd:minLength value="1"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:element name="wait" type="tWait"/>
	<xsd:complexType name="tWait">
		<xsd:complexContent>
			<xsd:extension base="tActivity">
				<xsd:choice>
					<xsd:element ref="for" minOccurs="1"/>
					<xsd:element ref="until" minOccurs="1"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="while" type="tWhile"/>
	<xsd:complexType name="tWhile">
		<xsd:complexContent>
			<xsd:extension base="tActivity">
				<xsd:sequence>
					<xsd:element ref="condition" minOccurs="1"/>
					<xsd:group ref="activity" minOccurs="1"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:complexType name="tExpression" mixed="true">
		<xsd:sequence>
			<xsd:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
		</xsd:sequence>
		<xsd:attribute name="expressionLanguage" type="xsd:anyURI"/>
		<xsd:anyAttribute namespace="##other" processContents="lax"/>
	</xsd:complexType>
	
	<xsd:complexType name="tCondition">
		<xsd:complexContent mixed="true">
			<xsd:extension base="tExpression"/>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:element name="condition" type="tBoolean-expr"/>
	<xsd:complexType name="tBoolean-expr">
		<xsd:complexContent mixed="true">
			<xsd:extension base="tExpression"/>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:complexType name="tDuration-expr">
		<xsd:complexContent mixed="true">
			<xsd:extension base="tExpression"/>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:complexType name="tDeadline-expr">
		<xsd:complexContent mixed="true">
			<xsd:extension base="tExpression"/>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:simpleType name="tBoolean">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="yes"/>
			<xsd:enumeration value="no"/>
		</xsd:restriction>
	</xsd:simpleType>
	
</xsd:schema>
Collapse ComplexTypes:
Collapse Elements:
Collapse Groups:
Collapse SimpleTypes: