<xsd:element name="ActivitySet">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xpdl:Activities" minOccurs="0"/>
<xsd:element ref="xpdl:DataObjects" minOccurs="0"/>
<xsd:element ref="xpdl:DataStoreReferences" minOccurs="0"/>
<xsd:element ref="xpdl:Transitions" minOccurs="0"/>
<xsd:element ref="xpdl:DataAssociations" minOccurs="0"/>
<xsd:element ref="xpdl:Object" minOccurs="0"/>
<xsd:element ref="xpdl:Associations" minOccurs="0"/>
<xsd:element ref="xpdl:Artifacts" minOccurs="0"/>
<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="Id" type="xpdl:Id" 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="xpdl:IdRef" use="optional"/>
<xsd:attribute name="TriggeredByEvent" type="xsd:boolean" use="optional" default="false">
<xsd:annotation>
<xsd:documentation>BPMN: for Event Sub-Process. If TriggeredByEvent is true, then the DefaultStartActivityId should point to a valid start event.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
<xsd:key name="ActivityIds.ActivitySet">
<xsd:selector xpath="./xpdl:Activities/xpdl:Activity"/>
<xsd:field xpath="@Id"/>
</xsd:key>
<xsd:key name="TransitionIds.ActivitySet">
<xsd:selector xpath="./xpdl:Transitions/xpdl:Transition"/>
<xsd:field xpath="@Id"/>
</xsd:key>
<xsd:keyref name="DefaultStartActivityIdRef.ActivitySet" refer="xpdl:ActivityIds.ActivitySet">
<xsd:selector xpath="."/>
<xsd:field xpath="@DefaultStartActivityId"/>
</xsd:keyref>
<xsd:keyref name="TransitionFromRef.ActivitySet" refer="xpdl:ActivityIds.ActivitySet">
<xsd:selector xpath="./xpdl:Transitions/xpdl:Transition"/>
<xsd:field xpath="@From"/>
</xsd:keyref>
<xsd:keyref name="TransitionToRef.ActivitySet" refer="xpdl:ActivityIds.ActivitySet">
<xsd:selector xpath="./xpdl:Transitions/xpdl:Transition"/>
<xsd:field xpath="@To"/>
</xsd:keyref>
<xsd:keyref name="TransitionRefIdRef.ActivitySet" refer="xpdl:TransitionIds.ActivitySet">
<xsd:selector xpath="./xpdl:Activities/xpdl:Activity/xpdl:TransitionRestrictions/xpdl:TransitionRestriction/xpdl:Split/xpdl:TransitionRefs/xpdl:TransitionRef"/>
<xsd:field xpath="@Id"/>
</xsd:keyref>
<!-- check that the default start activity id exists -->
<!-- check that the from and to specified in a transition exists -->
<!-- check that the id specified in a transitionref exists -->
</xsd:element> |