The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by Tim Stephenson, Wojciech Zurek (TIBCO Software Inc.) -->
<!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by Marin, Mike (FileNet Corporation) -->
<!-- edited with XML Spy v4.0 U (http://www.xmlspy.com) by Robert M Shapiro (Cape Visions) -->
<xsd:schema xmlns:xpdl="http://www.wfmc.org/2004/XPDL2.0alpha" xmlns:deprecated="http://www.wfmc.org/2002/XPDL1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.wfmc.org/2004/XPDL2.0alpha" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xsd:import namespace="http://www.wfmc.org/2002/XPDL1.0" schemaLocation="http://www.wfmc.org/standards/docs/TC-1025_schema_10_xpdl.xsd"/>
	<xsd:element name="Activities">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Activity" 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>
	<xsd:element name="Activity">
		<xsd:annotation>
			<xsd:documentation>BPMN extension</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Description" minOccurs="0"/>
				<xsd:element ref="xpdl:Limit" minOccurs="0"/>
				<xsd:choice minOccurs="0">
					<xsd:element ref="xpdl:Route"/>
					<xsd:element ref="xpdl:Implementation"/>
					<xsd:choice minOccurs="0">
						<xsd:element ref="deprecated:BlockActivity"/>
						<xsd:element ref="xpdl:BlockActivity"/>
					</xsd:choice>
					<xsd:element ref="xpdl:Event"/>
				</xsd:choice>
				<xsd:element ref="xpdl:Transaction" minOccurs="0"/>
				<xsd:element ref="xpdl:Performer" minOccurs="0"/>
				<xsd:element ref="xpdl:Performers" minOccurs="0"/>
				<xsd:element ref="deprecated:StartMode" minOccurs="0"/>
				<xsd:element ref="deprecated:FinishMode" minOccurs="0"/>
				<xsd:element ref="xpdl:Priority" minOccurs="0"/>
				<xsd:choice minOccurs="0">
					<xsd:element ref="deprecated:Deadline" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element ref="xpdl:Deadline" minOccurs="0" maxOccurs="unbounded"/>
				</xsd:choice>
				<xsd:element ref="xpdl:SimulationInformation" minOccurs="0"/>
				<xsd:element ref="xpdl:Icon" minOccurs="0"/>
				<xsd:element ref="xpdl:Documentation" minOccurs="0"/>
				<xsd:element ref="xpdl:TransitionRestrictions" minOccurs="0"/>
				<xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
				<xsd:element ref="xpdl:DataFields" minOccurs="0"/>
				<xsd:element ref="xpdl:InputSets" minOccurs="0"/>
				<xsd:element ref="xpdl:OutputSets" minOccurs="0"/>
				<xsd:element ref="xpdl:IORules" minOccurs="0"/>
				<xsd:element ref="xpdl:Loop" minOccurs="0"/>
				<xsd:element ref="xpdl:Assignments" minOccurs="0"/>
				<xsd:element ref="xpdl:Object" minOccurs="0"/>
				<xsd:element ref="xpdl:NodeGraphicsInfos" minOccurs="0" />
				<xsd:choice minOccurs="0">
					<xsd:sequence>
						<xsd:element name="Extensions"/>
						<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
					</xsd:sequence>
				</xsd:choice>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:attribute name="StartActivity" type="xsd:boolean" use="optional">
				<xsd:annotation>
					<xsd:documentation> Designates the first activity to be executed when the process is instantiated. Used when there is no other way to determine this Conflicts with BPMN StartEvent and no process definition should use both.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="Status" use="optional" default="None">
				<xsd:annotation>
					<xsd:documentation> BPMN: Status values are assigned during execution. Status can be treated as a property and used in expressions local to an Activity. It is unclear that status belongs in the XPDL document.</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="None"/>
						<xsd:enumeration value="Ready"/>
						<xsd:enumeration value="Active"/>
						<xsd:enumeration value="Cancelled"/>
						<xsd:enumeration value="Aborting"/>
						<xsd:enumeration value="Aborted"/>
						<xsd:enumeration value="Completing"/>
						<xsd:enumeration value="Completed"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="StartMode">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="Automatic"/>
						<xsd:enumeration value="Manual"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="FinishMode">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="Automatic"/>
						<xsd:enumeration value="Manual"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="StartQuantity" type="xsd:integer" use="optional" default="1"/>
			<xsd:attribute name="IsATransaction" type="xsd:boolean" use="optional" default="false"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ActivitySet">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Activities" minOccurs="0"/>
				<xsd:element ref="xpdl:Transitions" minOccurs="0"/>
				<xsd:element ref="xpdl:Object" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string" use="optional">
				<xsd:annotation>
					<xsd:documentation source="added to XPDL 2.0"/>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="AdHoc" type="xsd:boolean" use="optional" default="false">
				<xsd:annotation>
					<xsd:documentation>BPMN: for Embedded subprocess</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="AdHocOrdering" use="optional" default="Parallel">
				<xsd:annotation>
					<xsd:documentation>BPMN: for Embedded subprocess</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="Sequential"/>
						<xsd:enumeration value="Parallel"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="AdHocCompletionCondition" type="xsd:string" use="optional">
				<xsd:annotation>
					<xsd:documentation>BPMN: for Embedded subprocess</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="DefaultStartActivityId" type="xsd:NMTOKEN" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ActivitySets">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:ActivitySet" 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>
	<xsd:element name="ActualParameters">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="ActualParameter" type="xpdl:ExpressionType" 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>
	<xsd:element name="Application">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Description" minOccurs="0"/>
				<xsd:element name="Type" type="xpdl:ApplicationType" minOccurs="0"/>
				<xsd:choice>
					<xsd:element ref="xpdl:FormalParameters"/>
					<xsd:element ref="xpdl:ExternalReference" minOccurs="0"/>
				</xsd:choice>
				<xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="ApplicationType">
		<xsd:choice>
			<xsd:element name="Ejb">
				<xsd:annotation>
					<xsd:documentation> Call EJB component -- There can be max one formal parameter that is OUT, if it exists it has to be the last formal parameter. no INOUT formal parameters</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="JndiName">
							<xsd:complexType>
								<xsd:simpleContent>
									<xsd:extension base="xsd:string">
										<xsd:anyAttribute namespace="##other" processContents="lax"/>
									</xsd:extension>
								</xsd:simpleContent>
							</xsd:complexType>
						</xsd:element>
						<xsd:element name="HomeClass">
							<xsd:complexType>
								<xsd:simpleContent>
									<xsd:extension base="xsd:string">
										<xsd:anyAttribute namespace="##other" processContents="lax"/>
									</xsd:extension>
								</xsd:simpleContent>
							</xsd:complexType>
						</xsd:element>
						<xsd:element name="Method">
							<xsd:complexType>
								<xsd:simpleContent>
									<xsd:extension base="xsd:string">
										<xsd:anyAttribute namespace="##other" processContents="lax"/>
									</xsd:extension>
								</xsd:simpleContent>
							</xsd:complexType>
						</xsd:element>
						<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
					</xsd:sequence>
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="Pojo">
				<xsd:annotation>
					<xsd:documentation> Call method on Java class -- There can be max one formal parameter that is OUT, if it exists it has to be the last formal parameter. no INOUT formal parameters</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="Class">
							<xsd:complexType>
								<xsd:simpleContent>
									<xsd:extension base="xsd:string">
										<xsd:anyAttribute namespace="##other" processContents="lax"/>
									</xsd:extension>
								</xsd:simpleContent>
							</xsd:complexType>
						</xsd:element>
						<xsd:element name="Method">
							<xsd:complexType>
								<xsd:simpleContent>
									<xsd:extension base="xsd:string">
										<xsd:anyAttribute namespace="##other" processContents="lax"/>
									</xsd:extension>
								</xsd:simpleContent>
							</xsd:complexType>
						</xsd:element>
						<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
					</xsd:sequence>
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="Xslt">
				<xsd:annotation>
					<xsd:documentation> Execute Tranformation -- Formal Parameters restrictions: one IN and one OUT formal parameters or only one INOUT formal parameter</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
					</xsd:sequence>
					<xsd:attribute name="location" type="xsd:anyURI"/>
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="Script">
				<xsd:annotation>
					<xsd:documentation> Execute Script -- No additional restrictions for formal parameters. The suggestion: every Formal Parameter should be registered in the script scope as a global variable</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="Expression" type="xpdl:ExpressionType" minOccurs="0"/>
						<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
					</xsd:sequence>
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="WebService">
				<xsd:annotation>
					<xsd:documentation> For WSDL 1.2 -- Invoke WebService, all IN Fprmal Parameters will be mapped to input message, all OUT Formal Parameters will be maped from output message</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element ref="xpdl:WebServiceOperation"/>
						<xsd:element ref="xpdl:WebServiceFaultCatch" minOccurs="0" maxOccurs="unbounded"/>
						<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
					</xsd:sequence>
					<xsd:attribute name="InputMsgName" type="xsd:string" use="required">
						<xsd:annotation>
							<xsd:documentation>The name of inputMessage as defined in the WSDL which will help in uniquely identifying the operation to be invoked</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name="OutputMsgName" type="xsd:string" use="optional">
						<xsd:annotation>
							<xsd:documentation>The name of inputMessage as defined in the WSDL which will help in uniquely identifying the operation to be invoked</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="BusinessRule">
				<xsd:annotation>
					<xsd:documentation>Invoke business rule</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="RuleName">
							<xsd:complexType>
								<xsd:simpleContent>
									<xsd:extension base="xsd:string">
										<xsd:anyAttribute namespace="##other" processContents="lax"/>
									</xsd:extension>
								</xsd:simpleContent>
							</xsd:complexType>
						</xsd:element>
						<xsd:element name="Location">
							<xsd:complexType>
								<xsd:simpleContent>
									<xsd:extension base="xsd:anyURI">
										<xsd:anyAttribute namespace="##other" processContents="lax"/>
									</xsd:extension>
								</xsd:simpleContent>
							</xsd:complexType>
						</xsd:element>
						<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
					</xsd:sequence>
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="Form">
				<xsd:annotation>
					<xsd:documentation>Placeholder for all form related additional information.</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="FormLayout" minOccurs="0">
							<xsd:complexType>
								<xsd:complexContent>
									<xsd:extension base="xsd:anyType">
										<xsd:anyAttribute namespace="##other" processContents="lax"/>
									</xsd:extension>
								</xsd:complexContent>
							</xsd:complexType>
						</xsd:element>
						<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
					</xsd:sequence>
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:complexType>
			</xsd:element>
		</xsd:choice>
		<xsd:anyAttribute namespace="##other" processContents="lax"/>
	</xsd:complexType>
	<xsd:element name="Applications">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Application" 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>
	<xsd:element name="ArrayType">
		<xsd:complexType>
			<xsd:group ref="xpdl:DataTypes"/>
			<xsd:attribute name="LowerIndex" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="UpperIndex" type="xsd:NMTOKEN" use="required"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Artifact">
		<xsd:annotation>
			<xsd:documentation>BPMN: Not further defined here.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence minOccurs="0">
				<xsd:element ref="xpdl:Object" minOccurs="0"/>
				<xsd:element ref="xpdl:DataObject" minOccurs="0"/>
				<xsd:element ref="xpdl:NodeGraphicsInfos" minOccurs="0" />
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:attribute name="ArtifactType" use="required">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="DataObject"/>
						<xsd:enumeration value="Group"/>
						<xsd:enumeration value="Annotation"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="TextAnnotation" type="xsd:string" use="optional"/>
			<xsd:attribute name="Group" type="xsd:string" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Artifacts">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence maxOccurs="unbounded">
				<xsd:element ref="xpdl:Artifact"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Assignment">
		<xsd:annotation>
			<xsd:documentation>BPMN and XPDL</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="Target" type="xpdl:ExpressionType">
					<xsd:annotation>
						<xsd:documentation> lvalue expression of the assignment, in XPDL may be the name of a DataField, in BPMN name of a Property, in XPATH a reference</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="Expression" type="xpdl:ExpressionType">
					<xsd:annotation>
						<xsd:documentation>rvalue expression of the assignment</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="AssignTime" use="optional" default="Start">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="Start"/>
						<xsd:enumeration value="End"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Assignments">
		<xsd:annotation>
			<xsd:documentation>BPMN and XPDL</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Assignment" maxOccurs="unbounded"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Association">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence minOccurs="0">
				<xsd:element ref="xpdl:Object"/>
				<xsd:element ref="xpdl:ConnectorGraphicsInfos" minOccurs="0" />
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Source" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Target" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:attribute name="AssociationDirection" use="optional" default="None">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="None"/>
						<xsd:enumeration value="To"/>
						<xsd:enumeration value="From"/>
						<xsd:enumeration value="Both"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Associations">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence maxOccurs="unbounded">
				<xsd:element ref="xpdl:Association"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Author">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="BasicType">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Length" minOccurs="0"/>
				<xsd:element ref="xpdl:Precision" minOccurs="0"/>
				<xsd:element ref="xpdl:Scale" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Type" use="required">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="STRING"/>
						<xsd:enumeration value="FLOAT"/>
						<xsd:enumeration value="INTEGER"/>
						<xsd:enumeration value="REFERENCE"/>
						<xsd:enumeration value="DATETIME"/>
						<xsd:enumeration value="BOOLEAN"/>
						<xsd:enumeration value="PERFORMER"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="BlockActivity">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="ActivitySetId" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="StartActivityId" type="xsd:NMTOKEN" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Category">
		<xsd:annotation>
			<xsd:documentation> BPMN (and XPDL??Allows arbitrary grouping of various types of elements, for reporting.)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Categories">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Category" maxOccurs="unbounded"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Codepage">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Condition">
		<xsd:complexType mixed="true">
			<xsd:choice minOccurs="0">
				<xsd:element ref="deprecated:Xpression" minOccurs="0"/>
				<xsd:element name="Expression" type="xpdl:ExpressionType" minOccurs="0"/>
			</xsd:choice>
			<xsd:attribute name="Type">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="CONDITION"/>
						<xsd:enumeration value="OTHERWISE"/>
						<xsd:enumeration value="EXCEPTION"/>
						<xsd:enumeration value="DEFAULTEXCEPTION"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ConformanceClass">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="GraphConformance" use="optional" default="NON_BLOCKED">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="FULL_BLOCKED"/>
						<xsd:enumeration value="LOOP_BLOCKED"/>
						<xsd:enumeration value="NON_BLOCKED"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ConnectorGraphicsInfo">
		<xsd:annotation>
			<xsd:documentation>BPMN and XPDL</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence minOccurs="0">
				<xsd:element ref="xpdl:Coordinates" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="ToolId" type="xsd:NMTOKEN" use="optional"/>
			<xsd:attribute name="IsVisible" type="xsd:boolean" use="optional" default="true"/>
			<xsd:attribute name="Page" type="xsd:NMTOKEN" use="optional"/>
			<xsd:attribute name="Style" type="xsd:string" use="optional"/>
			<xsd:attribute name="BorderColor" type="xsd:string" use="optional"/>
			<xsd:attribute name="FillColor" type="xsd:string" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ConnectorGraphicsInfos">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:ConnectorGraphicsInfo" 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>
	<xsd:element name="Coordinates">
		<xsd:annotation>
			<xsd:documentation>BPMN and XPDL</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="XCoordinate" type="xsd:double" use="optional"/>
			<xsd:attribute name="YCoordinate" type="xsd:double" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Cost">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="CostUnit">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Countrykey">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Created">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="DataField">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:DataType"/>
				<xsd:element name="InitialValue" type="xpdl:ExpressionType" minOccurs="0"/>
				<xsd:element ref="xpdl:Length" minOccurs="0"/>
				<xsd:element ref="xpdl:Description" minOccurs="0"/>
				<xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:attribute name="IsArray" use="optional" default="FALSE">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="TRUE"/>
						<xsd:enumeration value="FALSE"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="Correlation" type="xsd:boolean" use="optional" default="false">
				<xsd:annotation>
					<xsd:documentation>Used in BPMN to support mapping to BPEL</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="DataFields">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:DataField" 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>
	<xsd:element name="DataMappings">
		<xsd:annotation>
			<xsd:documentation>XPDL and BPMN:Maps fields or properties between calling and called processes or subprocesses</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:DataMapping" 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>
	<xsd:element name="DataMapping">
		<xsd:annotation>
			<xsd:documentation>XPDL and BPMN:Maps fields between calling and called processes or subprocesses</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="Actual" type="xpdl:ExpressionType"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Formal" type="xsd:string" use="required"/>
			<xsd:attribute name="Direction" default="IN">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="IN"/>
						<xsd:enumeration value="OUT"/>
						<xsd:enumeration value="INOUT"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="DataObject">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:DataFields" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:attribute name="State" type="xsd:string" use="optional"/>
			<xsd:attribute name="RequiredForStart" type="xsd:boolean" use="required"/>
			<xsd:attribute name="ProducedAtCompletion" type="xsd:boolean" use="required"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="DataType">
		<xsd:complexType>
			<xsd:group ref="xpdl:DataTypes"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:group name="DataTypes">
		<xsd:choice>
			<xsd:element ref="xpdl:BasicType"/>
			<xsd:element ref="xpdl:DeclaredType"/>
			<xsd:element ref="xpdl:SchemaType"/>
			<xsd:element ref="xpdl:ExternalReference"/>
			<xsd:element ref="xpdl:RecordType"/>
			<xsd:element ref="xpdl:UnionType"/>
			<xsd:element ref="xpdl:EnumerationType"/>
			<xsd:element ref="xpdl:ArrayType"/>
			<xsd:element ref="xpdl:ListType"/>
		</xsd:choice>
	</xsd:group>
	<xsd:element name="Deadline">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="DeadlineDuration" type="xpdl:ExpressionType" minOccurs="0"/>
				<xsd:element name="ExceptionName" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>This name should match that specified in Transition/Condition/Expression</xsd:documentation>
					</xsd:annotation>
					<xsd:complexType>
						<xsd:simpleContent>
							<xsd:extension base="xsd:string">
								<xsd:anyAttribute namespace="##other" processContents="lax"/>
							</xsd:extension>
						</xsd:simpleContent>
					</xsd:complexType>
				</xsd:element>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Execution">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="ASYNCHR"/>
						<xsd:enumeration value="SYNCHR"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="DeclaredType">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:IDREF" use="required"/>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Description">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Documentation">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Duration">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="EndEvent">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:choice>
				<xsd:element ref="xpdl:TriggerResultMessage" minOccurs="0"/>
				<xsd:element ref="xpdl:ResultError" minOccurs="0"/>
				<xsd:element ref="xpdl:ResultCompensation" minOccurs="0"/>
				<xsd:element ref="xpdl:TriggerResultLink" minOccurs="0"/>
				<xsd:element ref="xpdl:ResultMultiple" minOccurs="0"/>
			</xsd:choice>
			<xsd:attribute name="Result" use="optional" default="None">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="None"/>
						<xsd:enumeration value="Message"/>
						<xsd:enumeration value="Error"/>
						<xsd:enumeration value="Cancel"/>
						<xsd:enumeration value="Compensation"/>
						<xsd:enumeration value="Link"/>
						<xsd:enumeration value="Terminate"/>
						<xsd:enumeration value="Multiple"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="Implementation" use="optional" default="WebService">
				<xsd:annotation>
					<xsd:documentation> Required if the Trigger or Result is Message</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="WebService"/>
						<xsd:enumeration value="Other"/>
						<xsd:enumeration value="Unspecified"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="EndPoint">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:ExternalReference"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="EndPointType" use="optional" default="WSDL">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="WSDL"/>
						<xsd:enumeration value="Service"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="EnumerationType">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:EnumerationValue" maxOccurs="unbounded"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="EnumerationValue">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Name" type="xsd:NMTOKEN" use="required"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Event">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:choice>
				<xsd:element ref="xpdl:StartEvent" minOccurs="0"/>
				<xsd:element ref="xpdl:IntermediateEvent" minOccurs="0"/>
				<xsd:element ref="xpdl:EndEvent" minOccurs="0"/>
			</xsd:choice>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="ExpressionType" mixed="true">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:choice>
		<xsd:attribute name="ScriptGrammar" type="xsd:anyURI" use="optional"/>
		<xsd:anyAttribute namespace="##other" processContents="lax"/>
	</xsd:complexType>
	<xsd:element name="ExtendedAttribute">
		<xsd:complexType mixed="true">
			<xsd:choice minOccurs="0" maxOccurs="unbounded">
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:choice>
			<xsd:attribute name="Name" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Value" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ExtendedAttributes">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:ExtendedAttribute" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ExternalPackage">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="href" type="xsd:string"/>
			<xsd:attribute name="Id" type="xsd:NMTOKEN"/>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ExternalPackages">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:ExternalPackage" 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>
	<xsd:element name="ExternalReference">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="xref" type="xsd:NMTOKEN" use="optional"/>
			<xsd:attribute name="location" type="xsd:anyURI" use="required"/>
			<xsd:attribute name="namespace" type="xsd:anyURI" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="FormalParameter">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:DataType"/>
				<xsd:element ref="xpdl:Description" minOccurs="0"/>
				<xsd:element ref="xpdl:Length" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Mode" default="IN">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="IN"/>
						<xsd:enumeration value="OUT"/>
						<xsd:enumeration value="INOUT"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:attribute name="IsArray" type="xsd:boolean" use="optional" default="false"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="FormalParameters">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:choice minOccurs="0">
					<xsd:element ref="deprecated:FormalParameter" minOccurs="0" maxOccurs="unbounded"/>
					<xsd:element ref="xpdl:FormalParameter" minOccurs="0" maxOccurs="unbounded"/>
				</xsd:choice>
				<xsd:choice minOccurs="0">
					<xsd:sequence>
						<xsd:element name="Extensions"/>
						<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
					</xsd:sequence>
				</xsd:choice>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Icon">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:attribute name="XCOORD" type="xsd:integer" use="optional"/>
					<xsd:attribute name="YCOORD" type="xsd:integer" use="optional"/>
					<xsd:attribute name="WIDTH" type="xsd:integer" use="optional"/>
					<xsd:attribute name="HEIGHT" type="xsd:integer" use="optional"/>
					<xsd:attribute name="SHAPE" use="optional" default="RoundRectangle">
						<xsd:simpleType>
							<xsd:restriction base="xsd:NMTOKEN">
								<xsd:enumeration value="RoundRectangle"/>
								<xsd:enumeration value="Rectangle"/>
								<xsd:enumeration value="Ellipse"/>
								<xsd:enumeration value="Diamond"/>
								<xsd:enumeration value="Ellipse"/>
								<xsd:enumeration value="UpTriangle"/>
								<xsd:enumeration value="DownTriangle"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:attribute>
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Implementation">
		<xsd:complexType>
			<xsd:choice minOccurs="0">
				<xsd:element ref="xpdl:No" minOccurs="0"/>
				<xsd:element ref="deprecated:Tool" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="xpdl:Task" minOccurs="0"/>
				<xsd:element ref="xpdl:SubFlow" minOccurs="0"/>
				<xsd:element ref="xpdl:Reference" minOccurs="0"/>
			</xsd:choice>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Input">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="ArtifactId" type="xsd:NMTOKEN" use="required"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="InputSet">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Input" maxOccurs="unbounded"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="InputSets">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:InputSet" maxOccurs="unbounded"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="IntermediateEvent">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:choice minOccurs="0">
				<xsd:element ref="xpdl:TriggerResultMessage" minOccurs="0"/>
				<xsd:element ref="xpdl:TriggerTimer" minOccurs="0"/>
				<xsd:element ref="xpdl:ResultError" minOccurs="0"/>
				<xsd:element ref="xpdl:ResultCompensation" minOccurs="0"/>
				<xsd:element ref="xpdl:TriggerRule" minOccurs="0"/>
				<xsd:element ref="xpdl:TriggerResultLink" minOccurs="0"/>
				<xsd:element ref="xpdl:TriggerIntermediateMultiple" minOccurs="0"/>
			</xsd:choice>
			<xsd:attribute name="Trigger" use="required">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="None"/>
						<xsd:enumeration value="Message"/>
						<xsd:enumeration value="Timer"/>
						<xsd:enumeration value="Error"/>
						<xsd:enumeration value="Cancel"/>
						<xsd:enumeration value="Rule"/>
						<xsd:enumeration value="Link"/>
						<xsd:enumeration value="Compensation"/>
						<xsd:enumeration value="Multiple"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="Implementation" use="optional" default="WebService">
				<xsd:annotation>
					<xsd:documentation>Required if the Trigger is Message</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="WebService"/>
						<xsd:enumeration value="Other"/>
						<xsd:enumeration value="Unspecified"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="Target" type="xsd:NMTOKEN" use="optional">
				<xsd:annotation>
					<xsd:documentation> A Target MAY be included for the Intermediate Event. The Target MUST be an activity (Sub-Process or Task). This means that the Intermediate Event is attached to the boundary of the activity and is used to signify an exception or compensation for that activity.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="IORules">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="Expression" type="xpdl:ExpressionType" maxOccurs="unbounded"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Join">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Type">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="AND"/>
						<xsd:enumeration value="XOR"/>
						<xsd:enumeration value="XOREVENT"/>
						<xsd:enumeration value="OR"/>
						<xsd:enumeration value="COMPLEX"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="IncomingCondtion" type="xsd:string"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Lane">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence minOccurs="0">
				<xsd:element ref="xpdl:Object" minOccurs="0"/>
				<xsd:element ref="xpdl:NodeGraphicsInfos" minOccurs="0" />
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:attribute name="ParentLane" type="xsd:NMTOKEN" use="optional"/>
			<xsd:attribute name="ParentPool" type="xsd:NMTOKEN" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Lanes">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Lane" 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>
	<xsd:element name="Length">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Limit">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ListType">
		<xsd:complexType>
			<xsd:group ref="xpdl:DataTypes"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Loop">
		<xsd:annotation>
			<xsd:documentation>BPMN (and possibly XPDL)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:choice>
				<xsd:element ref="xpdl:LoopStandard"/>
				<xsd:element ref="xpdl:LoopMultiInstance"/>
			</xsd:choice>
			<xsd:attribute name="LoopType" use="required">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="Standard"/>
						<xsd:enumeration value="MultiInstance"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="LoopMultiInstance">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="MI_Condition" type="xsd:string" use="required"/>
			<xsd:attribute name="LoopCounter" type="xsd:integer">
				<xsd:annotation>
					<xsd:documentation> This is updated at run time to count the number of executions of the loop and is available as a property to be used in expressions. Does this belong in the XPDL?</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="MI_Ordering" use="required">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="Sequential"/>
						<xsd:enumeration value="Parallel"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="MI_FlowCondition" use="optional" default="All">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="None"/>
						<xsd:enumeration value="One"/>
						<xsd:enumeration value="All"/>
						<xsd:enumeration value="Complex"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="ComplexMI_FlowCondition" type="xsd:string" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="LoopStandard">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="LoopCondition" type="xsd:string" use="required"/>
			<xsd:attribute name="LoopCounter" type="xsd:integer">
				<xsd:annotation>
					<xsd:documentation> This is updated at run time to count the number of executions of the loop and is available as a property to be used in expressions. Does this belong in the XPDL?</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="LoopMaximum" type="xsd:integer" use="optional"/>
			<xsd:attribute name="TestTime" use="required">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="Before"/>
						<xsd:enumeration value="After"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Member">
		<xsd:complexType>
			<xsd:group ref="xpdl:DataTypes"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="MessageType">
		<xsd:annotation>
			<xsd:documentation>Formal Parameters defined by WSDL. Must constraint the parameters to either all in or all out, because Message is in a single direction</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence minOccurs="0">
			<xsd:choice minOccurs="0">
				<xsd:element ref="xpdl:ActualParameters"/>
				<xsd:element ref="xpdl:DataMappings"/>
			</xsd:choice>
			<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
		<xsd:attribute name="Name" type="xsd:string" use="optional"/>
		<xsd:attribute name="From" type="xsd:NMTOKEN" use="optional">
			<xsd:annotation>
				<xsd:documentation>This must be the name of a Participant</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="To" type="xsd:NMTOKEN" use="optional">
			<xsd:annotation>
				<xsd:documentation>This must be the name of a participant</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="FaultName" type="xsd:NMTOKEN" use="optional"/>
		<xsd:anyAttribute namespace="##other" processContents="lax"/>
	</xsd:complexType>
	<xsd:element name="MessageFlow">
		<xsd:annotation>
			<xsd:documentation>:BPMN:</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence minOccurs="0">
				<xsd:element name="Message" type="xpdl:MessageType" minOccurs="0"/>
				<xsd:element ref="xpdl:Object" minOccurs="0"/>
				<xsd:element ref="xpdl:ConnectorGraphicsInfos" minOccurs="0" />
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:attribute name="Source" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Target" type="xsd:NMTOKEN" use="required"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="MessageFlows">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence minOccurs="0" maxOccurs="unbounded">
				<xsd:element ref="xpdl:MessageFlow"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="No">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="NodeGraphicsInfo">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Coordinates" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="ToolId" type="xsd:string" use="optional"/>
			<xsd:attribute name="IsVisible" type="xsd:boolean" use="optional" default="true"/>
			<xsd:attribute name="Page" type="xsd:NMTOKEN" use="optional"/>
			<xsd:attribute name="LaneId" type="xsd:NMTOKEN" use="optional"/>
			<xsd:attribute name="Height" type="xsd:double" use="optional"/>
			<xsd:attribute name="Width" type="xsd:double" use="optional"/>
			<xsd:attribute name="BorderColor" type="xsd:string" use="optional"/>
			<xsd:attribute name="FillColor" type="xsd:string" use="optional"/>
			<xsd:attribute name="Shape" type="xsd:string" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="NodeGraphicsInfos">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:NodeGraphicsInfo" 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>
	<xsd:element name="Object">
		<xsd:annotation>
			<xsd:documentation>BPMN: This is used to identify the Activity in an EndEvent Compensation???Also used to associate categories and ocumentation with a variety of elements</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence minOccurs="0">
				<xsd:element ref="xpdl:Categories" minOccurs="0"/>
				<xsd:element ref="xpdl:Documentation" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required">
				<xsd:annotation>
					<xsd:documentation>This identifies any Object in the BPMN diagram.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Output">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="ArtifactId" type="xsd:NMTOKEN" use="required"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="OutputSet">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Output" maxOccurs="unbounded"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="OutputSets">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:OutputSet" maxOccurs="unbounded"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Package" type="xpdl:PackageType"/>
    <xsd:complexType name="PackageType">
        <xsd:sequence>
            <xsd:element ref="xpdl:PackageHeader"/>
            <xsd:element ref="xpdl:RedefinableHeader" minOccurs="0"/>
            <xsd:element ref="xpdl:ConformanceClass" minOccurs="0"/>
            <xsd:element ref="xpdl:Script" minOccurs="0"/>
            <xsd:element ref="xpdl:ExternalPackages" minOccurs="0"/>
            <xsd:element ref="xpdl:TypeDeclarations" minOccurs="0"/>
            <xsd:element ref="xpdl:Participants" minOccurs="0"/>
            <xsd:element ref="xpdl:Applications" minOccurs="0"/>
            <xsd:element ref="xpdl:DataFields" minOccurs="0"/>
            <xsd:element ref="xpdl:PartnerLinkTypes" minOccurs="0"/>
            <xsd:element ref="xpdl:Pools" minOccurs="0"/>
            <xsd:element ref="xpdl:MessageFlows" minOccurs="0"/>
            <xsd:element ref="xpdl:Associations" minOccurs="0"/>
            <xsd:element ref="xpdl:Artifacts" minOccurs="0"/>
            <xsd:element ref="xpdl:WorkflowProcesses" minOccurs="0"/>
            <xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
            <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
        <xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
        <xsd:attribute name="Name" type="xsd:string" use="optional"/>
        <xsd:anyAttribute namespace="##other" processContents="lax"/>
    </xsd:complexType>
	<xsd:element name="PackageHeader">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:XPDLVersion"/>
				<xsd:element ref="xpdl:Vendor"/>
				<xsd:element ref="xpdl:Created"/>
				<xsd:element ref="xpdl:Description" minOccurs="0"/>
				<xsd:element ref="xpdl:Documentation" minOccurs="0"/>
				<xsd:element ref="xpdl:PriorityUnit" minOccurs="0"/>
				<xsd:element ref="xpdl:CostUnit" minOccurs="0"/>
				<xsd:element ref="xpdl:VendorExtensions" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Participant">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:ParticipantType"/>
				<xsd:element ref="xpdl:Description" minOccurs="0"/>
				<xsd:element ref="xpdl:ExternalReference" minOccurs="0"/>
				<xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ParticipantType">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Type" use="required">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="RESOURCE_SET"/>
						<xsd:enumeration value="RESOURCE"/>
						<xsd:enumeration value="ROLE"/>
						<xsd:enumeration value="ORGANIZATIONAL_UNIT"/>
						<xsd:enumeration value="HUMAN"/>
						<xsd:enumeration value="SYSTEM"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Participants">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Participant" 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>
	<xsd:element name="PartnerLink">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="MyRole" minOccurs="0">
					<xsd:complexType>
						<xsd:sequence>
							<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
						</xsd:sequence>
						<xsd:attribute name="RoleName" type="xsd:string" use="required"/>
						<xsd:anyAttribute namespace="##other" processContents="lax"/>
					</xsd:complexType>
				</xsd:element>
				<xsd:element name="PartnerRole" minOccurs="0">
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element ref="xpdl:EndPoint"/>
							<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
						</xsd:sequence>
						<xsd:attribute name="RoleName" type="xsd:string" use="required"/>
						<xsd:attribute name="ServiceName" type="xsd:string" use="optional"/>
						<xsd:attribute name="PortName" type="xsd:string" use="optional"/>
						<xsd:anyAttribute namespace="##other" processContents="lax"/>
					</xsd:complexType>
				</xsd:element>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="name" type="xsd:string" use="required"/>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="PartnerLinkTypeId" type="xsd:NMTOKEN" use="required"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="PartnerLinks">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:PartnerLink" maxOccurs="unbounded"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="PartnerLinkType">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="Role" maxOccurs="2">
					<xsd:complexType>
						<xsd:sequence>
							<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
						</xsd:sequence>
						<xsd:attribute name="portType" type="xsd:string" use="required"/>
						<xsd:attribute name="Name" type="xsd:string" use="required"/>
						<xsd:anyAttribute namespace="##other" processContents="lax"/>
					</xsd:complexType>
				</xsd:element>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="name" type="xsd:string" use="required"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="PartnerLinkTypes">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:PartnerLinkType" maxOccurs="unbounded"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Performer">
		<xsd:annotation>
			<xsd:documentation>A String or Expression designating the Performer</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Performers">
		<xsd:annotation>
			<xsd:documentation>BPMN and XPDL</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Performer" maxOccurs="unbounded"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Pool">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Lanes" minOccurs="0"/>
				<xsd:element ref="xpdl:Object" minOccurs="0"/>
				<xsd:element ref="xpdl:NodeGraphicsInfos" minOccurs="0" />
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:attribute name="Orientation" use="optional" default="HORIZONTAL">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="HORIZONTAL"/>
						<xsd:enumeration value="VERTICAL"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="Process" type="xsd:NMTOKEN" use="optional"/>
			<xsd:attribute name="Participant" type="xsd:NMTOKEN" use="optional"/>
			<xsd:attribute name="BoundaryVisible" type="xsd:boolean" use="required"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Pools">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Pool" 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>
	<xsd:element name="Precision">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:short">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Priority">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="PriorityUnit">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ProcessHeader">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Created" minOccurs="0"/>
				<xsd:element ref="xpdl:Description" minOccurs="0"/>
				<xsd:element ref="xpdl:Priority" minOccurs="0"/>
				<xsd:element ref="xpdl:Limit" minOccurs="0"/>
				<xsd:element ref="xpdl:ValidFrom" minOccurs="0"/>
				<xsd:element ref="xpdl:ValidTo" minOccurs="0"/>
				<xsd:element ref="xpdl:TimeEstimation" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="DurationUnit">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="Y"/>
						<xsd:enumeration value="M"/>
						<xsd:enumeration value="D"/>
						<xsd:enumeration value="h"/>
						<xsd:enumeration value="m"/>
						<xsd:enumeration value="s"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="ProcessType">
		<xsd:sequence>
			<xsd:element ref="xpdl:ProcessHeader"/>
			<xsd:element ref="xpdl:RedefinableHeader" minOccurs="0"/>
			<xsd:element ref="xpdl:FormalParameters" minOccurs="0"/>
			<xsd:choice minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>changes xpdl 1.0 order</xsd:documentation>
				</xsd:annotation>
				<xsd:sequence minOccurs="0">
					<xsd:element ref="xpdl:Participants" minOccurs="0"/>
					<xsd:element ref="xpdl:Applications" minOccurs="0"/>
					<xsd:element ref="xpdl:DataFields" minOccurs="0"/>
				</xsd:sequence>
				<xsd:sequence minOccurs="0">
					<xsd:element ref="deprecated:DataFields" minOccurs="0"/>
					<xsd:element ref="deprecated:Participants" minOccurs="0"/>
					<xsd:element ref="deprecated:Applications" minOccurs="0"/>
				</xsd:sequence>
			</xsd:choice>
			<xsd:element ref="xpdl:ActivitySets" minOccurs="0"/>
			<xsd:element ref="xpdl:Activities" minOccurs="0"/>
			<xsd:element ref="xpdl:Transitions" minOccurs="0"/>
			<xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
			<xsd:element ref="xpdl:Assignments" minOccurs="0"/>
			<xsd:element ref="xpdl:PartnerLinks" minOccurs="0"/>
			<xsd:element ref="xpdl:Object" minOccurs="0"/>
			<xsd:choice minOccurs="0">
				<xsd:sequence>
					<xsd:element name="Extensions"/>
					<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:choice>
		</xsd:sequence>
		<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
		<xsd:attribute name="Name" type="xsd:string" use="optional"/>
		<xsd:attribute name="AccessLevel" use="optional" default="PUBLIC">
			<xsd:simpleType>
				<xsd:restriction base="xsd:NMTOKEN">
					<xsd:enumeration value="PUBLIC"/>
					<xsd:enumeration value="PRIVATE"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="ProcessType" use="optional" default="None">
			<xsd:annotation>
				<xsd:documentation>BPMN:</xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:restriction base="xsd:NMTOKEN">
					<xsd:enumeration value="None"/>
					<xsd:enumeration value="Private"/>
					<xsd:enumeration value="Abstract"/>
					<xsd:enumeration value="Collaboration"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="Status" use="optional" default="None">
			<xsd:annotation>
				<xsd:documentation> BPMN: Status values are assigned during execution. Status can be treated as a property and used in expressions local to a Process. It is unclear that status belongs in the XPDL document.</xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:restriction base="xsd:NMTOKEN">
					<xsd:enumeration value="None"/>
					<xsd:enumeration value="Ready"/>
					<xsd:enumeration value="Active"/>
					<xsd:enumeration value="Cancelled"/>
					<xsd:enumeration value="Aborting"/>
					<xsd:enumeration value="Aborted"/>
					<xsd:enumeration value="Completing"/>
					<xsd:enumeration value="Completed"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="SuppressJoinFailure" type="xsd:boolean" use="optional" default="false"/>
		<xsd:attribute name="EnableInstanceCompensation" type="xsd:boolean" use="optional" default="false"/>
		<xsd:attribute name="AdHoc" type="xsd:boolean" use="optional" default="false">
			<xsd:annotation>
				<xsd:documentation>BPMN: for Embedded subprocess</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="AdHocOrdering" use="optional" default="Parallel">
			<xsd:annotation>
				<xsd:documentation>BPMN: for Embedded subprocess</xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:restriction base="xsd:NMTOKEN">
					<xsd:enumeration value="Sequential"/>
					<xsd:enumeration value="Parallel"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="AdHocCompletionCondition" type="xsd:string" use="optional">
			<xsd:annotation>
				<xsd:documentation>BPMN: for Embedded subprocess</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="DefaultStartActivitySetId" type="xsd:NMTOKEN" use="optional"/>
		<xsd:attribute name="DefaultStartActivityId" type="xsd:NMTOKEN" use="optional"/>
		<xsd:anyAttribute namespace="##other" processContents="lax"/>
	</xsd:complexType>
	<xsd:element name="RecordType">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Member" maxOccurs="unbounded"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="RedefinableHeader">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Author" minOccurs="0"/>
				<xsd:element ref="xpdl:Version" minOccurs="0"/>
				<xsd:element ref="xpdl:Codepage" minOccurs="0"/>
				<xsd:element ref="xpdl:Countrykey" minOccurs="0"/>
				<xsd:element ref="xpdl:Responsibles" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="PublicationStatus">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="UNDER_REVISION"/>
						<xsd:enumeration value="RELEASED"/>
						<xsd:enumeration value="UNDER_TEST"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Reference">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="ActivityId" type="xsd:NMTOKEN" use="required">
				<xsd:annotation>
					<xsd:documentation> Should be the Id of an activity which invokes a subflow (independent or embedded) or a task. In the BPMN speck this atribute is called ProcessRef</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Responsible">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Responsibles">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Responsible" 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>
	<xsd:element name="ResultCompensation">
		<xsd:annotation>
			<xsd:documentation>BPMN: Must be present if if Trigger or ResultType is Compensation.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="ActivityId" type="xsd:NMTOKEN" use="optional">
				<xsd:annotation>
					<xsd:documentation> This supplies the Id of the Activity to be Compensated. Used only for intermediate events or end events in the seuence flow. Events attached to the boundary of an activity already know the Id.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ResultError">
		<xsd:annotation>
			<xsd:documentation>BPMN: Must be present if Trigger or ResultType is error.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="ErrorCode" type="xsd:string" use="required"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ResultMultiple">
		<xsd:annotation>
			<xsd:documentation>BPMN: Must be present if ResultType is Multiple.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:annotation>
					<xsd:documentation>at least two results must be present</xsd:documentation>
				</xsd:annotation>
				<xsd:element ref="xpdl:TriggerResultMessage" minOccurs="0"/>
				<xsd:element ref="xpdl:TriggerResultLink" minOccurs="0"/>
				<xsd:element ref="xpdl:ResultCompensation" minOccurs="0"/>
				<xsd:element ref="xpdl:ResultError" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Route">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="GatewayType" use="optional" default="XOR">
				<xsd:annotation>
					<xsd:documentation> Used when needed for BPMN Gateways. Gate and sequence information is associated with the Transition Element.</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="XOR"/>
						<xsd:enumeration value="OR"/>
						<xsd:enumeration value="Complex"/>
						<xsd:enumeration value="AND"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="Instantiate" type="xsd:boolean" use="optional" default="false"/>
			<xsd:attribute name="MarkerVisible" type="xsd:boolean" use="optional" default="false">
				<xsd:annotation>
					<xsd:documentation>Applicable only to XOR Gateways</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Rule">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="Expression" type="xpdl:ExpressionType"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Scale">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:short">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="SchemaType">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Script">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Type" type="xsd:string" use="required"/>
			<xsd:attribute name="Version" type="xsd:string" use="optional"/>
			<xsd:attribute name="Grammar" type="xsd:anyURI" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="SimulationInformation">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Cost"/>
				<xsd:element ref="xpdl:TimeEstimation"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Instantiation">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="ONCE"/>
						<xsd:enumeration value="MULTIPLE"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Split">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:TransitionRefs" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Type">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="AND"/>
						<xsd:enumeration value="XOR"/>
						<xsd:enumeration value="XOREVENT"/>
						<xsd:enumeration value="OR"/>
						<xsd:enumeration value="COMPLEX"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="OutgoingCondition" type="xsd:string"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="StartEvent">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:choice minOccurs="0">
				<xsd:element ref="xpdl:TriggerResultMessage" minOccurs="0"/>
				<xsd:element ref="xpdl:TriggerTimer" minOccurs="0"/>
				<xsd:element ref="xpdl:TriggerRule" minOccurs="0"/>
				<xsd:element ref="xpdl:TriggerResultLink" minOccurs="0"/>
				<xsd:element ref="xpdl:TriggerMultiple" minOccurs="0"/>
			</xsd:choice>
			<xsd:attribute name="Trigger" use="required">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="None"/>
						<xsd:enumeration value="Message"/>
						<xsd:enumeration value="Timer"/>
						<xsd:enumeration value="Rule"/>
						<xsd:enumeration value="Link"/>
						<xsd:enumeration value="Multiple"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="Implementation" use="optional" default="WebService">
				<xsd:annotation>
					<xsd:documentation>Required if the Trigger is Message</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="WebService"/>
						<xsd:enumeration value="Other"/>
						<xsd:enumeration value="Unspecified"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="SubFlow">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:choice minOccurs="0">
					<xsd:element ref="xpdl:ActualParameters"/>
					<xsd:element ref="xpdl:DataMappings"/>
				</xsd:choice>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:string" use="required">
				<xsd:annotation>
					<xsd:documentation>Used in XPDL and BPMN. In BPMN is equivalent to ProcessRef attribute.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:attribute name="Execution" use="optional" default="SYNCHR">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="ASYNCHR"/>
						<xsd:enumeration value="SYNCHR"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="PackageRef" type="xsd:NMTOKEN" use="optional">
				<xsd:annotation>
					<xsd:documentation>BPMN: needed for independent subprocess</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="InstanceDataField" type="xsd:string" use="optional">
				<xsd:annotation>
					<xsd:documentation> Used to store the instance id of the subflow instantiated by the activity. This is then available later on (e.g. for correlation, messaging etc.) especially in the case of asynchronous invocation.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="StartActivitySetId" type="xsd:NMTOKEN" use="optional"/>
			<xsd:attribute name="StartActivityId" type="xsd:NMTOKEN" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Task">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:choice>
				<xsd:element ref="xpdl:TaskService"/>
				<xsd:element ref="xpdl:TaskReceive"/>
				<xsd:element ref="xpdl:TaskManual"/>
				<xsd:element ref="xpdl:TaskReference"/>
				<xsd:element ref="xpdl:TaskScript"/>
				<xsd:element ref="xpdl:TaskSend"/>
				<xsd:element ref="xpdl:TaskUser"/>
				<xsd:element ref="xpdl:TaskApplication"/>
			</xsd:choice>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TaskManual">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Performers"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TaskReceive">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="Message" type="xpdl:MessageType"/>
				<xsd:element ref="xpdl:WebServiceOperation" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Instantiate" type="xsd:boolean" use="required"/>
			<xsd:attribute name="Implementation" use="optional" default="WebService">
				<xsd:annotation>
					<xsd:documentation>Required if the Task is Receive</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="WebService"/>
						<xsd:enumeration value="Other"/>
						<xsd:enumeration value="Unspecified"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TaskReference">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="TaskRef" type="xsd:NMTOKEN" use="required"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TaskSend">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="Message" type="xpdl:MessageType"/>
				<xsd:element ref="xpdl:WebServiceOperation" minOccurs="0"/>
				<xsd:element ref="xpdl:WebServiceFaultCatch" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Implementation" use="optional" default="WebService">
				<xsd:annotation>
					<xsd:documentation>Required if the Task is Send</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="WebService"/>
						<xsd:enumeration value="Other"/>
						<xsd:enumeration value="Unspecified"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TaskService">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="MessageIn" type="xpdl:MessageType"/>
				<xsd:element name="MessageOut" type="xpdl:MessageType"/>
				<xsd:element ref="xpdl:WebServiceOperation" minOccurs="0"/>
				<xsd:element ref="xpdl:WebServiceFaultCatch" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Implementation" use="optional" default="WebService">
				<xsd:annotation>
					<xsd:documentation>Required if the Task is Service</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="WebService"/>
						<xsd:enumeration value="Other"/>
						<xsd:enumeration value="Unspecified"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TaskScript">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="Script" type="xpdl:ExpressionType">
					<xsd:annotation>
						<xsd:documentation>BPMN</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TaskUser">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Performers"/>
				<xsd:element name="MessageIn" type="xpdl:MessageType"/>
				<xsd:element name="MessageOut" type="xpdl:MessageType"/>
				<xsd:element ref="xpdl:WebServiceOperation" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Implementation" use="optional" default="WebService">
				<xsd:annotation>
					<xsd:documentation>Required if the Task is User</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="WebService"/>
						<xsd:enumeration value="Other"/>
						<xsd:enumeration value="Unspecified"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TimeEstimation">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:WaitingTime" minOccurs="0"/>
				<xsd:element ref="xpdl:WorkingTime" minOccurs="0"/>
				<xsd:element ref="xpdl:Duration" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TaskApplication">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:choice minOccurs="0">
					<xsd:element ref="xpdl:ActualParameters"/>
					<xsd:element ref="xpdl:DataMappings"/>
				</xsd:choice>
				<xsd:element ref="xpdl:Description" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:attribute name="PackageRef" type="xsd:NMTOKEN" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Transaction">
		<xsd:annotation>
			<xsd:documentation>BPMN: If SubProcess is a transaction then this is required.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="TransactionId" type="xsd:string" use="required"/>
			<xsd:attribute name="TransactionProtocol" type="xsd:string" use="required"/>
			<xsd:attribute name="TransactionMethod" use="required">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="Compensate"/>
						<xsd:enumeration value="Store"/>
						<xsd:enumeration value="Image"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Transition">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Condition" minOccurs="0"/>
				<xsd:element ref="xpdl:Description" minOccurs="0"/>
				<xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
				<xsd:element ref="xpdl:Assignments" minOccurs="0"/>
				<xsd:element ref="xpdl:Object" minOccurs="0"/>
				<xsd:element ref="xpdl:ConnectorGraphicsInfos" minOccurs="0" />
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="From" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="To" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:attribute name="Quantity" type="xsd:int" use="optional" default="1">
				<xsd:annotation>
					<xsd:documentation>Used only in BPMN. Specifies number of tokens on outgoing transition.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TransitionRef">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TransitionRefs">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:TransitionRef" 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>
	<xsd:element name="TransitionRestriction">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Join" minOccurs="0"/>
				<xsd:element ref="xpdl:Split" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TransitionRestrictions">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:TransitionRestriction" 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>
	<xsd:element name="Transitions">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Transition" 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>
	<xsd:element name="TriggerResultLink">
		<xsd:annotation>
			<xsd:documentation>BPMN: if the Trigger or Result Type is Link then this must be present.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="LinkId" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="ProcessRef" type="xsd:NMTOKEN" use="required">
				<xsd:annotation>
					<xsd:documentation>This must identify a Process. Should be the Id of a process.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TriggerResultMessage">
		<xsd:annotation>
			<xsd:documentation> BPMN: If the Trigger or Result Type is Message then this must be present</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="Message" type="xpdl:MessageType"/>
				<xsd:element ref="xpdl:WebServiceOperation" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TriggerIntermediateMultiple">
		<xsd:annotation>
			<xsd:documentation>BPMN: if the TriggerType is Multiple then this must be present.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:annotation>
					<xsd:documentation>BPMN: For Multiple, at least two triggers must be present.</xsd:documentation>
				</xsd:annotation>
				<xsd:element ref="xpdl:TriggerResultMessage" minOccurs="0"/>
				<xsd:element ref="xpdl:TriggerTimer" minOccurs="0"/>
				<xsd:element ref="xpdl:ResultError" minOccurs="0"/>
				<xsd:element ref="xpdl:ResultCompensation" minOccurs="0"/>
				<xsd:element ref="xpdl:TriggerRule" minOccurs="0"/>
				<xsd:element ref="xpdl:TriggerResultLink" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TriggerMultiple">
		<xsd:annotation>
			<xsd:documentation>BPMN: if the TriggerType is Multiple then this must be present.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:annotation>
					<xsd:documentation>BPMN: For Multiple, at least two triggers must be present.</xsd:documentation>
				</xsd:annotation>
				<xsd:element ref="xpdl:TriggerResultMessage" minOccurs="0"/>
				<xsd:element ref="xpdl:TriggerTimer" minOccurs="0"/>
				<xsd:element ref="xpdl:TriggerRule" minOccurs="0"/>
				<xsd:element ref="xpdl:TriggerResultLink" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TriggerRule">
		<xsd:annotation>
			<xsd:documentation>BPMN: if the TriggerType is Rule then this must be present.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="RuleName" type="xsd:string" use="required">
				<xsd:annotation>
					<xsd:documentation>This is the nameof a Rule element.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TriggerTimer">
		<xsd:annotation>
			<xsd:documentation>BPMN: If the Trigger Type is Timer then this must be present</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="TimeDate" type="xsd:string" use="optional">
				<xsd:annotation>
					<xsd:documentation>One of TimeDate or TimeCycle must be present</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="TimeCycle" type="xsd:string" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TypeDeclaration">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:group ref="xpdl:DataTypes"/>
				<xsd:element ref="xpdl:Description" minOccurs="0"/>
				<xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:ID" use="required"/>
			<xsd:attribute name="Name" type="xsd:string" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TypeDeclarations">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:TypeDeclaration" 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>
	<xsd:element name="UnionType">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Member" maxOccurs="unbounded"/>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ValidFrom">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ValidTo">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Vendor">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="VendorExtension">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="ToolId" type="xsd:string" use="required"/>
			<xsd:attribute name="schemaLocation" type="xsd:anyURI" use="required"/>
			<xsd:attribute name="extensionDescription" type="xsd:anyURI" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="VendorExtensions">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:VendorExtension" 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>
	<xsd:element name="Version">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="WaitingTime">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="WebServiceFaultCatch">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="Message" type="xpdl:MessageType" minOccurs="0"/>
				<xsd:choice>
					<xsd:element ref="xpdl:BlockActivity"/>
					<xsd:element ref="xpdl:TransitionRef"/>
				</xsd:choice>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="FaultName" type="xsd:NMTOKEN" use="optional"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="WebServiceOperation">
		<xsd:annotation>
			<xsd:documentation>BPMN: If the Implementation is a WebService this is required.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:choice>
					<xsd:element name="Partner">
						<xsd:complexType>
							<xsd:sequence>
								<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
							</xsd:sequence>
							<xsd:attribute name="PartnerLinkId" type="xsd:NMTOKEN" use="required"/>
							<xsd:attribute name="RoleType" use="required">
								<xsd:simpleType>
									<xsd:restriction base="xsd:NMTOKEN">
										<xsd:enumeration value="MyRole"/>
										<xsd:enumeration value="PartnerRole"/>
									</xsd:restriction>
								</xsd:simpleType>
							</xsd:attribute>
							<xsd:anyAttribute namespace="##other" processContents="lax"/>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="Service">
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element ref="xpdl:EndPoint"/>
								<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
							</xsd:sequence>
							<xsd:attribute name="ServiceName" type="xsd:string" use="required"/>
							<xsd:attribute name="PortName" type="xsd:string" use="required"/>
							<xsd:anyAttribute namespace="##other" processContents="lax"/>
						</xsd:complexType>
					</xsd:element>
				</xsd:choice>
				<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
            <xsd:attribute name="OperationName" type="xsd:string" use="required"/>
			<xsd:anyAttribute namespace="##other" processContents="lax"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="WorkflowProcess" type="xpdl:ProcessType"/>
	<xsd:element name="WorkflowProcesses">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:WorkflowProcess" 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>
	<xsd:element name="WorkingTime">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="XPDLVersion">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:anyAttribute namespace="##other" processContents="lax"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
</xsd:schema>