blob: 6e254c68bde005573dbf36922946c3da40ecb6c7 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?><!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<!--
Copyright (c) OASIS Open 2006. All Rights Reserved.
-->
<xsd:schema targetNamespace="http://docs.oasis-open.org/wsbpel/2.0/process/abstract"
xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/abstract"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsd-derived="http://docs.oasis-open.org/wsbpel/2.0/process/abstract"
elementFormDefault="qualified"
blockDefault="#all">
<xsd:annotation>
<xsd:documentation>
Schema for Abstract Process Common Base for WS-BPEL 2.0
Last modified date: 9th December, 2006
NOTE: Here is the changes path from Exec BPEL XSD to this XSD:
(a) have a global replace from minOccurs=1 to minOccurs=0 for element declaration
(b) have a global replace from use=required to use=optional for attribute declaration
(c) change "xsd-derived" from XSD NS to this Abstract BPEL NS and define the corresponding simple types
(d) adding "##opaque" to BPELVariableName, tInitiate, tPattern, tRoles, tBoolean
(e) add abstractProcessProfile to tProcess
(f) add opaqueActivity
(g) add tOpaqueBoolean type and add opaque attribute tExpression, tQuery, tFrom, tTo
(h) add opaqueFrom element and introduce fromGroup
(i) Change the sequence for "tOnAlarmEvent"
<![CDATA[
From:
---------------------
<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>
---------------------
To:
---------------------
<xsd:sequence>
<xsd:group ref="forOrUntilGroup" minOccurs="0"/>
<xsd:element ref="repeatEvery" minOccurs="0"/>
<xsd:element ref="scope" minOccurs="0"/>
</xsd:sequence>
---------------------
]]>
2006-08-07: Rev 1.1: Alex Yiu
Branching off from wsbpel_main.xsd of Rev 1.48:
by changing targetNamespace
and changing prefix "simple" to "xsd-derived" and its corresponding namespace
2006-08-08: Rev 1.2: Alex Yiu
Minor cosmetic change
2006-08-09: Rev 1.3: Alex Yiu
A minor update and clarification in comments and documentation
2006-08-16: Rev 1.4: Thomas Schulze
Minor formatting changes.
Apply AI 151: change the defaults of queryLanguage and expressionLanguage from "urn:oasis:names:tc:ws2.0:sublang:xpath1.0"
to "urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0".
Apply AI 152: change the targetNamespace from "http://docs.oasis-open.org/ws-bpel/2.0/process/abstract"
to "http://docs.oasis-open.org/wsbpel/2.0/process/abstract".
Apply the two friendly amendments made in today's call. That are:
1) make the QName list non empty (simpleType QNames)
2) make fromParts, fromPart, toParts, toPart extensible
Add a copyright statement.
2006-08-17: Rev 1.5: Alex Yiu
Adding last modified date and small reformatting for copyright statement
2006-10-18: Rev 1.6: Alex Yiu
Apply changes for public review issue R17
to correct the definition of "tOnAlarmEvent"
Apply changes for public review issue R9
to qualify the "LED" comment
2006-11-15: Rev 1.7: Alex Yiu
Issue R29: Removing the default for "initializePartnerRole"
2006-11-15: Rev 1.8: Alex Yiu
Issue R33: Adding "ignoreMissingFromData" attribute
2006-12-09: Rev 1.9: Alex Yiu
Changed the last modified date
</xsd:documentation>
</xsd:annotation>
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<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="0"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd-derived:NCName" use="optional"/>
<xsd:attribute name="targetNamespace" type="xsd-derived:anyURI" use="optional"/>
<xsd:attribute name="queryLanguage" type="xsd-derived:anyURI" default="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"/>
<xsd:attribute name="expressionLanguage" type="xsd-derived: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:attribute name="abstractProcessProfile" type="xsd:anyURI" use="required"/>
</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-derived: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:element ref="opaqueActivity"/>
</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="0" 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-derived:anyURI" use="optional"/>
<xsd:attribute name="mustUnderstand" type="tBoolean" use="optional"/>
</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-derived:anyURI" use="optional"/>
<xsd:attribute name="location" type="xsd-derived:anyURI" use="optional"/>
<xsd:attribute name="importType" type="xsd-derived:anyURI" use="optional"/>
</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="0" 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-derived:NCName" use="optional"/>
<xsd:attribute name="partnerLinkType" type="xsd-derived:QName" use="optional"/>
<xsd:attribute name="myRole" type="xsd-derived:NCName"/>
<xsd:attribute name="partnerRole" type="xsd-derived: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="0" 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-derived:NCName" use="optional"/>
</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="0" 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:group ref="fromGroup" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="name" type="BPELVariableName" use="optional"/>
<xsd:attribute name="messageType" type="xsd-derived:QName" use="optional"/>
<xsd:attribute name="type" type="xsd-derived:QName" use="optional"/>
<xsd:attribute name="element" type="xsd-derived:QName" use="optional"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="BPELVariableName">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base="xsd:NCName">
<xsd:pattern value="[^\.]+"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="##opaque"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:union>
</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="0" 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="optional"/>
<xsd:attribute name="name" type="xsd-derived:NCName" use="optional"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="QNames">
<xsd:restriction>
<xsd:simpleType>
<xsd:list itemType="xsd-derived: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-derived:QName"/>
<xsd:attribute name="faultVariable" type="BPELVariableName"/>
<xsd:attribute name="faultMessageType" type="xsd-derived:QName"/>
<xsd:attribute name="faultElement" type="xsd-derived: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="0"/>
</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="0"/>
</xsd:sequence>
<xsd:attribute name="messageType" type="xsd-derived:QName" use="optional"/>
<xsd:attribute name="element" type="xsd-derived: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-derived:NCName" use="optional"/>
<xsd:attribute name="portType" type="xsd-derived:QName" use="optional"/>
<xsd:attribute name="operation" type="xsd-derived:NCName" use="optional"/>
<xsd:attribute name="messageExchange" type="xsd-derived:NCName" use="optional"/>
<xsd:attribute name="variable" type="BPELVariableName" use="optional"/>
<xsd:attribute name="route" use="optional" default="one">
<xsd:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="all"/>
<xs:enumeration value="one"/>
</xs:restriction>
</xsd:simpleType>
</xsd:attribute>
</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="0" 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-derived:NCName" use="optional"/>
<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:enumeration value="##opaque"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="tOnAlarmEvent">
<xsd:complexContent>
<xsd:extension base="tExtensibleElements">
<xsd:sequence>
<xsd:group ref="forOrUntilGroup" minOccurs="0"/>
<xsd:element ref="repeatEvery" minOccurs="0"/>
<xsd:element ref="scope" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:group name="forOrUntilGroup">
<xsd:choice>
<xsd:element ref="for" minOccurs="0"/>
<xsd:element ref="until" minOccurs="0"/>
</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-derived: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="0" 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-derived:NCName" use="optional"/>
</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="0" 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-derived:NCName" use="optional"/>
</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="0"/>
<xsd:element ref="extensionAssignOperation" minOccurs="0"/>
</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:group ref="fromGroup" minOccurs="0"/>
<xsd:element ref="to" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="keepSrcElementName" type="tBoolean" use="optional" default="no"/>
<xsd:attribute name="ignoreMissingFromData" type="tBoolean" use="optional" default="no"/>
<xsd:attribute name="ignoreUninitializedFromVariable" type="tBoolean" use="optional" default="no"/>
<xsd:attribute name="insertMissingToData" type="tBoolean" use="optional" default="no"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:group name="fromGroup">
<xsd:choice>
<xsd:element ref="opaqueFrom"/>
<xsd:element ref="from"/>
</xsd:choice>
</xsd:group>
<xsd:element name="opaqueFrom" type="tExtensibleElements"/>
<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="0"/>
<xsd:element ref="query" minOccurs="0"/>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="expressionLanguage" type="xsd-derived:anyURI"/>
<xsd:attribute name="variable" type="BPELVariableName"/>
<xsd:attribute name="part" type="xsd-derived:NCName"/>
<xsd:attribute name="property" type="xsd-derived:QName"/>
<xsd:attribute name="partnerLink" type="xsd-derived:NCName"/>
<xsd:attribute name="endpointReference" type="tRoles"/>
<xsd:attribute name="opaque" type="xsd-derived:tOpaqueBoolean"/>
<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-derived:anyURI"/>
<xsd:attribute name="opaque" type="xsd-derived:tOpaqueBoolean"/>
<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:enumeration value="##opaque"/>
</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="opaque" type="xsd-derived:tOpaqueBoolean"/>
<xsd:attribute name="expressionLanguage" type="xsd-derived:anyURI"/>
<xsd:attribute name="variable" type="BPELVariableName"/>
<xsd:attribute name="part" type="xsd-derived:NCName"/>
<xsd:attribute name="property" type="xsd-derived:QName"/>
<xsd:attribute name="partnerLink" type="xsd-derived: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-derived:NCName" use="optional"/>
</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="0" 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="0" 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-derived:NCName" use="optional"/>
</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="0"/>
<xsd:element ref="finalCounterValue" minOccurs="0"/>
<xsd:element ref="completionCondition" minOccurs="0"/>
<xsd:element ref="scope" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="counterName" type="BPELVariableName" use="optional"/>
<xsd:attribute name="parallel" type="tBoolean" use="optional"/>
</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="0"/>
<xsd:group ref="activity" minOccurs="0"/>
<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="0"/>
<xsd:group ref="activity" minOccurs="0"/>
</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-derived:NCName" use="optional"/>
<xsd:attribute name="portType" type="xsd-derived:QName" use="optional"/>
<xsd:attribute name="operation" type="xsd-derived:NCName" use="optional"/>
<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="0" 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:enumeration value="##opaque"/>
</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="0" 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-derived:NCName" use="optional"/>
<xsd:attribute name="toVariable" type="BPELVariableName" use="optional"/>
</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="0" 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-derived:NCName" use="optional"/>
<xsd:attribute name="fromVariable" type="BPELVariableName" use="optional"/>
</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="0" 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="0"/>
</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="0"/>
<xsd:group ref="activity" minOccurs="0"/>
</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-derived:NCName" use="optional"/>
<xsd:attribute name="portType" type="xsd-derived:QName" use="optional"/>
<xsd:attribute name="operation" type="xsd-derived:NCName" use="optional"/>
<xsd:attribute name="variable" type="BPELVariableName" use="optional"/>
<xsd:attribute name="createInstance" type="tBoolean" default="no"/>
<xsd:attribute name="messageExchange" type="xsd-derived:NCName" use="optional"/>
<xsd:attribute name="route" use="optional" default="one">
<xsd:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="all"/>
<xs:enumeration value="one"/>
</xs:restriction>
</xsd:simpleType>
</xsd:attribute>
</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="0"/>
<xsd:element ref="condition" minOccurs="0"/>
</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-derived:NCName" use="optional"/>
<xsd:attribute name="portType" type="xsd-derived:QName" use="optional"/>
<xsd:attribute name="operation" type="xsd-derived:NCName" use="optional"/>
<xsd:attribute name="variable" type="BPELVariableName" use="optional"/>
<xsd:attribute name="faultName" type="xsd-derived:QName"/>
<xsd:attribute name="messageExchange" type="xsd-derived: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="0"/>
</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="0" 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-derived:QName" use="optional"/>
<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="optional" 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="0"/>
<xsd:element ref="until" minOccurs="0"/>
</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="0"/>
<xsd:group ref="activity" minOccurs="0"/>
</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-derived:anyURI"/>
<xsd:attribute name="opaque" type="xsd-derived:tOpaqueBoolean"/>
<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:enumeration value="##opaque"/>
</xsd:restriction>
</xsd:simpleType>
<!-- SCHEMA NOTE: new types and element introduced for Abstract WS-BPEL -->
<xsd:simpleType name="tOpaqueStr">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="##opaque"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="QName">
<xsd:union memberTypes="xsd:QName tOpaqueStr"/>
</xsd:simpleType>
<xsd:simpleType name="NCName">
<xsd:union memberTypes="xsd:NCName tOpaqueStr"/>
</xsd:simpleType>
<xsd:simpleType name="anyURI">
<xsd:union memberTypes="xsd:anyURI tOpaqueStr"/>
</xsd:simpleType>
<xsd:simpleType name="tOpaqueBoolean">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="yes"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="opaqueActivity" type="tOpaqueActivity"/>
<xsd:complexType name="tOpaqueActivity">
<xsd:complexContent>
<xsd:extension base="tActivity"/>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>