<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v4.0 U (http://www.xmlspy.com) by Robert M Shapiro (Cape Visions) -->
<xsd:schema targetNamespace="http://www.wfmc.org/2004/XPDL2.0alpha" xmlns:xpdl="http://www.wfmc.org/2004/XPDL2.0alpha" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xsd:element name="Activities">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Activity" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
		</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>
					<xsd:element ref="xpdl:Route"/>
					<xsd:element ref="xpdl:Implementation"/>
					<xsd:element ref="xpdl:BlockActivity"/>
					<xsd:element ref="xpdl:Event"/>
					<xsd:element ref="xpdl:Artifact"/>
				</xsd:choice>
				<xsd:element ref="xpdl:Performer" minOccurs="0"/>
				<xsd:element ref="xpdl:StartMode" minOccurs="0"/>
				<xsd:element ref="xpdl:FinishMode" minOccurs="0"/>
				<xsd:element ref="xpdl:Priority" minOccurs="0"/>
				<xsd:element ref="xpdl:Deadline" minOccurs="0" maxOccurs="unbounded"/>
				<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:Properties" 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:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string"/>
			<xsd:attribute name="PoolId" type="xsd:NMTOKEN" use="optional"/>
			<xsd:attribute name="SwimLaneId" type="xsd:NMTOKEN" use="optional"/>
			<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="StartQuantity" type="xsd:integer" use="optional" default="1"/>
		</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:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ActivitySets">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:ActivitySet" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ActualParameter" type="xsd:string"/>
	<xsd:element name="ActualParameters">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:ActualParameter" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Application">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Description" 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:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Applications">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Application" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Assignment">
		<xsd:annotation>
			<xsd:documentation>BPMN and XPDL</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name="Name" type="xsd:NMTOKEN" use="required">
				<xsd:annotation>
					<xsd:documentation>In XPDL should be name of a DataField, in BPMN name of a Property</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="Expression" type="xsd:string" use="required"/>
			<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: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:sequence>
		</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: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:Categories" maxOccurs="unbounded"/>
				<xsd:element ref="xpdl:DataObject" minOccurs="0"/>
			</xsd:sequence>
			<xsd:attribute name="ArtifactType" use="required" default="DataObject">
				<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:complexType>
	</xsd:element>
	<xsd:element name="Author" type="xsd:string"/>
	<xsd:element name="Automatic">
		<xsd:complexType/>
	</xsd:element>
	<xsd:element name="BasicType">
		<xsd:complexType>
			<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:complexType>
	</xsd:element>
	<xsd:element name="BlockActivity">
		<xsd:complexType>
			<xsd:attribute name="BlockId" type="xsd:NMTOKEN" use="required"/>
		</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:attribute name="Name" type="xsd:string" use="required"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Categories">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Category" maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Codepage" type="xsd:string"/>
	<xsd:element name="Condition">
		<xsd:complexType mixed="true">
			<xsd:choice minOccurs="0" maxOccurs="unbounded">
				<xsd:element ref="xpdl:Xpression"/>
			</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:complexType>
	</xsd:element>
	<xsd:element name="ConformanceClass">
		<xsd:complexType>
			<xsd:attribute name="GraphConformance">
				<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:complexType>
	</xsd:element>
	<xsd:element name="Cost" type="xsd:string"/>
	<xsd:element name="CostUnit" type="xsd:string"/>
	<xsd:element name="Countrykey" type="xsd:string"/>
	<xsd:element name="Created" type="xsd:string"/>
	<xsd:element name="DataField">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:DataType"/>
				<xsd:element ref="xpdl:InitialValue" minOccurs="0"/>
				<xsd:element ref="xpdl:Length" minOccurs="0"/>
				<xsd:element ref="xpdl:Description" minOccurs="0"/>
				<xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string"/>
			<xsd:attribute name="IsArray" default="FALSE">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="TRUE"/>
						<xsd:enumeration value="FALSE"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="DataFields">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:DataField" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
		</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:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="DataMapping">
		<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:attribute name="Actual" type="xsd:string" use="required"/>
			<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:complexType>
	</xsd:element>
	<xsd:element name="DataObject">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Properties"/>
			</xsd:sequence>
			<xsd:attribute name="Name" type="xsd:string" use="required"/>
			<xsd:attribute name="State" type="xsd:string" use="optional"/>
			<xsd:attribute name="RequiredForStart" type="xsd:boolean" use="required" default="True"/>
			<xsd:attribute name="ProducedAtCompletion" type="xsd:boolean" use="required" default="True"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="DataType">
		<xsd:complexType>
			<xsd:group ref="xpdl:DataTypes"/>
		</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="DeadlineCondition"/>
				<xsd:element name="ExceptionName"/>
			</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:complexType>
	</xsd:element>
	<xsd:element name="DeclaredType">
		<xsd:complexType>
			<xsd:attribute name="Id" type="xsd:IDREF" use="required"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Description" type="xsd:string"/>
	<xsd:element name="Documentation" type="xsd:string"/>
	<xsd:element name="Duration" type="xsd:string"/>
	<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="required" 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:complexType>
	</xsd:element>
	<xsd:element name="EnumerationType">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:EnumerationValue" maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="EnumerationValue">
		<xsd:complexType>
			<xsd:attribute name="Name" type="xsd:NMTOKEN" use="required"/>
		</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:complexType>
	</xsd:element>
	<xsd:element name="ExclusiveOrGateway"/>
	<xsd:element name="ExtendedAttribute">
		<xsd:complexType mixed="true">
			<xsd:choice minOccurs="0" maxOccurs="unbounded">
				<xsd:any 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:sequence>
			<xsd:attribute name="href" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ExternalPackages">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:ExternalPackage" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ExternalReference">
		<xsd:complexType>
			<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:complexType>
	</xsd:element>
	<xsd:element name="FinishMode">
		<xsd:complexType>
			<xsd:choice>
				<xsd:element ref="xpdl:Automatic"/>
				<xsd:element ref="xpdl:Manual"/>
			</xsd:choice>
		</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:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Index" type="xsd:NMTOKEN"/>
			<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:complexType>
	</xsd:element>
	<xsd:element name="FormalParameters">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:FormalParameter" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
		</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:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Implementation">
		<xsd:complexType>
			<xsd:choice>
				<xsd:element ref="xpdl:No"/>
				<xsd:element ref="xpdl:Tool" maxOccurs="unbounded"/>
				<xsd:element ref="xpdl:SubFlow"/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="InitialValue" type="xsd:string"/>
	<xsd:element name="Input">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Artifact"/>
			</xsd:sequence>
		</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:sequence>
		</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:sequence>
		</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" default="Message">
				<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:string" use="required">
				<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:complexType>
	</xsd:element>
	<xsd:element name="IORules">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Xpression" maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Join">
		<xsd:complexType>
			<xsd:attribute name="Type">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="AND"/>
						<xsd:enumeration value="XOR"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Length" type="xsd:string"/>
	<xsd:element name="Limit" type="xsd:string"/>
	<xsd:element name="ListType">
		<xsd:complexType>
			<xsd:group ref="xpdl:DataTypes"/>
		</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:complexType>
	</xsd:element>
	<xsd:element name="LoopMultiInstance">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<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" default="Sequential">
				<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:complexType>
	</xsd:element>
	<xsd:element name="LoopStandard">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<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" default="After">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="Before"/>
						<xsd:enumeration value="After"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Manual">
		<xsd:complexType/>
	</xsd:element>
	<xsd:element name="Member">
		<xsd:complexType>
			<xsd:group ref="xpdl:DataTypes"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Message">
		<xsd:complexType>
			<xsd:sequence minOccurs="0">
				<xsd:element ref="xpdl:Properties"/>
			</xsd:sequence>
			<xsd:attribute name="Name" type="xsd:string" use="required"/>
			<xsd:attribute name="From" type="xsd:NMTOKEN" use="required">
				<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="required">
				<xsd:annotation>
					<xsd:documentation>This must be the name of a participant</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="MessageIn">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Message"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="MessageOut">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Message"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="No">
		<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 categorieswith a variety of elements</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence minOccurs="0">
				<xsd:element ref="xpdl:Categories"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:string" use="required">
				<xsd:annotation>
					<xsd:documentation>This identifies any Object in the BPMN diagram. </xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Output">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Artifact"/>
			</xsd:sequence>
		</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:sequence>
		</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:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Package">
		<xsd:complexType>
			<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:WorkflowProcesses" minOccurs="0"/>
				<xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
				<xsd:element ref="xpdl:Pools" minOccurs="0"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<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:sequence>
		</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:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ParticipantType">
		<xsd:complexType>
			<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:complexType>
	</xsd:element>
	<xsd:element name="Participants">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Participant" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Performer" type="xsd:string">
		<xsd:annotation>
			<xsd:documentation>A String or Expression designating the Performer</xsd:documentation>
		</xsd:annotation>
	</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"/>
			</xsd:sequence>
		</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:SwimLanes"/>
			</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="required" 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="required"/>
			<xsd:attribute name="BoundaryVisible" type="xsd:boolean" use="required" default="TRUE"/>
		</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:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Priority" type="xsd:string"/>
	<xsd:element name="PriorityUnit" type="xsd:string"/>
	<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: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:complexType>
	</xsd:element>
	<xsd:element name="Property">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name="Name" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Type" type="xsd:string" use="required"/>
			<xsd:attribute name="Correlation" type="xsd:boolean" use="optional" default="FALSE"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Properties">
		<xsd:annotation>
			<xsd:documentation>BPMN: Like fields in XPDL</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Property" maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="RecordType">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Member" maxOccurs="unbounded"/>
			</xsd:sequence>
		</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: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:complexType>
	</xsd:element>
	<xsd:element name="Responsible" type="xsd:string"/>
	<xsd:element name="Responsibles">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Responsible" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
		</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:attribute name="Activity" type="xsd:string" use="required">
				<xsd:annotation>
					<xsd:documentation>This supplies the Object of the Activity to be Compensated. This doesn't seem to make sense. See the definition of Object.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</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:attribute name="ErrorCode" type="xsd:string" use="required"/>
		</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:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Route">
		<xsd:complexType>
			<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="XORType" use="optional" default="Data">
				<xsd:annotation>
					<xsd:documentation>Used only when GatewayType is XOR.</xsd:documentation>
					<xsd:documentation>Used when needed for BPMN Gateways</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="Data"/>
						<xsd:enumeration value="Event"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<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:attribute name="IncomingCondition" type="xsd:string" use="optional">
				<xsd:annotation>
					<xsd:documentation>Applicable only to complex gateways</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="OutgoingCondition" type="xsd:string" use="optional">
				<xsd:annotation>
					<xsd:documentation>Applicable only to Complex Gateways</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Rule">
		<xsd:complexType>
			<xsd:attribute name="Name" type="xsd:string" use="required"/>
			<xsd:attribute name="Expression" type="xsd:string" use="optional"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="SchemaType">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Script">
		<xsd:complexType>
			<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:complexType>
	</xsd:element>
	<xsd:element name="SimulationInformation">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Cost"/>
				<xsd:element ref="xpdl:TimeEstimation"/>
			</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:complexType>
	</xsd:element>
	<xsd:element name="Split">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:TransitionRefs" minOccurs="0"/>
			</xsd:sequence>
			<xsd:attribute name="Type">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="AND"/>
						<xsd:enumeration value="XOR"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</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" default="None">
				<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:complexType>
	</xsd:element>
	<xsd:element name="StartMode">
		<xsd:complexType>
			<xsd:choice>
				<xsd:element ref="xpdl:Automatic"/>
				<xsd:element ref="xpdl:Manual"/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="SwimLane">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence minOccurs="0">
				<xsd:element ref="xpdl:Categories" 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:complexType>
	</xsd:element>
	<xsd:element name="SwimLanes">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:SwimLane" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="SubFlow">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:ActualParameters" minOccurs="0"/>
				<xsd:element ref="xpdl:DataMappings" minOccurs="0"/>
				<xsd:element ref="xpdl:Transaction" minOccurs="0"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:string" use="required"/>
			<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:attribute name="SubProcessType" use="optional" default="Embedded">
				<xsd:annotation>
					<xsd:documentation>BPMN</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="Embedded"/>
						<xsd:enumeration value="Independent"/>
						<xsd:enumeration value="Reference"/>
					</xsd:restriction>
				</xsd:simpleType>
			</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="IsATransaction" type="xsd:boolean" use="optional" default="False"/>
			<xsd:attribute name="DiagramRef" type="xsd:NMTOKEN" use="optional">
				<xsd:annotation>
					<xsd:documentation>BPMN: needed for independent subprocess</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="ProcessRef" type="xsd:NMTOKEN" use="optional">
				<xsd:annotation>
					<xsd:documentation>BPMN: needed for independent subprocess</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="SubProcessRef" type="xsd:NMTOKEN" use="optional">
				<xsd:annotation>
					<xsd:documentation>BPMN: Required when subprocess type is Reference.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</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:choice>
			<xsd:attribute name="TaskType" use="required" default="Service">
				<xsd:annotation>
					<xsd:documentation>BPMN:</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="Service"/>
						<xsd:enumeration value="Receive"/>
						<xsd:enumeration value="Send"/>
						<xsd:enumeration value="User"/>
						<xsd:enumeration value="Script"/>
						<xsd:enumeration value="Abstract"/>
						<xsd:enumeration value="Manual"/>
						<xsd:enumeration value="Reference"/>
						<xsd:enumeration value="None"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</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:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TaskReceive">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Message"/>
			</xsd:sequence>
			<xsd:attribute name="Instantiate" type="xsd:boolean" use="required" default="False"/>
			<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:complexType>
	</xsd:element>
	<xsd:element name="TaskReference">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name="TaskRef" type="xsd:NMTOKEN" use="required"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TaskSend">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Message"/>
			</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:complexType>
	</xsd:element>
	<xsd:element name="TaskService">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:MessageIn"/>
				<xsd:element ref="xpdl:MessageOut"/>
			</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:complexType>
	</xsd:element>
	<xsd:element name="TaskScript">
		<xsd:annotation>
			<xsd:documentation>BPMN</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name="Script" type="xsd:string" use="optional">
				<xsd:annotation>
					<xsd:documentation>BPMN</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</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 ref="xpdl:MessageIn"/>
				<xsd:element ref="xpdl:MessageOut"/>
			</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: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:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Tool">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:ActualParameters" minOccurs="0"/>
				<xsd:element ref="xpdl:Description" minOccurs="0"/>
				<xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
				<xsd:element ref="xpdl:Task" minOccurs="0"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Type">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="APPLICATION"/>
						<xsd:enumeration value="PROCEDURE"/>
						<xsd:enumeration value="TASK"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</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:attribute name="TransactionId" type="xsd:string" use="required"/>
			<xsd:attribute name="TransactionProtocol" type="xsd:string" use="required"/>
			<xsd:attribute name="TransactionMethod" use="required" default="Compensate">
				<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: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:Categories" minOccurs="0"/>
			</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"/>
			<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:attribute name="FlowType" use="optional" default="SequenceFlow">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="SequenceFlow"/>
						<xsd:enumeration value="MessageFlow"/>
						<xsd:enumeration value="Association"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<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:complexType>
	</xsd:element>
	<xsd:element name="TransitionRef">
		<xsd:complexType>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TransitionRefs">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:TransitionRef" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
		</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:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TransitionRestrictions">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:TransitionRestriction" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Transitions">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Transition" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
		</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:attribute name="LinkId" type="xsd:string" 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: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 ref="xpdl:Message"/>
				<xsd:element ref="xpdl:WebService"/>
			</xsd:sequence>
		</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:sequence>
		</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:sequence>
		</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: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: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: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: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:sequence>
			<xsd:attribute name="Id" type="xsd:ID" use="required"/>
			<xsd:attribute name="Name" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TypeDeclarations">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:TypeDeclaration" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="UnionType">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:Member" maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ValidFrom" type="xsd:string"/>
	<xsd:element name="ValidTo" type="xsd:string"/>
	<xsd:element name="Vendor" type="xsd:string"/>
	<xsd:element name="Version" type="xsd:string"/>
	<xsd:element name="WaitingTime" type="xsd:string"/>
	<xsd:element name="WebService">
		<xsd:annotation>
			<xsd:documentation>BPMN:: If the Implementation is a WebService this is required.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name="Participant" type="xsd:NMTOKEN" use="required">
				<xsd:annotation>
					<xsd:documentation>Must be the name of a Participant: Note, this will map to
the BPEL4WS partnerLink.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="Interface" type="xsd:string" use="required">
				<xsd:annotation>
					<xsd:documentation>(aka portType)</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="Operation" type="xsd:string" use="required"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="WorkflowProcess">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:ProcessHeader"/>
				<xsd:element ref="xpdl:RedefinableHeader" minOccurs="0"/>
				<xsd:element ref="xpdl:FormalParameters" minOccurs="0"/>
				<xsd:element ref="xpdl:DataFields" minOccurs="0"/>
				<xsd:element ref="xpdl:Participants" minOccurs="0"/>
				<xsd:element ref="xpdl:Applications" minOccurs="0"/>
				<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:Properties" minOccurs="0"/>
				<xsd:element ref="xpdl:Categories" minOccurs="0"/>
			</xsd:sequence>
			<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
			<xsd:attribute name="Name" type="xsd:string"/>
			<xsd:attribute name="AccessLevel">
				<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="AdHoc" type="xsd:boolean" use="optional" default="False">
				<xsd:annotation>
					<xsd:documentation>BPMN</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="AdHocOrdering" use="optional" default="Parallel">
				<xsd:annotation>
					<xsd:documentation>BPMN</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</xsd:documentation>
				</xsd:annotation>
			</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:complexType>
	</xsd:element>
	<xsd:element name="WorkflowProcesses">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="xpdl:WorkflowProcess" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="WorkingTime" type="xsd:string"/>
	<xsd:element name="XPDLVersion" type="xsd:string"/>
	<xsd:element name="Xpression">
		<xsd:complexType mixed="true">
			<xsd:choice minOccurs="0" maxOccurs="unbounded">
				<xsd:any minOccurs="0" maxOccurs="unbounded"/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>
</xsd:schema>
