[jbpm-commits] JBoss JBPM SVN: r1648 - in api/branches/tdiesler: docs/VioletUML and 29 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Jul 16 10:22:17 EDT 2008


Author: thomas.diesler at jboss.com
Date: 2008-07-16 10:22:16 -0400 (Wed, 16 Jul 2008)
New Revision: 1648

Added:
   api/branches/tdiesler/docs/VioletUML/APIActivity.class.violet
   api/branches/tdiesler/docs/VioletUML/APIActivity.png
   api/branches/tdiesler/docs/VioletUML/APIEvent.class.violet
   api/branches/tdiesler/docs/VioletUML/APIEvent.png
   api/branches/tdiesler/docs/VioletUML/APIGateway.class.violet
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/BPMNElement.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/GraphicalElement.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/NamedFlowObject.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/SuportingElement.java
   api/branches/tdiesler/modules/api/src/main/resources/bpmnxpdl_31.xsd
   api/branches/tdiesler/modules/api/src/main/resources/bpmnxpdl_31_mods.xsd
   api/branches/tdiesler/modules/api/src/main/resources/jaxb-bindings.xml
   api/branches/tdiesler/modules/dialects/
   api/branches/tdiesler/modules/dialects/jaxb/
   api/branches/tdiesler/modules/dialects/jaxb/src/
   api/branches/tdiesler/modules/dialects/jaxb/src/main/
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBActivity.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBComplexGateway.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBEndEvent.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBEvent.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBExclusiveGateway.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBExecutionHandler.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlow.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlowHandler.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlowObject.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBGateway.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBHandler.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBInclusiveGateway.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBIntermediateEvent.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBMessageFlow.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBParallelGateway.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBProcess.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSequenceFlow.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSignalHandler.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBStartEvent.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSubProcess.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBTask.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/ObjectFactory.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/package-info.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/util/
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/util/ProcessMarshaller.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/util/ProcessUnmarshaller.java
   api/branches/tdiesler/modules/dialects/jaxb/src/test/
   api/branches/tdiesler/modules/dialects/jaxb/src/test/org/
   api/branches/tdiesler/modules/dialects/jaxb/src/test/org/jboss/
   api/branches/tdiesler/modules/dialects/jaxb/src/test/org/jboss/bpm/
   api/branches/tdiesler/modules/dialects/jaxb/src/test/org/jboss/bpm/model/
   api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/MockEngineTestCase.java
   api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/client/
   api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/client/ProcessEngineLocatorTest.java
   api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/model/
   api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/model/ProcessIntegrityTest.java
   api/branches/tdiesler/modules/testsuite/src/test/resources/jbpm-mock-beans.xml
Removed:
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/NamedFlowObject.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/util/
   api/branches/tdiesler/modules/api/src/main/scripts/
   api/branches/tdiesler/modules/api/src/test/
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBActivity.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBComplexGateway.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBEndEvent.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBEvent.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBExclusiveGateway.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBExecutionHandler.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlow.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlowHandler.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlowObject.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBGateway.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBHandler.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBInclusiveGateway.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBIntermediateEvent.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBMessageFlow.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBParallelGateway.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBProcess.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSequenceFlow.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSignalHandler.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBStartEvent.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSubProcess.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBTask.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/ObjectFactory.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/package-info.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/util/ProcessMarshaller.java
   api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/util/ProcessUnmarshaller.java
   api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/client/ProcessEngineLocatorTest.java
   api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/model/ProcessIntegrityTest.java
   api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/model/ProcessMarshallerTest.java
Modified:
   api/branches/tdiesler/.classpath
   api/branches/tdiesler/docs/VioletUML/APIModel.class.violet
   api/branches/tdiesler/docs/VioletUML/APIModel.png
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/client/internal/ExecutionManagerImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/client/internal/ProcessManagerImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/FlowObject.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ComplexGatewayImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/EndEventImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/EventImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ExclusiveGatewayImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ExecutionHandlerImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/FlowHandlerImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/FlowImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/HandlerImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/InclusiveGatewayImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/IntermediateEventImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/MessageFlowImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ParallelGatewayImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/SequenceFlowImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/SignalHandlerImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/StartEventImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/SubProcessImpl.java
   api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java
   api/branches/tdiesler/pom.xml
Log:


Modified: api/branches/tdiesler/.classpath
===================================================================
--- api/branches/tdiesler/.classpath	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/.classpath	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,11 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
 	<classpathentry kind="src" output="modules/api/target/classes" path="modules/api/src/main/java"/>
+	<classpathentry kind="src" path="modules/dialects/jaxb/src/main/java"/>
 	<classpathentry kind="src" output="modules/api/target/test-classes" path="modules/api/src/test/java"/>
-	<classpathentry excluding="**" kind="src" output="modules/api/target/classes" path="modules/api/src/main/resources"/>
-	<classpathentry excluding="**" kind="src" output="modules/api/target/test-classes" path="modules/api/src/test/resources"/>
 	<classpathentry kind="src" output="modules/testsuite/target/test-classes" path="modules/testsuite/src/test/java"/>
-	<classpathentry excluding="**" kind="src" output="modules/testsuite/target/test-classes" path="modules/testsuite/src/test/resources"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
 	<classpathentry kind="output" path="target/classes"/>

Added: api/branches/tdiesler/docs/VioletUML/APIActivity.class.violet
===================================================================
--- api/branches/tdiesler/docs/VioletUML/APIActivity.class.violet	                        (rev 0)
+++ api/branches/tdiesler/docs/VioletUML/APIActivity.class.violet	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,598 @@
+<?xml version="1.0" encoding="UTF-8"?> 
+<java version="1.6.0_06" class="java.beans.XMLDecoder"> 
+ <object class="com.horstmann.violet.ClassDiagramGraph"> 
+  <void method="addNode"> 
+   <object id="ClassNode0" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>name</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>FlowObject</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>334.0</double> 
+     <double>20.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode1" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>status
+properties
+inputSets
+outputSets
+startQuantities
+compensationQuantity
+loopType
+isForCompensation
+inFlows
+outFlows</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Activity</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>507.0</double> 
+     <double>18.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode2" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>ID</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>BPMElement</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>26.0</double> 
+     <double>24.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode3" class="com.horstmann.violet.ClassNode"> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>GraphElement</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>182.0</double> 
+     <double>17.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode4" class="com.horstmann.violet.ClassNode"> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>SupportingElement</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>116.0</double> 
+     <double>186.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode5" class="com.horstmann.violet.ClassNode"> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Task</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>529.0</double> 
+     <double>256.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode6" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>expressionBody
+expressionLanguage</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Expression</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>9.0</double> 
+     <double>309.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode7" class="com.horstmann.violet.ClassNode"> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Terminate</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>241.0</double> 
+     <double>493.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode8" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>activities</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Compensate
+</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>13.0</double> 
+     <double>414.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode9" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>errorCode</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Error</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>5.0</double> 
+     <double>575.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode10" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>messageRef
+implType</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Message</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>239.0</double> 
+     <double>310.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode11" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>timeDate
+timeCycle</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Timer</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>238.0</double> 
+     <double>574.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode12" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>condition</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Conditional</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>9.0</double> 
+     <double>493.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode13" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>signalRef</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Signal</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>244.0</double> 
+     <double>410.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode14" class="com.horstmann.violet.ClassNode"> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>None</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>443.0</double> 
+     <double>348.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode15" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>script</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Script
+</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>443.0</double> 
+     <double>464.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode16" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>messageRef
+implType</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Send
+</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>619.0</double> 
+     <double>342.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode17" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>messageRef
+instanciate
+implType</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Receive
+</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>618.0</double> 
+     <double>436.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode18" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>outMessageRef
+inMessageRef
+implType</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Service
+</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>615.0</double> 
+     <double>563.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode1"/> 
+   <object idref="ClassNode0"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode3"/> 
+   <object idref="ClassNode2"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode4"/> 
+   <object idref="ClassNode2"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode0"/> 
+   <object idref="ClassNode3"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode5"/> 
+   <object idref="ClassNode1"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode6"/> 
+   <object idref="ClassNode4"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode16"/> 
+   <object idref="ClassNode5"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode17"/> 
+   <object idref="ClassNode5"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode18"/> 
+   <object idref="ClassNode5"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode14"/> 
+   <object idref="ClassNode5"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode15"/> 
+   <object idref="ClassNode5"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode10"/> 
+   <object idref="ClassNode4"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode13"/> 
+   <object idref="ClassNode4"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode7"/> 
+   <object idref="ClassNode4"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode11"/> 
+   <object idref="ClassNode4"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode9"/> 
+   <object idref="ClassNode4"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode12"/> 
+   <object idref="ClassNode4"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode8"/> 
+   <object idref="ClassNode4"/> 
+  </void> 
+ </object> 
+</java> 

Added: api/branches/tdiesler/docs/VioletUML/APIActivity.png
===================================================================
(Binary files differ)


Property changes on: api/branches/tdiesler/docs/VioletUML/APIActivity.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: api/branches/tdiesler/docs/VioletUML/APIEvent.class.violet
===================================================================
--- api/branches/tdiesler/docs/VioletUML/APIEvent.class.violet	                        (rev 0)
+++ api/branches/tdiesler/docs/VioletUML/APIEvent.class.violet	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,515 @@
+<?xml version="1.0" encoding="UTF-8"?> 
+<java version="1.6.0_06" class="java.beans.XMLDecoder"> 
+ <object class="com.horstmann.violet.ClassDiagramGraph"> 
+  <void method="addNode"> 
+   <object id="ClassNode0" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>name</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>FlowObject</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>331.0</double> 
+     <double>19.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode1" class="com.horstmann.violet.ClassNode"> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Event</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>507.0</double> 
+     <double>18.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode2" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>ID</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>BPMElement</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>24.0</double> 
+     <double>19.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode3" class="com.horstmann.violet.ClassNode"> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>GraphElement</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>182.0</double> 
+     <double>17.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode4" class="com.horstmann.violet.ClassNode"> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>SupportElement</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>88.0</double> 
+     <double>128.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode5" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>triggers
+outFlows</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>StartEvent</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>355.0</double> 
+     <double>147.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode6" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>triggers
+targets
+inFlows
+outFlows</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>IntermediateEvent</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>492.0</double> 
+     <double>145.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode7" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>results
+inFlows</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>EndEvent</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>664.0</double> 
+     <double>148.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode8" class="com.horstmann.violet.ClassNode"> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>EventDetail</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>100.0</double> 
+     <double>209.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode9" class="com.horstmann.violet.ClassNode"> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Cancel</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>9.0</double> 
+     <double>309.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode10" class="com.horstmann.violet.ClassNode"> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Terminate</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>189.0</double> 
+     <double>490.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode11" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>activities</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Compensate
+</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>9.0</double> 
+     <double>412.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode12" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>errorCode</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Error</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>5.0</double> 
+     <double>575.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode13" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>messageRef
+implType</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Message</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>193.0</double> 
+     <double>310.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode14" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>timeDate
+timeCycle</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Timer</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>188.0</double> 
+     <double>570.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode15" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>condition</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Conditional</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>9.0</double> 
+     <double>493.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode16" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>signalRef</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Signal</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>185.0</double> 
+     <double>409.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode1"/> 
+   <object idref="ClassNode0"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode3"/> 
+   <object idref="ClassNode2"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode4"/> 
+   <object idref="ClassNode2"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode0"/> 
+   <object idref="ClassNode3"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode8"/> 
+   <object idref="ClassNode4"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode5"/> 
+   <object idref="ClassNode1"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode6"/> 
+   <object idref="ClassNode1"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode7"/> 
+   <object idref="ClassNode1"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode9"/> 
+   <object idref="ClassNode8"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode13"/> 
+   <object idref="ClassNode8"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode16"/> 
+   <object idref="ClassNode8"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode10"/> 
+   <object idref="ClassNode8"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode14"/> 
+   <object idref="ClassNode8"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode11"/> 
+   <object idref="ClassNode8"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode15"/> 
+   <object idref="ClassNode8"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode12"/> 
+   <object idref="ClassNode8"/> 
+  </void> 
+ </object> 
+</java> 

Added: api/branches/tdiesler/docs/VioletUML/APIEvent.png
===================================================================
(Binary files differ)


Property changes on: api/branches/tdiesler/docs/VioletUML/APIEvent.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: api/branches/tdiesler/docs/VioletUML/APIGateway.class.violet
===================================================================
--- api/branches/tdiesler/docs/VioletUML/APIGateway.class.violet	                        (rev 0)
+++ api/branches/tdiesler/docs/VioletUML/APIGateway.class.violet	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,624 @@
+<?xml version="1.0" encoding="UTF-8"?> 
+<java version="1.6.0_06" class="java.beans.XMLDecoder"> 
+ <object class="com.horstmann.violet.ClassDiagramGraph"> 
+  <void method="addNode"> 
+   <object id="ClassNode0" class="com.horstmann.violet.ClassNode"> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>FlowObject</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>374.0</double> 
+     <double>186.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode1" class="com.horstmann.violet.ClassNode"> 
+    <void property="methods"> 
+     <void property="text"> 
+      <string>startProcess</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Process
+</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>290.0</double> 
+     <double>417.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode2" class="com.horstmann.violet.ClassNode"> 
+    <void property="methods"> 
+     <void property="text"> 
+      <string>execute</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Event</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>218.0</double> 
+     <double>294.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode3" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>outFlow</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>StartEvent</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>55.0</double> 
+     <double>390.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode4" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>name
+inFlow
+outFlow</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>IntermediateEvent</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>12.0</double> 
+     <double>101.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode5" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>name
+inFlow</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>EndEvent</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>49.0</double> 
+     <double>483.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode6" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>name</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Activity</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>373.0</double> 
+     <double>296.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode7" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>name
+inFlows
+outFlows</string> 
+     </void> 
+    </void> 
+    <void property="methods"> 
+     <void property="text"> 
+      <string>execute</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Gateway
+</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>519.0</double> 
+     <double>299.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode8" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>parent
+inFlow
+outFlow</string> 
+     </void> 
+    </void> 
+    <void property="methods"> 
+     <void property="text"> 
+      <string>execute</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>SubProcess
+</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>294.0</double> 
+     <double>522.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode9" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>inFlow
+outFlow</string> 
+     </void> 
+    </void> 
+    <void property="methods"> 
+     <void property="text"> 
+      <string>execute</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Task</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>446.0</double> 
+     <double>415.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode10" class="com.horstmann.violet.ClassNode"> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>ExclusiveGateway</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>666.0</double> 
+     <double>403.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode11" class="com.horstmann.violet.ClassNode"> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>InclusiveGateway</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>659.0</double> 
+     <double>472.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode12" class="com.horstmann.violet.ClassNode"> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>ComplexGateway</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>659.0</double> 
+     <double>542.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode13" class="com.horstmann.violet.ClassNode"> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>ParallelGateway</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>662.0</double> 
+     <double>612.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode14" class="com.horstmann.violet.ClassNode"> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Result</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>48.0</double> 
+     <double>587.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode15" class="com.horstmann.violet.ClassNode"> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Attachments</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>56.0</double> 
+     <double>661.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode16" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>ID</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>BPMElement</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>362.0</double> 
+     <double>6.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode17" class="com.horstmann.violet.ClassNode"> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>GraphElement</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>252.0</double> 
+     <double>90.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode18" class="com.horstmann.violet.ClassNode"> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>SupportElement</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>425.0</double> 
+     <double>88.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="addNode"> 
+   <object id="ClassNode19" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>name
+status
+properties
+InputSets
+OutputSets</string> 
+     </void> 
+    </void> 
+    <void property="methods"> 
+     <void property="text"> 
+      <string>startProcess</string> 
+     </void> 
+    </void> 
+    <void property="name"> 
+     <void property="text"> 
+      <string>Process
+</string> 
+     </void> 
+    </void> 
+   </object> 
+   <object class="java.awt.geom.Point2D$Double"> 
+    <void method="setLocation"> 
+     <double>623.0</double> 
+     <double>67.0</double> 
+    </void> 
+   </object> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode3"/> 
+   <object idref="ClassNode2"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode2"/> 
+   <object idref="ClassNode0"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode4"/> 
+   <object idref="ClassNode2"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode5"/> 
+   <object idref="ClassNode2"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode7"/> 
+   <object idref="ClassNode0"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode1"/> 
+   <object idref="ClassNode6"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode8"/> 
+   <object idref="ClassNode1"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode9"/> 
+   <object idref="ClassNode6"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode10"/> 
+   <object idref="ClassNode7"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode11"/> 
+   <object idref="ClassNode7"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode12"/> 
+   <object idref="ClassNode7"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode13"/> 
+   <object idref="ClassNode7"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode5"/> 
+   <object idref="ClassNode14"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode14"/> 
+   <object idref="ClassNode15"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode6"/> 
+   <object idref="ClassNode0"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode17"/> 
+   <object idref="ClassNode16"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode18"/> 
+   <object idref="ClassNode16"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode0"/> 
+   <object idref="ClassNode17"/> 
+  </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
+    </void> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
+    </void> 
+   </object> 
+   <object idref="ClassNode19"/> 
+   <object idref="ClassNode18"/> 
+  </void> 
+ </object> 
+</java> 

Modified: api/branches/tdiesler/docs/VioletUML/APIModel.class.violet
===================================================================
--- api/branches/tdiesler/docs/VioletUML/APIModel.class.violet	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/docs/VioletUML/APIModel.class.violet	2008-07-16 14:22:16 UTC (rev 1648)
@@ -3,6 +3,11 @@
  <object class="com.horstmann.violet.ClassDiagramGraph"> 
   <void method="addNode"> 
    <object id="ClassNode0" class="com.horstmann.violet.ClassNode"> 
+    <void property="attributes"> 
+     <void property="text"> 
+      <string>name</string> 
+     </void> 
+    </void> 
     <void property="name"> 
      <void property="text"> 
       <string>FlowObject</string> 
@@ -11,69 +16,54 @@
    </object> 
    <object class="java.awt.geom.Point2D$Double"> 
     <void method="setLocation"> 
-     <double>351.0</double> 
-     <double>20.0</double> 
+     <double>166.0</double> 
+     <double>224.0</double> 
     </void> 
    </object> 
   </void> 
   <void method="addNode"> 
    <object id="ClassNode1" class="com.horstmann.violet.ClassNode"> 
-    <void property="methods"> 
-     <void property="text"> 
-      <string>startProcess</string> 
-     </void> 
-    </void> 
     <void property="name"> 
      <void property="text"> 
-      <string>Process
-</string> 
+      <string>Event</string> 
      </void> 
     </void> 
    </object> 
    <object class="java.awt.geom.Point2D$Double"> 
     <void method="setLocation"> 
-     <double>267.0</double> 
-     <double>251.0</double> 
+     <double>125.0</double> 
+     <double>327.0</double> 
     </void> 
    </object> 
   </void> 
   <void method="addNode"> 
    <object id="ClassNode2" class="com.horstmann.violet.ClassNode"> 
-    <void property="methods"> 
-     <void property="text"> 
-      <string>execute</string> 
-     </void> 
-    </void> 
     <void property="name"> 
      <void property="text"> 
-      <string>Event</string> 
+      <string>Activity</string> 
      </void> 
     </void> 
    </object> 
    <object class="java.awt.geom.Point2D$Double"> 
     <void method="setLocation"> 
-     <double>195.0</double> 
-     <double>128.0</double> 
+     <double>13.0</double> 
+     <double>327.0</double> 
     </void> 
    </object> 
   </void> 
   <void method="addNode"> 
    <object id="ClassNode3" class="com.horstmann.violet.ClassNode"> 
-    <void property="attributes"> 
-     <void property="text"> 
-      <string>outFlow</string> 
-     </void> 
-    </void> 
     <void property="name"> 
      <void property="text"> 
-      <string>StartEvent</string> 
+      <string>Gateway
+</string> 
      </void> 
     </void> 
    </object> 
    <object class="java.awt.geom.Point2D$Double"> 
     <void method="setLocation"> 
-     <double>32.0</double> 
-     <double>224.0</double> 
+     <double>250.0</double> 
+     <double>334.0</double> 
     </void> 
    </object> 
   </void> 
@@ -81,62 +71,49 @@
    <object id="ClassNode4" class="com.horstmann.violet.ClassNode"> 
     <void property="attributes"> 
      <void property="text"> 
-      <string>name
-inFlow
-outFlow</string> 
+      <string>ID</string> 
      </void> 
     </void> 
     <void property="name"> 
      <void property="text"> 
-      <string>IntermediateEvent</string> 
+      <string>BPMElement</string> 
      </void> 
     </void> 
    </object> 
    <object class="java.awt.geom.Point2D$Double"> 
     <void method="setLocation"> 
-     <double>12.0</double> 
-     <double>101.0</double> 
+     <double>343.0</double> 
+     <double>10.0</double> 
     </void> 
    </object> 
   </void> 
   <void method="addNode"> 
    <object id="ClassNode5" class="com.horstmann.violet.ClassNode"> 
-    <void property="attributes"> 
-     <void property="text"> 
-      <string>name
-inFlow</string> 
-     </void> 
-    </void> 
     <void property="name"> 
      <void property="text"> 
-      <string>EndEvent</string> 
+      <string>GraphElement</string> 
      </void> 
     </void> 
    </object> 
    <object class="java.awt.geom.Point2D$Double"> 
     <void method="setLocation"> 
-     <double>26.0</double> 
-     <double>317.0</double> 
+     <double>427.0</double> 
+     <double>111.0</double> 
     </void> 
    </object> 
   </void> 
   <void method="addNode"> 
    <object id="ClassNode6" class="com.horstmann.violet.ClassNode"> 
-    <void property="attributes"> 
-     <void property="text"> 
-      <string>name</string> 
-     </void> 
-    </void> 
     <void property="name"> 
      <void property="text"> 
-      <string>Activity</string> 
+      <string>SupportElement</string> 
      </void> 
     </void> 
    </object> 
    <object class="java.awt.geom.Point2D$Double"> 
     <void method="setLocation"> 
-     <double>350.0</double> 
-     <double>130.0</double> 
+     <double>232.0</double> 
+     <double>111.0</double> 
     </void> 
    </object> 
   </void> 
@@ -145,80 +122,53 @@
     <void property="attributes"> 
      <void property="text"> 
       <string>name
-inFlows
-outFlows</string> 
+status
+properties
+InputSets
+OutputSets</string> 
      </void> 
     </void> 
-    <void property="methods"> 
-     <void property="text"> 
-      <string>execute</string> 
-     </void> 
-    </void> 
     <void property="name"> 
      <void property="text"> 
-      <string>Gateway
+      <string>Process
 </string> 
      </void> 
     </void> 
    </object> 
    <object class="java.awt.geom.Point2D$Double"> 
     <void method="setLocation"> 
-     <double>496.0</double> 
-     <double>133.0</double> 
+     <double>65.0</double> 
+     <double>81.0</double> 
     </void> 
    </object> 
   </void> 
   <void method="addNode"> 
    <object id="ClassNode8" class="com.horstmann.violet.ClassNode"> 
-    <void property="attributes"> 
-     <void property="text"> 
-      <string>parent
-inFlow
-outFlow</string> 
-     </void> 
-    </void> 
-    <void property="methods"> 
-     <void property="text"> 
-      <string>execute</string> 
-     </void> 
-    </void> 
     <void property="name"> 
      <void property="text"> 
-      <string>SubProcess
-</string> 
+      <string>Flow</string> 
      </void> 
     </void> 
    </object> 
    <object class="java.awt.geom.Point2D$Double"> 
     <void method="setLocation"> 
-     <double>271.0</double> 
-     <double>356.0</double> 
+     <double>431.0</double> 
+     <double>220.0</double> 
     </void> 
    </object> 
   </void> 
   <void method="addNode"> 
    <object id="ClassNode9" class="com.horstmann.violet.ClassNode"> 
-    <void property="attributes"> 
-     <void property="text"> 
-      <string>inFlow
-outFlow</string> 
-     </void> 
-    </void> 
-    <void property="methods"> 
-     <void property="text"> 
-      <string>execute</string> 
-     </void> 
-    </void> 
     <void property="name"> 
      <void property="text"> 
-      <string>Task</string> 
+      <string>SequenceFlow</string> 
      </void> 
     </void> 
    </object> 
    <object class="java.awt.geom.Point2D$Double"> 
     <void method="setLocation"> 
-     <double>423.0</double> 
-     <double>249.0</double> 
+     <double>372.0</double> 
+     <double>326.0</double> 
     </void> 
    </object> 
   </void> 
@@ -226,14 +176,14 @@
    <object id="ClassNode10" class="com.horstmann.violet.ClassNode"> 
     <void property="name"> 
      <void property="text"> 
-      <string>ExclusiveGateway</string> 
+      <string>MessageFlow</string> 
      </void> 
     </void> 
    </object> 
    <object class="java.awt.geom.Point2D$Double"> 
     <void method="setLocation"> 
-     <double>643.0</double> 
-     <double>237.0</double> 
+     <double>487.0</double> 
+     <double>332.0</double> 
     </void> 
    </object> 
   </void> 
@@ -241,14 +191,15 @@
    <object id="ClassNode11" class="com.horstmann.violet.ClassNode"> 
     <void property="name"> 
      <void property="text"> 
-      <string>InclusiveGateway</string> 
+      <string>Artifact
+</string> 
      </void> 
     </void> 
    </object> 
    <object class="java.awt.geom.Point2D$Double"> 
     <void method="setLocation"> 
-     <double>636.0</double> 
-     <double>306.0</double> 
+     <double>609.0</double> 
+     <double>218.0</double> 
     </void> 
    </object> 
   </void> 
@@ -256,73 +207,40 @@
    <object id="ClassNode12" class="com.horstmann.violet.ClassNode"> 
     <void property="name"> 
      <void property="text"> 
-      <string>ComplexGateway</string> 
+      <string>DataObject</string> 
      </void> 
     </void> 
    </object> 
    <object class="java.awt.geom.Point2D$Double"> 
     <void method="setLocation"> 
-     <double>636.0</double> 
-     <double>376.0</double> 
+     <double>609.0</double> 
+     <double>329.0</double> 
     </void> 
    </object> 
   </void> 
-  <void method="addNode"> 
-   <object id="ClassNode13" class="com.horstmann.violet.ClassNode"> 
-    <void property="name"> 
-     <void property="text"> 
-      <string>ParallelGateway</string> 
-     </void> 
+  <void method="connect"> 
+   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
+    <void property="bentStyle"> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
     </void> 
-   </object> 
-   <object class="java.awt.geom.Point2D$Double"> 
-    <void method="setLocation"> 
-     <double>639.0</double> 
-     <double>446.0</double> 
+    <void property="endArrowHead"> 
+     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
     </void> 
    </object> 
+   <object idref="ClassNode1"/> 
+   <object idref="ClassNode0"/> 
   </void> 
-  <void method="addNode"> 
-   <object id="ClassNode14" class="com.horstmann.violet.ClassNode"> 
-    <void property="name"> 
-     <void property="text"> 
-      <string>Result</string> 
-     </void> 
-    </void> 
-   </object> 
-   <object class="java.awt.geom.Point2D$Double"> 
-    <void method="setLocation"> 
-     <double>25.0</double> 
-     <double>421.0</double> 
-    </void> 
-   </object> 
-  </void> 
-  <void method="addNode"> 
-   <object id="ClassNode15" class="com.horstmann.violet.ClassNode"> 
-    <void property="name"> 
-     <void property="text"> 
-      <string>Attachments</string> 
-     </void> 
-    </void> 
-   </object> 
-   <object class="java.awt.geom.Point2D$Double"> 
-    <void method="setLocation"> 
-     <double>33.0</double> 
-     <double>495.0</double> 
-    </void> 
-   </object> 
-  </void> 
   <void method="connect"> 
    <object class="com.horstmann.violet.ClassRelationshipEdge"> 
     <void property="bentStyle"> 
-     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
     </void> 
     <void property="endArrowHead"> 
      <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
     </void> 
    </object> 
    <object idref="ClassNode3"/> 
-   <object idref="ClassNode2"/> 
+   <object idref="ClassNode0"/> 
   </void> 
   <void method="connect"> 
    <object class="com.horstmann.violet.ClassRelationshipEdge"> 
@@ -339,26 +257,26 @@
   <void method="connect"> 
    <object class="com.horstmann.violet.ClassRelationshipEdge"> 
     <void property="bentStyle"> 
-     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
     </void> 
     <void property="endArrowHead"> 
      <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
     </void> 
    </object> 
+   <object idref="ClassNode5"/> 
    <object idref="ClassNode4"/> 
-   <object idref="ClassNode2"/> 
   </void> 
   <void method="connect"> 
    <object class="com.horstmann.violet.ClassRelationshipEdge"> 
     <void property="bentStyle"> 
-     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
     </void> 
     <void property="endArrowHead"> 
      <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
     </void> 
    </object> 
-   <object idref="ClassNode5"/> 
-   <object idref="ClassNode2"/> 
+   <object idref="ClassNode6"/> 
+   <object idref="ClassNode4"/> 
   </void> 
   <void method="connect"> 
    <object class="com.horstmann.violet.ClassRelationshipEdge"> 
@@ -369,8 +287,8 @@
      <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
     </void> 
    </object> 
-   <object idref="ClassNode7"/> 
    <object idref="ClassNode0"/> 
+   <object idref="ClassNode5"/> 
   </void> 
   <void method="connect"> 
    <object class="com.horstmann.violet.ClassRelationshipEdge"> 
@@ -381,7 +299,7 @@
      <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
     </void> 
    </object> 
-   <object idref="ClassNode1"/> 
+   <object idref="ClassNode7"/> 
    <object idref="ClassNode6"/> 
   </void> 
   <void method="connect"> 
@@ -394,7 +312,7 @@
     </void> 
    </object> 
    <object idref="ClassNode8"/> 
-   <object idref="ClassNode1"/> 
+   <object idref="ClassNode5"/> 
   </void> 
   <void method="connect"> 
    <object class="com.horstmann.violet.ClassRelationshipEdge"> 
@@ -406,91 +324,43 @@
     </void> 
    </object> 
    <object idref="ClassNode9"/> 
-   <object idref="ClassNode6"/> 
+   <object idref="ClassNode8"/> 
   </void> 
   <void method="connect"> 
    <object class="com.horstmann.violet.ClassRelationshipEdge"> 
     <void property="bentStyle"> 
-     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
     </void> 
     <void property="endArrowHead"> 
      <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
     </void> 
    </object> 
    <object idref="ClassNode10"/> 
-   <object idref="ClassNode7"/> 
+   <object idref="ClassNode8"/> 
   </void> 
   <void method="connect"> 
    <object class="com.horstmann.violet.ClassRelationshipEdge"> 
     <void property="bentStyle"> 
-     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
     </void> 
     <void property="endArrowHead"> 
      <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
     </void> 
    </object> 
+   <object idref="ClassNode12"/> 
    <object idref="ClassNode11"/> 
-   <object idref="ClassNode7"/> 
   </void> 
   <void method="connect"> 
    <object class="com.horstmann.violet.ClassRelationshipEdge"> 
     <void property="bentStyle"> 
-     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
+     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
     </void> 
     <void property="endArrowHead"> 
      <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
     </void> 
    </object> 
-   <object idref="ClassNode12"/> 
-   <object idref="ClassNode7"/> 
-  </void> 
-  <void method="connect"> 
-   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
-    <void property="bentStyle"> 
-     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
-    </void> 
-    <void property="endArrowHead"> 
-     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
-    </void> 
-   </object> 
-   <object idref="ClassNode13"/> 
-   <object idref="ClassNode7"/> 
-  </void> 
-  <void method="connect"> 
-   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
-    <void property="bentStyle"> 
-     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
-    </void> 
-    <void property="endArrowHead"> 
-     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
-    </void> 
-   </object> 
+   <object idref="ClassNode11"/> 
    <object idref="ClassNode5"/> 
-   <object idref="ClassNode14"/> 
   </void> 
-  <void method="connect"> 
-   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
-    <void property="bentStyle"> 
-     <object class="com.horstmann.violet.BentStyle" field="HVH"/> 
-    </void> 
-    <void property="endArrowHead"> 
-     <object class="com.horstmann.violet.ArrowHead" field="V"/> 
-    </void> 
-   </object> 
-   <object idref="ClassNode14"/> 
-   <object idref="ClassNode15"/> 
-  </void> 
-  <void method="connect"> 
-   <object class="com.horstmann.violet.ClassRelationshipEdge"> 
-    <void property="bentStyle"> 
-     <object class="com.horstmann.violet.BentStyle" field="VHV"/> 
-    </void> 
-    <void property="endArrowHead"> 
-     <object class="com.horstmann.violet.ArrowHead" field="TRIANGLE"/> 
-    </void> 
-   </object> 
-   <object idref="ClassNode6"/> 
-   <object idref="ClassNode0"/> 
-  </void> 
  </object> 
 </java> 

Modified: api/branches/tdiesler/docs/VioletUML/APIModel.png
===================================================================
(Binary files differ)

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/client/ProcessManager.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -23,8 +23,6 @@
 
 // $Id$
 
-import java.io.File;
-import java.io.FileWriter;
 import java.io.IOException;
 import java.net.URL;
 import java.util.Collections;
@@ -36,7 +34,6 @@
 import org.jboss.bpm.EngineShutdownException;
 import org.jboss.bpm.model.Process;
 import org.jboss.bpm.model.internal.ProcessImpl;
-import org.jboss.bpm.util.ProcessMarshaller;
 
 /**
  * The process manager is the entry point to create, find and otherwise manage processes.
@@ -151,7 +148,6 @@
     if (proc.getProcessState() == Process.ProcessState.CREATED)
       ((ProcessImpl)proc).initialize();
     
-    marshallProcess(proc);
     return procs.add((ProcessImpl)proc);
   }
 
@@ -162,22 +158,4 @@
   {
     procs.remove(proc.getName());
   }
-
-  private void marshallProcess(Process proc)
-  {
-    try
-    {
-      File file = new File("target/" + proc.getName() + "-api10.xml").getCanonicalFile();
-      log.debug("Generate: " + file);
-      
-      FileWriter writer = new FileWriter(file);
-      ProcessMarshaller marshaller = new ProcessMarshaller();
-      marshaller.marshallProcess(proc, writer);
-      writer.close();
-    }
-    catch (Exception ex)
-    {
-      log.error("Cannot marshall: " + proc);
-    }
-  }
 }
\ No newline at end of file

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/client/internal/ExecutionManagerImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/client/internal/ExecutionManagerImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/client/internal/ExecutionManagerImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -41,7 +41,6 @@
 import org.jboss.bpm.model.Signal;
 import org.jboss.bpm.model.StartEvent;
 import org.jboss.bpm.model.internal.SequenceFlowImpl;
-import org.jboss.bpm.model.internal.jaxb.JAXBSequenceFlow;
 import org.jboss.bpm.runtime.Attachments;
 import org.jboss.bpm.runtime.ExecutionHandler;
 import org.jboss.bpm.runtime.FlowHandler;
@@ -125,7 +124,7 @@
   {
     InitialFlow(StartEvent start)
     {
-      super(new JAXBSequenceFlow());
+      super("start");
       setTarget(start);
     }
   }

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/client/internal/ProcessManagerImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/client/internal/ProcessManagerImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/client/internal/ProcessManagerImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -24,18 +24,12 @@
 // $Id$
 
 import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.StringReader;
 import java.net.URL;
 
-import javax.xml.bind.JAXBException;
-
-import org.jboss.bpm.InvalidProcessException;
 import org.jboss.bpm.client.ProcessEngine;
 import org.jboss.bpm.client.ProcessManager;
-import org.jboss.bpm.model.internal.ProcessImpl;
-import org.jboss.bpm.util.ProcessUnmarshaller;
 import org.jboss.bpm.model.Process;
+import org.jboss.bpm.model.ProcessDialectFactory;
 
 /**
  * The process manager is the entry point to create, find and otherwise manage processes.
@@ -55,16 +49,10 @@
    */
   public Process createProcessOverride(String pXML)
   {
-    try
-    {
-      ProcessUnmarshaller unmarschaller = new ProcessUnmarshaller();
-      Process proc = unmarschaller.unmarshallProcess(new StringReader(pXML));
-      return proc;
-    }
-    catch (JAXBException ex)
-    {
-      throw new InvalidProcessException("Cannot unmarschall: " + pXML, ex);
-    }
+    ProcessDialectFactory.
+//      ProcessUnmarshaller unmarschaller = new ProcessUnmarshaller();
+//      Process proc = unmarschaller.unmarshallProcess(new StringReader(pXML));
+      return null;
   }
 
   /**
@@ -72,15 +60,8 @@
    */
   public Process createProcessOverride(URL pURL) throws IOException
   {
-    try
-    {
-      ProcessUnmarshaller unmarschaller = new ProcessUnmarshaller();
-      Process proc = unmarschaller.unmarshallProcess(new InputStreamReader(pURL.openStream()));
-      return proc;
-    }
-    catch (JAXBException ex)
-    {
-      throw new InvalidProcessException("Cannot unmarschall: " + pURL, ex);
-    }
+//      ProcessUnmarshaller unmarschaller = new ProcessUnmarshaller();
+//      Process proc = unmarschaller.unmarshallProcess(new InputStreamReader(pURL.openStream()));
+      return null;
   }
 }
\ No newline at end of file

Added: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/BPMNElement.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/BPMNElement.java	                        (rev 0)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/BPMNElement.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model;
+
+//$Id$
+
+/**
+ * The 
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface BPMNElement 
+{
+  /**
+   * Get the ID of this element
+   */
+  //String getID();
+}
\ No newline at end of file


Property changes on: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/BPMNElement.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/FlowObject.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/FlowObject.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/FlowObject.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -30,7 +30,7 @@
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
  */
-public interface FlowObject
+public interface FlowObject extends GraphicalElement
 {
   /** 
    * Get the associated Process 

Added: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/GraphicalElement.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/GraphicalElement.java	                        (rev 0)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/GraphicalElement.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,34 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model;
+
+//$Id$
+
+/**
+ * A graphical BPMN element 
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface GraphicalElement extends BPMNElement
+{
+}
\ No newline at end of file


Property changes on: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/GraphicalElement.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Deleted: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/NamedFlowObject.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/NamedFlowObject.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/NamedFlowObject.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,39 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model;
-
-//$Id$
-
-/**
- * Implementing {@link FlowObject}s have can be uniquely identified 
- * in the {@link Process} by name.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public interface NamedFlowObject
-{
-  /**
-   * Get the unique name.
-   */
-  String getName();
-}
\ No newline at end of file

Added: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/NamedFlowObject.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/NamedFlowObject.java	                        (rev 0)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/NamedFlowObject.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model;
+
+//$Id$
+
+/**
+ * Implementing {@link BPMNElement} have can be uniquely identified 
+ * in the {@link Process} by name.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface NamedFlowObject
+{
+  /**
+   * Get the unique name.
+   */
+  String getName();
+}
\ No newline at end of file

Added: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/SuportingElement.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/SuportingElement.java	                        (rev 0)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/SuportingElement.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,34 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model;
+
+//$Id$
+
+/**
+ * A graphical BPMN element 
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public interface SuportingElement extends BPMNElement
+{
+}
\ No newline at end of file


Property changes on: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/SuportingElement.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ActivityImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -24,7 +24,6 @@
 //$Id$
 
 import org.jboss.bpm.model.Activity;
-import org.jboss.bpm.model.internal.jaxb.JAXBActivity;
 
 /**
  * An activity is a generic term for work that a company or organization performs via business processes. 
@@ -36,26 +35,20 @@
  */
 public abstract class ActivityImpl extends FlowObjectImpl implements Activity
 {
-  public ActivityImpl(JAXBActivity delegate)
+  private String name;
+  
+  public ActivityImpl(String name)
   {
-    super(delegate);
+    this.name = name;
   }
-  
+
   public String getName()
   {
-    return getDelegate().getName();
+    return name;
   }
   
   public void setName(String name)
   {
-    if (getDelegate().getName() != null)
-      throw new IllegalStateException("Cannot rename: " + name);
-
-    getDelegate().setName(name);
+    this.name = name;
   }
-
-  public JAXBActivity getDelegate()
-  {
-    return (JAXBActivity)super.getDelegate();
-  }
 }
\ No newline at end of file

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ComplexGatewayImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ComplexGatewayImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ComplexGatewayImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -21,11 +21,10 @@
  */
 package org.jboss.bpm.model.internal;
 
+//$Id$
+
 import org.jboss.bpm.model.ComplexGateway;
-import org.jboss.bpm.model.internal.jaxb.JAXBComplexGateway;
 
-// $Id$
-
 /**
  * A Complex Gateway handles situations that are not easily handled through the other types of Gateways. Complex Gateways can also be used to combine a set of linked
  * simple Gateways into a single, more compact situation. Modelers can provide complex expressions that determine the merging and/or splitting behavior of the Gateway.
@@ -37,15 +36,9 @@
 {
   public ComplexGatewayImpl(String name)
   {
-    this(new JAXBComplexGateway());
-    setName(name);
+    super(name);
   }
 
-  public ComplexGatewayImpl(JAXBComplexGateway delegate)
-  {
-    super(delegate);
-  }
-
   public String toString()
   {
     return "ComplexGateway[" + getName() + "]";

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/EndEventImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/EndEventImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/EndEventImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -30,7 +30,6 @@
 import org.jboss.bpm.model.FlowObject;
 import org.jboss.bpm.model.Result;
 import org.jboss.bpm.model.Signal;
-import org.jboss.bpm.model.internal.jaxb.JAXBEndEvent;
 import org.jboss.bpm.runtime.Attachments;
 import org.jboss.bpm.runtime.ExecutionHandler;
 import org.jboss.bpm.runtime.FlowHandler;
@@ -52,30 +51,20 @@
   // provide logging
   private static final Log log = LogFactory.getLog(EndEventImpl.class);
 
+  private String name;
   private Result result;
   private Flow inFlow;
 
   public EndEventImpl(String name)
   {
-    this(new JAXBEndEvent());
-    setName(name);
+    this.name = name;
   }
 
-  public EndEventImpl(JAXBEndEvent delegate)
-  {
-    super(delegate);
-  }
-
   public String getName()
   {
-    return getDelegate().getName();
+    return name;
   }
 
-  public void setName(String name)
-  {
-    getDelegate().setName(name);
-  }
-
   public Flow getInFlow()
   {
     return inFlow;
@@ -155,11 +144,6 @@
     return handler;
   }
 
-  public JAXBEndEvent getDelegate()
-  {
-    return (JAXBEndEvent)super.getDelegate();
-  }
-
   public String toString()
   {
     return "EndEvent[" + getName() + "]";

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/EventImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/EventImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/EventImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -22,7 +22,6 @@
 package org.jboss.bpm.model.internal;
 
 import org.jboss.bpm.model.Event;
-import org.jboss.bpm.model.internal.jaxb.JAXBEvent;
 import org.jboss.bpm.runtime.ExecutionHandler;
 import org.jboss.bpm.runtime.FlowHandler;
 import org.jboss.bpm.runtime.SignalHandler;
@@ -42,15 +41,7 @@
   private ExecutionHandler executionHandler;
   private FlowHandler flowHandler;
   private SignalHandler signalHandler;
-
-  public EventImpl(JAXBEvent delegate)
-  {
-    super(delegate);
-    executionHandler = ExecutionHandlerImpl.adaptHandler(delegate.getExecutionHandler());
-    flowHandler = FlowHandlerImpl.adaptHandler(delegate.getFlowHandler());
-    signalHandler = SignalHandlerImpl.adaptHandler(delegate.getSignalHandler());
-  }
-
+  
   public ExecutionHandler getExecutionHandler()
   {
     return executionHandler;

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ExclusiveGatewayImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ExclusiveGatewayImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ExclusiveGatewayImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -21,11 +21,10 @@
  */
 package org.jboss.bpm.model.internal;
 
-import org.jboss.bpm.model.ExclusiveGateway;
-import org.jboss.bpm.model.internal.jaxb.JAXBExclusiveGateway;
-
 //$Id$
 
+import org.jboss.bpm.model.ExclusiveGateway;
+
 /**
  * A point in the workflow process where, based on a decision or workflow control data, one of several branches is chosen. 
  * 
@@ -36,15 +35,9 @@
 {
   public ExclusiveGatewayImpl(String name)
   {
-    this(new JAXBExclusiveGateway());
-    setName(name);
+    super(name);
   }
 
-  public ExclusiveGatewayImpl(JAXBExclusiveGateway delegate)
-  {
-    super(delegate);
-  }
-
   public String toString()
   {
     return "ExclusiveGateway[" + getName() + "]";

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ExecutionHandlerImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ExecutionHandlerImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ExecutionHandlerImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -23,7 +23,6 @@
 
 //$Id$
 
-import org.jboss.bpm.model.internal.jaxb.JAXBExecutionHandler;
 import org.jboss.bpm.runtime.ExecutionHandler;
 import org.jboss.bpm.runtime.Token;
 
@@ -37,16 +36,6 @@
 {
   private ExecutionHandler handler;
 
-  public ExecutionHandlerImpl()
-  {
-    super(new JAXBExecutionHandler());
-  }
-
-  public ExecutionHandlerImpl(JAXBExecutionHandler delegate)
-  {
-    super(delegate);
-  }
-
   /**
    * Execute this flow object
    */
@@ -58,9 +47,4 @@
     }
     handler.execute(token);
   }
-  
-  protected static ExecutionHandler adaptHandler(JAXBExecutionHandler jaxb)
-  {
-    return jaxb != null ? new ExecutionHandlerImpl(jaxb) : null;
-  }
 }
\ No newline at end of file

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/FlowHandlerImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/FlowHandlerImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/FlowHandlerImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -23,7 +23,6 @@
 
 //$Id$
 
-import org.jboss.bpm.model.internal.jaxb.JAXBFlowHandler;
 import org.jboss.bpm.runtime.FlowHandler;
 import org.jboss.bpm.runtime.FlowScheduler;
 import org.jboss.bpm.runtime.Token;
@@ -38,16 +37,6 @@
 {
   private FlowHandler handler;
 
-  public FlowHandlerImpl()
-  {
-    super(new JAXBFlowHandler());
-  }
-
-  public FlowHandlerImpl(JAXBFlowHandler delegate)
-  {
-    super(delegate);
-  }
-
   public void execute(FlowScheduler scheduler, Token token)
   {
     if (handler == null)
@@ -56,9 +45,4 @@
     }
     handler.execute(scheduler, token);
   }
-
-  public static FlowHandler adaptHandler(JAXBFlowHandler jaxb)
-  {
-    return jaxb != null ? new FlowHandlerImpl(jaxb) : null;
-  }
 }
\ No newline at end of file

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/FlowImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/FlowImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/FlowImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -23,14 +23,8 @@
 
 //$Id$
 
-import java.util.List;
-
-import org.jboss.bpm.InvalidProcessException;
 import org.jboss.bpm.model.Flow;
 import org.jboss.bpm.model.FlowObject;
-import org.jboss.bpm.model.internal.jaxb.JAXBFlow;
-import org.jboss.bpm.model.internal.jaxb.JAXBMessageFlow;
-import org.jboss.bpm.model.internal.jaxb.JAXBSequenceFlow;
 
 /**
  * A Flow is a graphical line connecting two objects in a BPD. There are two types of Flow: Sequence Flow and Message Flow, each with their own line style. Flow is also
@@ -41,28 +35,29 @@
  */
 public abstract class FlowImpl implements Flow
 {
-  private JAXBFlow delegate;
+  private String name;
+  private String targetName;
   private FlowObject source;
   private FlowObject target;
 
-  public FlowImpl(JAXBFlow delegate)
+  public FlowImpl(String targetName)
   {
-    this.delegate = delegate;
+    this.targetName = targetName;
   }
 
   public String getName()
   {
-    return delegate.getName();
+    return name;
   }
 
-  public String getTargetName()
+  public void setName(String name)
   {
-    return delegate.getTargetName();
+    this.name = name;
   }
 
-  public void setTargetName(String targetName)
+  public String getTargetName()
   {
-    delegate.setTargetName(targetName);
+    return targetName;
   }
 
   public FlowObject getSource()
@@ -84,33 +79,4 @@
   {
     this.target = target;
   }
-
-  protected JAXBFlow getDelegate()
-  {
-    return delegate;
-  }
-
-  static void adaptFlows(List<Flow> destList, List<JAXBFlow> srcList)
-  {
-    for (JAXBFlow srcFlow : srcList)
-    {
-      Flow flow = adaptFlow(srcFlow);
-      destList.add(flow);
-    }
-  }
-
-  static Flow adaptFlow(JAXBFlow srcFlow)
-  {
-    Flow destFlow = null;
-    if (srcFlow != null)
-    {
-      if (srcFlow instanceof JAXBSequenceFlow)
-        destFlow = new SequenceFlowImpl((JAXBSequenceFlow)srcFlow);
-      else if (srcFlow instanceof JAXBMessageFlow)
-        destFlow = new MessageFlowImpl((JAXBMessageFlow)srcFlow);
-      else
-        throw new InvalidProcessException("Unsupported type: " + srcFlow);
-    }
-    return destFlow;
-  }
 }
\ No newline at end of file

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/FlowObjectImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -31,7 +31,6 @@
 import org.jboss.bpm.model.Process;
 import org.jboss.bpm.model.SingleInFlowSupport;
 import org.jboss.bpm.model.SingleOutFlowSupport;
-import org.jboss.bpm.model.internal.jaxb.JAXBFlowObject;
 
 //$Id$
 
@@ -43,15 +42,9 @@
  */
 public abstract class FlowObjectImpl implements FlowObject
 {
-  private JAXBFlowObject delegate;
   private Process process;
 
   
-  public FlowObjectImpl(JAXBFlowObject delegate)
-  {
-    this.delegate = delegate;
-  }
-
   public Process getProcess()
   {
     return process;
@@ -153,9 +146,4 @@
       flow.setTarget(target);
     }
   }
-  
-  public JAXBFlowObject getDelegate()
-  {
-    return delegate;
-  }
 }
\ No newline at end of file

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/GatewayImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -33,8 +33,6 @@
 import org.jboss.bpm.model.FlowObject;
 import org.jboss.bpm.model.Gateway;
 import org.jboss.bpm.model.Signal;
-import org.jboss.bpm.model.internal.jaxb.JAXBFlow;
-import org.jboss.bpm.model.internal.jaxb.JAXBGateway;
 import org.jboss.bpm.runtime.ExecutionHandler;
 import org.jboss.bpm.runtime.FlowHandler;
 import org.jboss.bpm.runtime.FlowScheduler;
@@ -54,31 +52,23 @@
   // provide logging
   private static final Log log = LogFactory.getLog(GatewayImpl.class);
 
+  private String name;
   protected List<Flow> inFlows = new ArrayList<Flow>();
   protected List<Flow> outFlows = new ArrayList<Flow>();
   private ExecutionHandler executionHandler;
   private FlowHandler flowHandler;
   private SignalHandler signalHandler;
 
-  public GatewayImpl(JAXBGateway delegate)
+  public GatewayImpl(String name)
   {
-    super(delegate);
-    executionHandler = ExecutionHandlerImpl.adaptHandler(delegate.getExecutionHandler());
-    flowHandler = FlowHandlerImpl.adaptHandler(delegate.getFlowHandler());
-    signalHandler = SignalHandlerImpl.adaptHandler(delegate.getSignalHandler());
-    FlowImpl.adaptFlows(outFlows, delegate.getOutFlows());
+    this.name = name;
   }
 
   public String getName()
   {
-    return getDelegate().getName();
+    return name;
   }
 
-  public void setName(String name)
-  {
-    getDelegate().setName(name);
-  }
-
   public List<Flow> getOutFlows()
   {
     return Collections.unmodifiableList(outFlows);
@@ -87,8 +77,6 @@
   public void addOutFlow(Flow flow)
   {
     outFlows.add(flow);
-    JAXBFlow jaxb = ((FlowImpl)flow).getDelegate();
-    getDelegate().getOutFlows().add(jaxb);
   }
 
   public List<Flow> getInFlows()
@@ -170,9 +158,4 @@
   {
     this.signalHandler = signalHandler;
   }
-
-  public JAXBGateway getDelegate()
-  {
-    return (JAXBGateway)super.getDelegate();
-  }
 }
\ No newline at end of file

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/HandlerImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/HandlerImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/HandlerImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -23,9 +23,8 @@
 
 //$Id$
 
-import org.jboss.bpm.model.internal.jaxb.JAXBHandler;
+import org.jboss.bpm.NotImplementedException;
 import org.jboss.bpm.runtime.Handler;
-import org.jboss.bpm.NotImplementedException;
 
 /**
  * Implement to handle the outgoing Flows for an FlowObject
@@ -35,20 +34,34 @@
  */
 public abstract class HandlerImpl implements Handler
 {
-  private JAXBHandler delegate;
+  private String className;
+  private String beanRef;
   
-  public HandlerImpl(JAXBHandler delegate)
+  public String getClassName()
   {
-    this.delegate = delegate;
+    return className;
   }
 
+  public void setClassName(String className)
+  {
+    this.className = className;
+  }
+
+  public String getBeanRef()
+  {
+    return beanRef;
+  }
+
+  public void setBeanRef(String beanRef)
+  {
+    this.beanRef = beanRef;
+  }
+
   @SuppressWarnings("unchecked")
   protected <T> T newInstance(Class<T> clazz)
   {
     try
     {
-      String className = delegate.getClassName();
-      String beanRef = delegate.getBeanRef();
       if (className != null)
       {
         ClassLoader ctxLoader = Thread.currentThread().getContextClassLoader();

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/InclusiveGatewayImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/InclusiveGatewayImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/InclusiveGatewayImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -24,7 +24,6 @@
 //$Id$
 
 import org.jboss.bpm.model.InclusiveGateway;
-import org.jboss.bpm.model.internal.jaxb.JAXBInclusiveGateway;
 
 
 
@@ -40,15 +39,9 @@
 {
   public InclusiveGatewayImpl(String name)
   {
-    this(new JAXBInclusiveGateway());
-    setName(name);
+    super(name);
   }
 
-  public InclusiveGatewayImpl(JAXBInclusiveGateway delegate)
-  {
-    super(delegate);
-  }
-
   public String toString()
   {
     return "InclusiveGateway[" + getName() + "]";

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/IntermediateEventImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/IntermediateEventImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/IntermediateEventImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -29,8 +29,6 @@
 import org.jboss.bpm.model.Flow;
 import org.jboss.bpm.model.IntermediateEvent;
 import org.jboss.bpm.model.Signal;
-import org.jboss.bpm.model.internal.jaxb.JAXBFlow;
-import org.jboss.bpm.model.internal.jaxb.JAXBIntermediateEvent;
 import org.jboss.bpm.runtime.ExecutionHandler;
 import org.jboss.bpm.runtime.FlowHandler;
 import org.jboss.bpm.runtime.FlowScheduler;
@@ -51,31 +49,20 @@
   // provide logging
   private static final Log log = LogFactory.getLog(IntermediateEventImpl.class);
 
+  private String name;
   private Flow inFlow;
   private Flow outFlow;
 
   public IntermediateEventImpl(String name)
   {
-    this(new JAXBIntermediateEvent());
-    setName(name);
+    this.name = name;
   }
 
-  public IntermediateEventImpl(JAXBIntermediateEvent delegate)
-  {
-    super(delegate);
-    outFlow = FlowImpl.adaptFlow(delegate.getOutFlow());
-  }
-
   public String getName()
   {
-    return getDelegate().getName();
+    return name;
   }
 
-  public void setName(String name)
-  {
-    getDelegate().setName(name);
-  }
-
   public Flow getInFlow()
   {
     return inFlow;
@@ -94,8 +81,6 @@
   public void setOutFlow(Flow flow)
   {
     this.outFlow = flow;
-    JAXBFlow jaxb = ((FlowImpl)flow).getDelegate();
-    getDelegate().setOutFlow(jaxb);
   }
 
   public ExecutionHandler getExecutionHandler()
@@ -153,11 +138,6 @@
     return handler;
   }
 
-  public JAXBIntermediateEvent getDelegate()
-  {
-    return (JAXBIntermediateEvent)super.getDelegate();
-  }
-
   public String toString()
   {
     return "ItermediateEvent[" + getName() + "]";

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/MessageFlowImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/MessageFlowImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/MessageFlowImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -24,7 +24,6 @@
 //$Id$
 
 import org.jboss.bpm.model.MessageFlow;
-import org.jboss.bpm.model.internal.jaxb.JAXBMessageFlow;
 
 /**
  * A Message Flow is a dashed line that is used to show the flow of messages between two entities that are prepared to send and receive them. 
@@ -35,14 +34,9 @@
  */
 public class MessageFlowImpl extends FlowImpl implements MessageFlow
 {
+
   public MessageFlowImpl(String targetName)
   {
-    super(new JAXBMessageFlow());
-    setTargetName(targetName);
+    super(targetName);
   }
-  
-  protected MessageFlowImpl(JAXBMessageFlow delegate)
-  {
-    super(delegate);
-  }
 }
\ No newline at end of file

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ParallelGatewayImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ParallelGatewayImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ParallelGatewayImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -25,7 +25,6 @@
 
 import org.jboss.bpm.model.Flow;
 import org.jboss.bpm.model.ParallelGateway;
-import org.jboss.bpm.model.internal.jaxb.JAXBParallelGateway;
 import org.jboss.bpm.runtime.FlowHandler;
 import org.jboss.bpm.runtime.FlowScheduler;
 import org.jboss.bpm.runtime.Token;
@@ -42,15 +41,9 @@
 {
   public ParallelGatewayImpl(String name)
   {
-    this(new JAXBParallelGateway());
-    setName(name);
+    super(name);
   }
 
-  public ParallelGatewayImpl(JAXBParallelGateway delegate)
-  {
-    super(delegate);
-  }
-
   /**
    * The default FlowHandler adds all out flows to the queue
    */

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/ProcessImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -37,17 +37,6 @@
 import org.jboss.bpm.model.Process;
 import org.jboss.bpm.model.Result;
 import org.jboss.bpm.model.StartEvent;
-import org.jboss.bpm.model.internal.jaxb.JAXBComplexGateway;
-import org.jboss.bpm.model.internal.jaxb.JAXBEndEvent;
-import org.jboss.bpm.model.internal.jaxb.JAXBExclusiveGateway;
-import org.jboss.bpm.model.internal.jaxb.JAXBFlowObject;
-import org.jboss.bpm.model.internal.jaxb.JAXBInclusiveGateway;
-import org.jboss.bpm.model.internal.jaxb.JAXBIntermediateEvent;
-import org.jboss.bpm.model.internal.jaxb.JAXBParallelGateway;
-import org.jboss.bpm.model.internal.jaxb.JAXBProcess;
-import org.jboss.bpm.model.internal.jaxb.JAXBStartEvent;
-import org.jboss.bpm.model.internal.jaxb.JAXBSubProcess;
-import org.jboss.bpm.model.internal.jaxb.JAXBTask;
 import org.jboss.bpm.runtime.Attachments;
 
 /**
@@ -63,23 +52,13 @@
 
   public ProcessImpl(String name)
   {
-    this(new JAXBProcess());
-    setName(name);
-  }
-
-  public ProcessImpl(JAXBProcess delegate)
-  {
-    super(delegate);
+    super(name);
     setProcess(this);
-    adaptFlowObjects(delegate);
   }
 
   public void addFlowObject(FlowObject flowObject)
   {
     flowObjects.add(flowObject);
-    FlowObjectImpl foImpl = (FlowObjectImpl)flowObject;
-    JAXBFlowObject jaxb = foImpl.getDelegate();
-    getDelegate().getFlowObjects().add(jaxb);
   }
 
   public StartEventImpl getStartEvent()
@@ -189,58 +168,6 @@
     processState = ProcessState.INITIALIZED;
   }
 
-  private void adaptFlowObjects(JAXBProcess delegate)
-  {
-    for (JAXBFlowObject fo : delegate.getFlowObjects())
-    {
-      if (fo instanceof JAXBStartEvent)
-      {
-        flowObjects.add(new StartEventImpl((JAXBStartEvent)fo));
-      }
-      else if (fo instanceof JAXBIntermediateEvent)
-      {
-        flowObjects.add(new IntermediateEventImpl((JAXBIntermediateEvent)fo));
-      }
-      else if (fo instanceof JAXBEndEvent)
-      {
-        flowObjects.add(new EndEventImpl((JAXBEndEvent)fo));
-      }
-      else if (fo instanceof JAXBSubProcess)
-      {
-        flowObjects.add(new SubProcessImpl((JAXBSubProcess)fo));
-      }
-      else if (fo instanceof JAXBTask)
-      {
-        flowObjects.add(new TaskImpl((JAXBTask)fo));
-      }
-      else if (fo instanceof JAXBExclusiveGateway)
-      {
-        flowObjects.add(new ExclusiveGatewayImpl((JAXBExclusiveGateway)fo));
-      }
-      else if (fo instanceof JAXBInclusiveGateway)
-      {
-        flowObjects.add(new InclusiveGatewayImpl((JAXBInclusiveGateway)fo));
-      }
-      else if (fo instanceof JAXBComplexGateway)
-      {
-        flowObjects.add(new ComplexGatewayImpl((JAXBComplexGateway)fo));
-      }
-      else if (fo instanceof JAXBParallelGateway)
-      {
-        flowObjects.add(new ParallelGatewayImpl((JAXBParallelGateway)fo));
-      }
-      else
-      {
-        throw new InvalidProcessException("Unsupported type: " + fo);
-      }
-    }
-  }
-
-  public JAXBProcess getDelegate()
-  {
-    return (JAXBProcess)super.getDelegate();
-  }
-  
   public String toString()
   {
     return "Process[" + getName() + "]";

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/SequenceFlowImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/SequenceFlowImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/SequenceFlowImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -24,11 +24,10 @@
 //$Id$
 
 import org.jboss.bpm.model.SequenceFlow;
-import org.jboss.bpm.model.internal.jaxb.JAXBSequenceFlow;
 
 /**
- * A Sequence Flow is a solid graphical line that is used to show the order that Activities will be performed in a Process. 
- * Each Flow has only one source and only one target. 
+ * A Sequence Flow is a solid graphical line that is used to show the order that Activities will be performed in a Process. Each Flow has only one source and only one
+ * target.
  * 
  * @author thomas.diesler at jboss.com
  * @since 08-Jul-2008
@@ -37,13 +36,6 @@
 {
   public SequenceFlowImpl(String targetName)
   {
-    super(new JAXBSequenceFlow());
-    setTargetName(targetName);
+    super(targetName);
   }
-  
-  protected SequenceFlowImpl(JAXBSequenceFlow delegate)
-  {
-    super(delegate);
-  }
- 
 }
\ No newline at end of file

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/SignalHandlerImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/SignalHandlerImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/SignalHandlerImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -24,7 +24,6 @@
 //$Id$
 
 import org.jboss.bpm.model.Signal;
-import org.jboss.bpm.model.internal.jaxb.JAXBSignalHandler;
 import org.jboss.bpm.runtime.SignalHandler;
 
 /**
@@ -37,16 +36,6 @@
 {
   private SignalHandler handler;
   
-  public SignalHandlerImpl()
-  {
-    super(new JAXBSignalHandler());
-  }
-
-  public SignalHandlerImpl(JAXBSignalHandler delegate)
-  {
-    super(delegate);
-  }
-  
   public Signal getEnterSignal()
   {
     if (handler == null)
@@ -64,9 +53,4 @@
     }
     return handler.getExitSignal();
   }
-
-  public static SignalHandler adaptHandler(JAXBSignalHandler jaxb)
-  {
-    return jaxb != null ? new SignalHandlerImpl(jaxb) : null;
-  }
 }

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/StartEventImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/StartEventImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/StartEventImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -28,8 +28,6 @@
 import org.jboss.bpm.model.Flow;
 import org.jboss.bpm.model.Signal;
 import org.jboss.bpm.model.StartEvent;
-import org.jboss.bpm.model.internal.jaxb.JAXBFlow;
-import org.jboss.bpm.model.internal.jaxb.JAXBStartEvent;
 import org.jboss.bpm.runtime.ExecutionHandler;
 import org.jboss.bpm.runtime.FlowHandler;
 import org.jboss.bpm.runtime.FlowScheduler;
@@ -51,17 +49,6 @@
 
   private Flow outFlow;
 
-  public StartEventImpl()
-  {
-    this(new JAXBStartEvent());
-  }
-
-  public StartEventImpl(JAXBStartEvent delegate)
-  {
-    super(delegate);
-    outFlow = FlowImpl.adaptFlow(delegate.getOutFlow());
-  }
-
   public Flow getOutFlow()
   {
     return outFlow;
@@ -70,8 +57,6 @@
   public void setOutFlow(Flow flow)
   {
     this.outFlow = flow;
-    JAXBFlow jaxb = ((FlowImpl)flow).getDelegate();
-    getDelegate().setOutFlow(jaxb);
   }
 
   public ExecutionHandler getExecutionHandler()
@@ -129,11 +114,6 @@
     return handler;
   }
   
-  public JAXBStartEvent getDelegate()
-  {
-    return (JAXBStartEvent)super.getDelegate();
-  }
-
   public String toString()
   {
     return "StartEvent[]";

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/SubProcessImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/SubProcessImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/SubProcessImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -27,8 +27,6 @@
 import org.jboss.bpm.model.FlowObject;
 import org.jboss.bpm.model.Signal;
 import org.jboss.bpm.model.SubProcess;
-import org.jboss.bpm.model.internal.jaxb.JAXBFlow;
-import org.jboss.bpm.model.internal.jaxb.JAXBSubProcess;
 import org.jboss.bpm.runtime.ExecutionHandler;
 import org.jboss.bpm.runtime.FlowHandler;
 import org.jboss.bpm.runtime.FlowScheduler;
@@ -52,19 +50,9 @@
 
   public SubProcessImpl(String name)
   {
-    this(new JAXBSubProcess());
-    setName(name);
+    super(name);
   }
 
-  public SubProcessImpl(JAXBSubProcess delegate)
-  {
-    super(delegate);
-    executionHandler = ExecutionHandlerImpl.adaptHandler(delegate.getExecutionHandler());
-    flowHandler = FlowHandlerImpl.adaptHandler(delegate.getFlowHandler());
-    signalHandler = SignalHandlerImpl.adaptHandler(delegate.getSignalHandler());
-    outFlow = FlowImpl.adaptFlow(delegate.getOutFlow());
-  }
-
   public Flow getInFlow()
   {
     return inFlow;
@@ -83,8 +71,6 @@
   public void setOutFlow(Flow flow)
   {
     this.outFlow = flow;
-    JAXBFlow jaxb = ((FlowImpl)flow).getDelegate();
-    getDelegate().setOutFlow(jaxb);
   }
 
   public ExecutionHandler getExecutionHandler()
@@ -157,11 +143,6 @@
     this.signalHandler = signalHandler;
   }
 
-  public JAXBSubProcess getDelegate()
-  {
-    return (JAXBSubProcess)super.getDelegate();
-  }
-  
   public String toString()
   {
     return "SubProcess[" + getName() + "]";

Modified: api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java
===================================================================
--- api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/modules/api/src/main/java/org/jboss/bpm/model/internal/TaskImpl.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -26,8 +26,6 @@
 import org.jboss.bpm.model.Flow;
 import org.jboss.bpm.model.Signal;
 import org.jboss.bpm.model.Task;
-import org.jboss.bpm.model.internal.jaxb.JAXBFlow;
-import org.jboss.bpm.model.internal.jaxb.JAXBTask;
 import org.jboss.bpm.runtime.ExecutionHandler;
 import org.jboss.bpm.runtime.FlowHandler;
 import org.jboss.bpm.runtime.FlowScheduler;
@@ -59,18 +57,8 @@
 
   public TaskImpl(String name)
   {
-    this(new JAXBTask());
-    setName(name);
+    super(name);
   }
-  
-  public TaskImpl(JAXBTask delegate)
-  {
-    super(delegate);
-    executionHandler = ExecutionHandlerImpl.adaptHandler(delegate.getExecutionHandler());
-    flowHandler = FlowHandlerImpl.adaptHandler(delegate.getFlowHandler());
-    signalHandler = SignalHandlerImpl.adaptHandler(delegate.getSignalHandler());
-    outFlow = FlowImpl.adaptFlow(delegate.getOutFlow());
-  }
 
   /**
    * Get the out flow
@@ -96,8 +84,6 @@
   public void setOutFlow(Flow flow)
   {
     this.outFlow = flow;
-    JAXBFlow jaxb = ((FlowImpl)flow).getDelegate();
-    getDelegate().setOutFlow(jaxb);
   }
   
   public ExecutionHandler getExecutionHandler()
@@ -170,11 +156,6 @@
     this.signalHandler = signalHandler;
   }
 
-  public JAXBTask getDelegate()
-  {
-    return (JAXBTask)super.getDelegate();
-  }
-
   public String toString()
   {
     return "Task[" + getName() + "]";

Added: api/branches/tdiesler/modules/api/src/main/resources/bpmnxpdl_31.xsd
===================================================================
--- api/branches/tdiesler/modules/api/src/main/resources/bpmnxpdl_31.xsd	                        (rev 0)
+++ api/branches/tdiesler/modules/api/src/main/resources/bpmnxpdl_31.xsd	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,3353 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema targetNamespace="http://www.wfmc.org/2008/XPDL2.1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:deprecated="http://www.wfmc.org/2002/XPDL1.0"
+  xmlns:xpdl="http://www.wfmc.org/2008/XPDL2.1" elementFormDefault="qualified" attributeFormDefault="unqualified" version="31">
+  <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:annotation>
+            <xsd:documentation>BPMN: corresponds to a flow object, which could be a BPMN activity, gateway, or event</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="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:annotation>
+              <xsd:documentation>BPMN: corresponds to an activity, which could be a task or subprocess.[Suggest change element to BpmnActivity, since there is an
+                attribute Implementation which means something else entirely.]</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:choice minOccurs="0">
+            <xsd:element ref="deprecated:BlockActivity" />
+            <xsd:element ref="xpdl:BlockActivity" />
+          </xsd:choice>
+          <xsd:element ref="xpdl:Event">
+            <xsd:annotation>
+              <xsd:documentation>BPMN: Identifies XPDL activity as a BPMN event.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+        </xsd:choice>
+        <xsd:element ref="xpdl:Transaction" minOccurs="0" />
+        <xsd:element ref="xpdl:Performers" minOccurs="0" />
+        <xsd:element ref="xpdl:Performer" minOccurs="0">
+          <xsd:annotation>
+            <xsd:documentation>Deprecated from XPDL2.0. Must be a child of Performers</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <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="xpdl:Id" use="required">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: unique identifier of the flow object</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <xsd:attribute name="IsForCompensation" type="xsd:boolean" use="optional" />
+      <xsd:attribute name="Name" type="xsd:string" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: label of the flow object in the diagram</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <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="CompletionQuantity" 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="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: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>
+  <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:Group" 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="ArtifactInput">
+    <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:attribute name="RequiredForStart" type="xsd:boolean" use="optional" default="true" />
+      <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="DATE" />
+            <xsd:enumeration value="TIME" />
+            <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="xpdl:IdRef" use="required">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Corresponds to embedded subprocess. Pointer to ActivitySet/@Id in XPDL.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <xsd:attribute name="StartActivityId" type="xpdl:IdRef" use="optional" />
+      <xsd:attribute name="View" use="optional" default="COLLAPSED">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Determines whether the subprocess is rendered as Collapsed or Expanded in diagram. Default is Collapsed.</xsd:documentation>
+        </xsd:annotation>
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="COLLAPSED" />
+            <xsd:enumeration value="EXPANDED" />
+          </xsd:restriction>
+        </xsd:simpleType>
+      </xsd:attribute>
+      <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:attribute name="BPMNModelPortabilityConformance" use="optional" default="NONE">
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="NONE" />
+            <xsd:enumeration value="SIMPLE" />
+            <xsd:enumeration value="STANDARD" />
+            <xsd:enumeration value="COMPLETE" />
+          </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:annotation>
+          <xsd:documentation>Deprecated in XPDL 2.1, now use PageId and Page element</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <xsd:attribute name="PageId" type="xpdl:IdRef" 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="CostStructure">
+    <xsd:annotation>
+      <xsd:documentation> Activities incur costs in a number of way, the use up resources which may be people, machines, services, computers, office space, etc.
+        Activities also use up fixed costs which may be assigned on an activity by activity basis, thus allowing for the assignment of overhead. Fixed costs are
+        assigned in bulk, that is to say there is one fixed cost per activity. However resource costs are assigned on a resource by resource basis, each one having a
+        cost and an associated time unit.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:choice>
+        <xsd:element ref="xpdl:ResourceCosts" minOccurs="0" maxOccurs="unbounded" />
+        <xsd:element name="FixedCost" type="xsd:integer" />
+      </xsd:choice>
+    </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="ReadOnly" type="xsd:boolean" use="optional" default="false" />
+      <xsd:attribute name="IsArray" type="xsd:boolean" use="optional" default="false" />
+      <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:element name="TestValue" type="xpdl:ExpressionType" minOccurs="0" />
+        <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 name="DataField" minOccurs="0" maxOccurs="unbounded">
+          <xsd:complexType>
+            <xsd:attribute name="Id" type="xpdl:Id" use="required" />
+          </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="optional" />
+      <xsd:attribute name="State" type="xsd:string" use="optional" />
+      <xsd:attribute name="RequiredForStart" type="xsd:boolean" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>Deprecated in BPMN1.1</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <xsd:attribute name="ProducedAtCompletion" type="xsd:boolean" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>Deprecated in BPMN1.1</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <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:annotation>
+      <xsd:documentation>BPMN provides a timer event to support this type of functionality and it is the preferred method for doing this.</xsd:documentation>
+    </xsd:annotation>
+    <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:TriggerResultCompensation" minOccurs="0" />
+        <xsd:element ref="xpdl:TriggerResultSignal" 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="Signal" />
+            <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="ScriptType" type="xsd:string" use="optional" />
+    <xsd:attribute name="ScriptVersion" type="xsd:string" use="optional" />
+    <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 name="InitialValue" type="xpdl:ExpressionType" minOccurs="0" />
+        <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="ReadOnly" type="xsd:boolean" use="optional" default="false" />
+      <xsd:attribute name="Required" type="xsd:boolean" use="optional" default="false" />
+      <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="Group">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element ref="xpdl:Category" minOccurs="0" />
+        <xsd:element name="Object" minOccurs="0" maxOccurs="unbounded">
+          <xsd:complexType>
+            <xsd:attribute name="Id" type="xpdl:Id" use="required" />
+          </xsd:complexType>
+        </xsd:element>
+        <xsd:any namespace="##other" 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="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:annotation>
+            <xsd:documentation>BPMN: corresponds to a task with unspecified TaskType</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element ref="deprecated:Tool" minOccurs="0" maxOccurs="unbounded" />
+        <xsd:element ref="xpdl:Task" minOccurs="0">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: corresponds to a task with specified TaskType</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element ref="xpdl:SubFlow" minOccurs="0">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: corresponds to Reusable subprocess. May run in different pool or same pool.</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <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:element ref="xpdl:ArtifactInput" minOccurs="0" maxOccurs="unbounded" />
+        <xsd:element ref="xpdl:PropertyInput" 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="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:TriggerResultCompensation" minOccurs="0">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: Must be present if if Trigger or ResultType is Compensation.[This event can be attached or throwing. Thus name of element
+              should be TriggerResultCompensation.]</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element ref="xpdl:TriggerConditional" minOccurs="0" />
+        <xsd:element ref="xpdl:TriggerResultLink" minOccurs="0">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: Link event connects source and target nodes of the same process or subprocess. Equivalent to a sequence flow between source
+              and target nodes.</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element ref="xpdl:TriggerResultCancel" minOccurs="0" />
+        <xsd:element ref="xpdl:TriggerResultSignal" minOccurs="0" />
+        <xsd:element ref="xpdl:TriggerIntermediateMultiple" minOccurs="0">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: if the TriggerType is Multiple then this must be present. Only valid for attached event. [EventDetail elements are incorrect.
+              They should be message, timer, error, conditional, signal, cancel.]</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+      </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="Conditional" />
+            <xsd:enumeration value="Link" />
+            <xsd:enumeration value="Signal" />
+            <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="xpdl:Id" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Presence of attribute indicates attached intermediate event; attribute value points to the BPMN activity (task or subprocess)
+            the event is attached to. Absence of the attribute indicates intermediate event in sequence flow. Pointer to Activity/@Id, where activity type must be a
+            task or subprocess.</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="XOR">
+              <xsd:annotation>
+                <xsd:documentation>Deprecated in BPMN1.1</xsd:documentation>
+              </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="Exclusive" />
+            <xsd:enumeration value="OR">
+              <xsd:annotation>
+                <xsd:documentation>Deprecated in BPMN1.1</xsd:documentation>
+              </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="Inclusive" />
+            <xsd:enumeration value="Complex" />
+            <xsd:enumeration value="AND">
+              <xsd:annotation>
+                <xsd:documentation>Deprecated in BPMN1.1</xsd:documentation>
+              </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="Parallel" />
+          </xsd:restriction>
+        </xsd:simpleType>
+      </xsd:attribute>
+      <xsd:attribute name="ExclusiveType" use="optional" default="Data">
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="Data" />
+            <xsd:enumeration value="Event" />
+          </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:element ref="xpdl:Performers" minOccurs="0" />
+        <xsd:element name="NestedLane" minOccurs="0" maxOccurs="unbounded">
+          <xsd:complexType>
+            <xsd:attribute name="LaneId" type="xsd:NMTOKEN" use="required" />
+          </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="optional" />
+      <xsd:attribute name="ParentLane" type="xsd:NMTOKEN" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>Deprecated from BPMN1.0.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <xsd:attribute name="ParentPool" type="xsd:NMTOKEN" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>Deprecated from BPMN1.0.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <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="LayoutInfo">
+    <xsd:complexType>
+      <xsd:attribute name="PixelsPerMillimeter" type="xsd:float" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>Co-ordinates / Sizes are in pixels - this attribute specifies the number of pixels per millimeter used by application.
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <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:element name="MI_Condition" type="xpdl:ExpressionType" minOccurs="0" />
+        <xsd:element name="ComplexMI_FlowCondition" type="xpdl:ExpressionType" minOccurs="0" />
+        <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+      </xsd:sequence>
+      <xsd:attribute name="MI_Condition" type="xsd:string" use="optional" />
+      <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:element name="LoopCondition" type="xpdl:ExpressionType" minOccurs="0" />
+        <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+      </xsd:sequence>
+      <xsd:attribute name="LoopCondition" type="xsd:string" use="optional" />
+      <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="xpdl:IdRef" use="required" />
+      <xsd:attribute name="Target" type="xpdl:IdRef" 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="ModificationDate">
+    <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="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:annotation>
+          <xsd:documentation>Deprecated in XPDL 2.1, now use PageId and Page element</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <xsd:attribute name="PageId" type="xpdl:IdRef" 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:key name="ProcessIds.Package">
+      <xsd:selector xpath=".//xpdl:WorkflowProcess | .//xpdl:ActivitySet" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:keyref name="PoolProcessIdRef.Package" refer="xpdl:ProcessIds.Package">
+      <xsd:selector xpath=".//xpdl:Pool" />
+      <xsd:field xpath="@Process" />
+    </xsd:keyref>
+    <xsd:key name="ProcessIdsTopLevel.Package">
+      <xsd:selector xpath=".//xpdl:WorkflowProcess" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:keyref name="SubFlowIdRef.Package" refer="xpdl:ProcessIdsTopLevel.Package">
+      <xsd:selector xpath=".//xpdl:SubFlow" />
+      <xsd:field xpath="@Id" />
+    </xsd:keyref>
+    <xsd:key name="ActivitySetIds.Package">
+      <xsd:selector xpath=".//xpdl:ActivitySet" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:keyref name="SubFlowStartActivitySetIdRef.Package" refer="xpdl:ActivitySetIds.Package">
+      <xsd:selector xpath=".//xpdl:SubFlow" />
+      <xsd:field xpath="@StartActivitySetId" />
+    </xsd:keyref>
+    <xsd:key name="ActivityIds.Package">
+      <xsd:selector xpath=".//xpdl:Activity" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:keyref name="SubFlowStartActivityIdRef.Package" refer="xpdl:ActivityIds.Package">
+      <xsd:selector xpath=".//xpdl:SubFlow" />
+      <xsd:field xpath="@StartActivityId" />
+    </xsd:keyref>
+    <xsd:keyref name="TaskReferenceTaskRef.Package" refer="xpdl:ActivityIds.Package">
+      <xsd:selector xpath=".//xpdl:TaskReference" />
+      <xsd:field xpath="@TaskRef" />
+    </xsd:keyref>
+    <xsd:key name="LaneIds.Package">
+      <xsd:selector xpath=".//xpdl:Lane" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:keyref name="NodeGraphicsInfoLaneIdRef.Package" refer="xpdl:LaneIds.Package">
+      <xsd:selector xpath=".//xpdl:NodeGraphicsInfo" />
+      <xsd:field xpath="@LaneId" />
+    </xsd:keyref>
+    <xsd:key name="PageIds.Package">
+      <xsd:selector xpath=".//xpdl:Page" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:keyref name="GraphicsInfoPageIdRef.Package" refer="xpdl:PageIds.Package">
+      <xsd:selector xpath=".//xpdl:NodeGraphicsInfo | .//xpdl:ConnectorGraphicsInfo" />
+      <xsd:field xpath="@PageId" />
+    </xsd:keyref>
+    <xsd:key name="PoolAndActivityIds.Package">
+      <xsd:selector xpath=".//xpdl:Pool | .//xpdl:Activity" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:keyref name="MessageFlowSourceRef.Package" refer="xpdl:PoolAndActivityIds.Package">
+      <xsd:selector xpath=".//xpdl:MessageFlow" />
+      <xsd:field xpath="@Source" />
+    </xsd:keyref>
+    <xsd:keyref name="MessageFlowTargetRef.Package" refer="xpdl:PoolAndActivityIds.Package">
+      <xsd:selector xpath=".//xpdl:MessageFlow" />
+      <xsd:field xpath="@Target" />
+    </xsd:keyref>
+		<!-- checks that process id referred to by pool exists -->
+		<!-- checks that process id referred to by subflow exists (must be top-level, not an activityset) -->
+		<!-- checks that start activityset referred to by subflow exists (note: incomplete test, does not constrain to process specified by subflow) -->
+		<!-- checks that start activity referred to by subflow exists (note: incomplete test, does not constrain to process specified by subflow) -->
+		<!-- checks that activity referred to by taskreference exists (note: may be incomplete test, does not constrain to same process that contains the task) -->
+		<!-- checks that lane id referred to by nodegraphicsinfo exists -->
+		<!-- checks that page id referred to by grahicsinfo exists -->
+		<!-- checks that source and target referred to by messageflow exists (note: incomplete test, does check that source/target are, or are in, separate pools) -->
+  </xsd:element>
+  <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:Pages" 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="xpdl:Id" use="required">
+      <xsd:annotation>
+        <xsd:documentation>BPMN: Corresponds to BPD identifier. Target of @DiagramRef in Subflow.</xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="Name" type="xsd:string" use="optional" />
+    <xsd:attribute name="Language" type="xsd:string" use="optional" />
+    <xsd:attribute name="QueryLanguage" 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:ModificationDate" minOccurs="0" />
+        <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:element ref="xpdl:LayoutInfo" 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="Page">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+      </xsd:sequence>
+      <xsd:attribute name="Name" type="xsd:string" use="optional" />
+      <xsd:attribute name="Id" type="xpdl:Id" use="required" />
+      <xsd:attribute name="Height" type="xsd:double" use="optional" />
+      <xsd:attribute name="Width" type="xsd:double" use="optional" />
+      <xsd:anyAttribute namespace="##other" processContents="lax" />
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="Pages">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element ref="xpdl:Page" 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="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="xpdl:Id" use="required">
+        <xsd:annotation>
+          <xsd:documentation>BPMN</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <xsd:attribute name="Name" type="xsd:string" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Pool label in diagram</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <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="xpdl:IdRef" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Pointer to WorkflowProcess/@Id; presence indicates this pool is part of an internal (private) process.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <xsd:attribute name="Participant" type="xsd:NMTOKEN" use="optional" />
+      <xsd:attribute name="BoundaryVisible" type="xsd:boolean" use="required" />
+      <xsd:attribute name="MainPool" type="xsd:boolean" use="optional" default="false" />
+      <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:element ref="xpdl:InputSets" minOccurs="0" />
+      <xsd:element ref="xpdl:OutputSets" 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="xpdl:Id" use="required">
+      <xsd:annotation>
+        <xsd:documentation>BPMN: unique identifier for the process, referenced by Pool</xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="Name" type="xsd:string" use="optional">
+      <xsd:annotation>
+        <xsd:documentation>BPMN: label of WorkflowProcess in diagram, should be same as for Pool</xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <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: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:attribute name="DefaultStartActivitySetId" type="xpdl:IdRef" use="optional" />
+    <xsd:attribute name="DefaultStartActivityId" type="xpdl:IdRef" use="optional" />
+    <xsd:anyAttribute namespace="##other" processContents="lax" />
+  </xsd:complexType>
+  <xsd:element name="PropertyInput">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+      </xsd:sequence>
+      <xsd:attribute name="PropertyId" type="xsd:NMTOKEN" use="required" />
+      <xsd:anyAttribute namespace="##other" processContents="lax" />
+    </xsd:complexType>
+  </xsd:element>
+  <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="xpdl:IdRef" use="required">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Reference to a BPMN task or subprocess definition elsewhere; should not be used for gateway or event. Pointer to Activity/@Id in
+            XPDL.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <xsd:anyAttribute namespace="##other" processContents="lax" />
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="ResourceCosts">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element name="ResourceCostName">
+          <xsd:simpleType>
+            <xsd:restriction base="xsd:string">
+              <xsd:maxLength value="100" />
+              <xsd:minLength value="0" />
+              <xsd:whiteSpace value="preserve" />
+            </xsd:restriction>
+          </xsd:simpleType>
+        </xsd:element>
+        <xsd:element name="ResourceCost">
+          <xsd:simpleType>
+            <xsd:restriction base="xsd:decimal">
+              <xsd:fractionDigits value="2" />
+            </xsd:restriction>
+          </xsd:simpleType>
+        </xsd:element>
+        <xsd:element name="CostUnitOfTime">
+          <xsd:simpleType>
+            <xsd:restriction base="xsd:NMTOKEN">
+              <xsd:enumeration value="second" />
+              <xsd:enumeration value="minute" />
+              <xsd:enumeration value="hour" />
+            </xsd:restriction>
+          </xsd:simpleType>
+        </xsd:element>
+      </xsd:sequence>
+    </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="TriggerResultCompensation">
+    <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="optional" />
+      <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:TriggerResultCompensation" 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="Exclusive">
+        <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:annotation>
+                <xsd:documentation>Deprecated in BPMN1.1</xsd:documentation>
+              </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="Exclusive" />
+            <xsd:enumeration value="OR">
+              <xsd:annotation>
+                <xsd:documentation>Deprecated in BPMN1.1</xsd:documentation>
+              </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="Inclusive" />
+            <xsd:enumeration value="Complex" />
+            <xsd:enumeration value="AND" />
+            <xsd:enumeration value="Parallel" />
+          </xsd:restriction>
+        </xsd:simpleType>
+      </xsd:attribute>
+      <xsd:attribute name="XORType" use="optional" default="Data">
+        <xsd:annotation>
+          <xsd:documentation>Deprecated in BPMN1.1</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="ExclusiveType" use="optional" default="Data">
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="Data" />
+            <xsd:enumeration value="Event" />
+          </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:attribute name="IncomingCondition" type="xsd:string" use="optional" />
+      <xsd:attribute name="OutgoingCondition" type="xsd:string" use="optional" />
+      <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="XOR">
+              <xsd:annotation>
+                <xsd:documentation>Deprecated in BPMN1.1</xsd:documentation>
+              </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="Exclusive" />
+            <xsd:enumeration value="OR">
+              <xsd:annotation>
+                <xsd:documentation>Deprecated in BPMN1.1</xsd:documentation>
+              </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="Inclusive" />
+            <xsd:enumeration value="Complex" />
+            <xsd:enumeration value="AND">
+              <xsd:annotation>
+                <xsd:documentation>Deprecated in BPMN1.1</xsd:documentation>
+              </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="Parallel" />
+          </xsd:restriction>
+        </xsd:simpleType>
+      </xsd:attribute>
+      <xsd:attribute name="ExclusiveType" use="optional" default="Data">
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="Data" />
+            <xsd:enumeration value="Event" />
+          </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:TriggerConditional" minOccurs="0" />
+        <xsd:element ref="xpdl:TriggerResultSignal" minOccurs="0" />
+        <xsd:element ref="xpdl:TriggerMultiple" minOccurs="0" />
+      </xsd:choice>
+      <xsd:attribute name="Trigger" use="required">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Trigger or Result type for the event</xsd:documentation>
+        </xsd:annotation>
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="None" />
+            <xsd:enumeration value="Message" />
+            <xsd:enumeration value="Timer" />
+            <xsd:enumeration value="Conditional" />
+            <xsd:enumeration value="Signal" />
+            <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:element ref="xpdl:EndPoint" minOccurs="0" />
+        <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+      </xsd:sequence>
+      <xsd:attribute name="Id" type="xpdl:IdRef" use="required">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Corresponds to BPMN attribute ProcessRef, pointer to WorkflowProcess/@Id in BPD referenced by PackageRef. [Suggest name change
+            to ProcessRef; this is IDREF not ID].</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="View" use="optional" default="COLLAPSED">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Detrmines rendering of subprocess as Collapsed or Expended. Default is Collapsed.</xsd:documentation>
+        </xsd:annotation>
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="COLLAPSED" />
+            <xsd:enumeration value="EXPANDED" />
+          </xsd:restriction>
+        </xsd:simpleType>
+      </xsd:attribute>
+      <xsd:attribute name="PackageRef" type="xpdl:IdRef" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Corresponds to BPMN attribute DiagramRef, pointer to a BPD identified by Package/@Id. [Maybe IDREF doesn't work here since ID is
+            in a different document.]</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="xpdl:IdRef" use="optional" />
+      <xsd:attribute name="StartActivityId" type="xpdl:IdRef" 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 minOccurs="0">
+        <xsd:element ref="xpdl:TaskService">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: TaskType = Service. In BPMN generally signifies any automated activity.</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element ref="xpdl:TaskReceive">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: TaskType = Receive. Waits for a message, then continues. Equivalent to a "catching" message event. In BPMN, "message"
+              generally signifies any signal from outside the process (pool).</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element ref="xpdl:TaskManual">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: TaskType = Manual. Used for human tasks other than those accessed via workflow.</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element ref="xpdl:TaskReference">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: TaskType = Reference. Task properties defined in referenced activity.</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element ref="xpdl:TaskScript">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: TaskType = Script. Used for automated tasks executed by scripts on process engine, to distinguish from automated tasks
+              performed externally (Service).</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element ref="xpdl:TaskSend">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: Task Type = Send. Equivalent to a "throwing" message event. Sends a message immediately and continues. In BPMN, "message"
+              signifies any signal sent outside the process (pool).</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element ref="xpdl:TaskUser">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: Task Type = User. Generally used for human tasks.</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <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" 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="TaskReceive">
+    <xsd:annotation>
+      <xsd:documentation>BPMN</xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element name="Message" type="xpdl:MessageType" minOccurs="0">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: Implementation-related but required by spec.</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <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>BPMN: Implementation-related but required by spec.</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="xpdl:IdRef" use="required">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Pointer to Activity/@Id that defines the task.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <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" minOccurs="0">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: Implementation-related but required by spec</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <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" minOccurs="0">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: Implementation-related but required by spec.</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element name="MessageOut" type="xpdl:MessageType" minOccurs="0">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: Implementation-related but required by spec.</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <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>BPMN: Implementation-related, but 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" minOccurs="0" />
+        <xsd:element name="MessageIn" type="xpdl:MessageType" minOccurs="0" />
+        <xsd:element name="MessageOut" type="xpdl:MessageType" minOccurs="0" />
+        <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="xpdl:Id" use="required" />
+      <xsd:attribute name="From" type="xpdl:IdRef" use="required" />
+      <xsd:attribute name="To" type="xpdl:IdRef" 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="xpdl: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="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="TriggerConditional">
+    <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:attribute name="ConditionName" type="xsd:string" use="optional" />
+      <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="CatchThrow" use="optional" default="CATCH">
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="CATCH" />
+            <xsd:enumeration value="THROW" />
+          </xsd:restriction>
+        </xsd:simpleType>
+      </xsd:attribute>
+      <xsd:attribute name="Name" type="xsd:NMTOKEN" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>The link can only be used within one process as a shorthand for a long sequence flow .</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" minOccurs="0" />
+        <xsd:element ref="xpdl:WebServiceOperation" minOccurs="0" />
+        <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+      </xsd:sequence>
+      <xsd:attribute name="CatchThrow" use="optional" default="CATCH">
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="CATCH" />
+            <xsd:enumeration value="THROW" />
+          </xsd:restriction>
+        </xsd:simpleType>
+      </xsd:attribute>
+      <xsd:anyAttribute namespace="##other" processContents="lax" />
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="TriggerResultCancel" />
+  <xsd:element name="TriggerResultSignal">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element name="Properties" type="xpdl:ExpressionType" maxOccurs="unbounded" />
+        <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+      </xsd:sequence>
+      <xsd:attribute name="Name" type="xsd:string" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>Text description of the signal</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <xsd:attribute name="CatchThrow" use="optional" default="CATCH">
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="CATCH" />
+            <xsd:enumeration value="THROW" />
+          </xsd:restriction>
+        </xsd:simpleType>
+      </xsd:attribute>
+      <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:TriggerResultCompensation" minOccurs="0" />
+        <xsd:element ref="xpdl:TriggerConditional" 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:TriggerConditional" 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. DEprecated in BPMN1.1</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:documentation>Deprecated in BPMN1.1</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:choice>
+          <xsd:element name="TimeDate" type="xpdl:ExpressionType" />
+          <xsd:element name="TimeCycle" type="xpdl:ExpressionType" />
+        </xsd:choice>
+        <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>Deprecated</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <xsd:attribute name="TimeCycle" type="xsd:string" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>Deprecated</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <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:key name="ActivitySetIds.WorkflowProcess">
+      <xsd:selector xpath="./xpdl:ActivitySets/xpdl:ActivitySet" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:key name="ActivityIds.WorkflowProcess">
+      <xsd:selector xpath="./xpdl:Activities/xpdl:Activity | ./xpdl:ActivitySets/xpdl:ActivitySet/xpdl:Activities/xpdl:Activity" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:key name="ActivityIdsTopLevel.WorkflowProcess">
+      <xsd:selector xpath="./xpdl:Activities/xpdl:Activity" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:key name="TransitionIdsTopLevel.WorkflowProcess">
+      <xsd:selector xpath="./xpdl:Transitions/xpdl:Transition" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:keyref name="DefaultStartActivitySetIdRef.WorkflowProcess" refer="xpdl:ActivitySetIds.WorkflowProcess">
+      <xsd:selector xpath="." />
+      <xsd:field xpath="@DefaultStartActivitySetId" />
+    </xsd:keyref>
+    <xsd:keyref name="DefaultStartActivityIdRef.WorkflowProcess" refer="xpdl:ActivityIds.WorkflowProcess">
+      <xsd:selector xpath="." />
+      <xsd:field xpath="@DefaultStartActivityId" />
+    </xsd:keyref>
+    <xsd:keyref name="BlockActivityActivitySetIdRef.WorkflowProcess" refer="xpdl:ActivitySetIds.WorkflowProcess">
+      <xsd:selector xpath=".//xpdl:BlockActivity" />
+      <xsd:field xpath="@ActivitySetId" />
+    </xsd:keyref>
+    <xsd:keyref name="BlockActivityStartActivityIdRef.WorkflowProcess" refer="xpdl:ActivityIds.WorkflowProcess">
+      <xsd:selector xpath=".//xpdl:BlockActivity" />
+      <xsd:field xpath="@StartActivityId" />
+    </xsd:keyref>
+    <xsd:keyref name="TransitionFromRef.WorkflowProcess" refer="xpdl:ActivityIdsTopLevel.WorkflowProcess">
+      <xsd:selector xpath="./xpdl:Transitions/xpdl:Transition" />
+      <xsd:field xpath="@From" />
+    </xsd:keyref>
+    <xsd:keyref name="TransitionToRef.WorkflowProcess" refer="xpdl:ActivityIdsTopLevel.WorkflowProcess">
+      <xsd:selector xpath="./xpdl:Transitions/xpdl:Transition" />
+      <xsd:field xpath="@To" />
+    </xsd:keyref>
+    <xsd:keyref name="TransitionRefIdRef.WorkflowProcess" refer="xpdl:TransitionIdsTopLevel.WorkflowProcess">
+      <xsd:selector xpath="./xpdl:Activities/xpdl:Activity/xpdl:TransitionRestrictions/xpdl:TransitionRestriction/xpdl:Split/xpdl:TransitionRefs/xpdl:TransitionRef" />
+      <xsd:field xpath="@Id" />
+    </xsd:keyref>
+		<!-- constrain to only activities in the top-level, not activitysets -->
+		<!-- constrain to only transitions in the top-level, not activitysets -->
+		<!-- check that specified default start activityset exists -->
+		<!-- check that specified default start activity exists (note: incomplete test, does not constrain to optional activtyset specified by DefaultStartActivitySetId) -->
+		<!-- check that the activityset specified in a blockactivity exists -->
+		<!-- check that the start activity specified in a blockactivity exists (note: incomplete test, does not constrain to activtyset specified by ActivitySetId) -->
+		<!-- check that the from and to specified in a transition exists -->
+		<!-- check that the id specified in a transitionref exists -->
+  </xsd:element>
+  <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:simpleType name="Id">
+    <xsd:restriction base="xsd:NMTOKEN" />
+  </xsd:simpleType>
+  <xsd:simpleType name="IdRef">
+    <xsd:restriction base="xsd:NMTOKEN" />
+  </xsd:simpleType>
+</xsd:schema>
\ No newline at end of file


Property changes on: api/branches/tdiesler/modules/api/src/main/resources/bpmnxpdl_31.xsd
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: api/branches/tdiesler/modules/api/src/main/resources/bpmnxpdl_31_mods.xsd
===================================================================
--- api/branches/tdiesler/modules/api/src/main/resources/bpmnxpdl_31_mods.xsd	                        (rev 0)
+++ api/branches/tdiesler/modules/api/src/main/resources/bpmnxpdl_31_mods.xsd	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,3230 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  This schema has some modifications 
+-->
+<xsd:schema targetNamespace="http://www.wfmc.org/2008/XPDL2.1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xpdl="http://www.wfmc.org/2008/XPDL2.1"
+  elementFormDefault="qualified" attributeFormDefault="unqualified" version="31">
+  <xsd:element name="Activities">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element ref="xpdl:Activity" minOccurs="0" maxOccurs="unbounded">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: corresponds to a flow object, which could be a BPMN activity, gateway, or event</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="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:annotation>
+              <xsd:documentation>BPMN: corresponds to an activity, which could be a task or subprocess.[Suggest change element to BpmnActivity, since there is an
+                attribute Implementation which means something else entirely.]</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+          <xsd:choice minOccurs="0">
+            <xsd:element ref="xpdl:BlockActivity" />
+          </xsd:choice>
+          <xsd:element ref="xpdl:Event">
+            <xsd:annotation>
+              <xsd:documentation>BPMN: Identifies XPDL activity as a BPMN event.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:element>
+        </xsd:choice>
+        <xsd:element ref="xpdl:Transaction" minOccurs="0" />
+        <xsd:element ref="xpdl:Performers" minOccurs="0" />
+        <xsd:element ref="xpdl:Priority" minOccurs="0" />
+        <xsd:choice minOccurs="0">
+          <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="xpdl:Id" use="required">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: unique identifier of the flow object</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <xsd:attribute name="IsForCompensation" type="xsd:boolean" use="optional" />
+      <xsd:attribute name="Name" type="xsd:string" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: label of the flow object in the diagram</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <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="CompletionQuantity" 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="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: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>
+  <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:Group" 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="ArtifactInput">
+    <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:attribute name="RequiredForStart" type="xsd:boolean" use="optional" default="true" />
+      <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="DATE" />
+            <xsd:enumeration value="TIME" />
+            <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="xpdl:IdRef" use="required">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Corresponds to embedded subprocess. Pointer to ActivitySet/@Id in XPDL.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <xsd:attribute name="StartActivityId" type="xpdl:IdRef" use="optional" />
+      <xsd:attribute name="View" use="optional" default="COLLAPSED">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Determines whether the subprocess is rendered as Collapsed or Expanded in diagram. Default is Collapsed.</xsd:documentation>
+        </xsd:annotation>
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="COLLAPSED" />
+            <xsd:enumeration value="EXPANDED" />
+          </xsd:restriction>
+        </xsd:simpleType>
+      </xsd:attribute>
+      <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 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:attribute name="BPMNModelPortabilityConformance" use="optional" default="NONE">
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="NONE" />
+            <xsd:enumeration value="SIMPLE" />
+            <xsd:enumeration value="STANDARD" />
+            <xsd:enumeration value="COMPLETE" />
+          </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="PageId" type="xpdl:IdRef" 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="CostStructure">
+    <xsd:annotation>
+      <xsd:documentation> Activities incur costs in a number of way, the use up resources which may be people, machines, services, computers, office space, etc.
+        Activities also use up fixed costs which may be assigned on an activity by activity basis, thus allowing for the assignment of overhead. Fixed costs are
+        assigned in bulk, that is to say there is one fixed cost per activity. However resource costs are assigned on a resource by resource basis, each one having a
+        cost and an associated time unit.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:choice>
+        <xsd:element ref="xpdl:ResourceCosts" minOccurs="0" maxOccurs="unbounded" />
+        <xsd:element name="FixedCost" type="xsd:integer" />
+      </xsd:choice>
+    </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="ReadOnly" type="xsd:boolean" use="optional" default="false" />
+      <xsd:attribute name="IsArray" type="xsd:boolean" use="optional" default="false" />
+      <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:element name="TestValue" type="xpdl:ExpressionType" minOccurs="0" />
+        <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 name="DataField" minOccurs="0" maxOccurs="unbounded">
+          <xsd:complexType>
+            <xsd:attribute name="Id" type="xpdl:Id" use="required" />
+          </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="optional" />
+      <xsd:attribute name="State" type="xsd:string" use="optional" />
+      <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:annotation>
+      <xsd:documentation>BPMN provides a timer event to support this type of functionality and it is the preferred method for doing this.</xsd:documentation>
+    </xsd:annotation>
+    <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:TriggerResultCompensation" minOccurs="0" />
+        <xsd:element ref="xpdl:TriggerResultSignal" 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="Signal" />
+            <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="ScriptType" type="xsd:string" use="optional" />
+    <xsd:attribute name="ScriptVersion" type="xsd:string" use="optional" />
+    <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 name="InitialValue" type="xpdl:ExpressionType" minOccurs="0" />
+        <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="ReadOnly" type="xsd:boolean" use="optional" default="false" />
+      <xsd:attribute name="Required" type="xsd:boolean" use="optional" default="false" />
+      <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="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="Group">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element ref="xpdl:Category" minOccurs="0" />
+        <xsd:element name="Object" minOccurs="0" maxOccurs="unbounded">
+          <xsd:complexType>
+            <xsd:attribute name="Id" type="xpdl:Id" use="required" />
+          </xsd:complexType>
+        </xsd:element>
+        <xsd:any namespace="##other" 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="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:annotation>
+            <xsd:documentation>BPMN: corresponds to a task with unspecified TaskType</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element ref="xpdl:Task" minOccurs="0">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: corresponds to a task with specified TaskType</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element ref="xpdl:SubFlow" minOccurs="0">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: corresponds to Reusable subprocess. May run in different pool or same pool.</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <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:element ref="xpdl:ArtifactInput" minOccurs="0" maxOccurs="unbounded" />
+        <xsd:element ref="xpdl:PropertyInput" 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="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:TriggerResultCompensation" minOccurs="0">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: Must be present if if Trigger or ResultType is Compensation.[This event can be attached or throwing. Thus name of element
+              should be TriggerResultCompensation.]</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element ref="xpdl:TriggerConditional" minOccurs="0" />
+        <xsd:element ref="xpdl:TriggerResultLink" minOccurs="0">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: Link event connects source and target nodes of the same process or subprocess. Equivalent to a sequence flow between source
+              and target nodes.</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element ref="xpdl:TriggerResultCancel" minOccurs="0" />
+        <xsd:element ref="xpdl:TriggerResultSignal" minOccurs="0" />
+        <xsd:element ref="xpdl:TriggerIntermediateMultiple" minOccurs="0">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: if the TriggerType is Multiple then this must be present. Only valid for attached event. [EventDetail elements are incorrect.
+              They should be message, timer, error, conditional, signal, cancel.]</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+      </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="Conditional" />
+            <xsd:enumeration value="Link" />
+            <xsd:enumeration value="Signal" />
+            <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="xpdl:Id" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Presence of attribute indicates attached intermediate event; attribute value points to the BPMN activity (task or subprocess)
+            the event is attached to. Absence of the attribute indicates intermediate event in sequence flow. Pointer to Activity/@Id, where activity type must be a
+            task or subprocess.</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="Exclusive" />
+            <xsd:enumeration value="Inclusive" />
+            <xsd:enumeration value="Complex" />
+            <xsd:enumeration value="Parallel" />
+          </xsd:restriction>
+        </xsd:simpleType>
+      </xsd:attribute>
+      <xsd:attribute name="ExclusiveType" use="optional" default="Data">
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="Data" />
+            <xsd:enumeration value="Event" />
+          </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:element ref="xpdl:Performers" minOccurs="0" />
+        <xsd:element name="NestedLane" minOccurs="0" maxOccurs="unbounded">
+          <xsd:complexType>
+            <xsd:attribute name="LaneId" type="xsd:NMTOKEN" use="required" />
+          </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="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="LayoutInfo">
+    <xsd:complexType>
+      <xsd:attribute name="PixelsPerMillimeter" type="xsd:float" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>Co-ordinates / Sizes are in pixels - this attribute specifies the number of pixels per millimeter used by application.
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <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:element name="MI_Condition" type="xpdl:ExpressionType" minOccurs="0" />
+        <xsd:element name="ComplexMI_FlowCondition" type="xpdl:ExpressionType" minOccurs="0" />
+        <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+      </xsd:sequence>
+      <xsd:attribute name="MI_Condition" type="xsd:string" use="optional" />
+      <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:element name="LoopCondition" type="xpdl:ExpressionType" minOccurs="0" />
+        <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+      </xsd:sequence>
+      <xsd:attribute name="LoopCondition" type="xsd:string" use="optional" />
+      <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="xpdl:IdRef" use="required" />
+      <xsd:attribute name="Target" type="xpdl:IdRef" 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="ModificationDate">
+    <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="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="PageId" type="xpdl:IdRef" 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:key name="ProcessIds.Package">
+      <xsd:selector xpath=".//xpdl:WorkflowProcess | .//xpdl:ActivitySet" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:keyref name="PoolProcessIdRef.Package" refer="xpdl:ProcessIds.Package">
+      <xsd:selector xpath=".//xpdl:Pool" />
+      <xsd:field xpath="@Process" />
+    </xsd:keyref>
+    <xsd:key name="ProcessIdsTopLevel.Package">
+      <xsd:selector xpath=".//xpdl:WorkflowProcess" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:keyref name="SubFlowIdRef.Package" refer="xpdl:ProcessIdsTopLevel.Package">
+      <xsd:selector xpath=".//xpdl:SubFlow" />
+      <xsd:field xpath="@Id" />
+    </xsd:keyref>
+    <xsd:key name="ActivitySetIds.Package">
+      <xsd:selector xpath=".//xpdl:ActivitySet" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:keyref name="SubFlowStartActivitySetIdRef.Package" refer="xpdl:ActivitySetIds.Package">
+      <xsd:selector xpath=".//xpdl:SubFlow" />
+      <xsd:field xpath="@StartActivitySetId" />
+    </xsd:keyref>
+    <xsd:key name="ActivityIds.Package">
+      <xsd:selector xpath=".//xpdl:Activity" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:keyref name="SubFlowStartActivityIdRef.Package" refer="xpdl:ActivityIds.Package">
+      <xsd:selector xpath=".//xpdl:SubFlow" />
+      <xsd:field xpath="@StartActivityId" />
+    </xsd:keyref>
+    <xsd:keyref name="TaskReferenceTaskRef.Package" refer="xpdl:ActivityIds.Package">
+      <xsd:selector xpath=".//xpdl:TaskReference" />
+      <xsd:field xpath="@TaskRef" />
+    </xsd:keyref>
+    <xsd:key name="LaneIds.Package">
+      <xsd:selector xpath=".//xpdl:Lane" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:keyref name="NodeGraphicsInfoLaneIdRef.Package" refer="xpdl:LaneIds.Package">
+      <xsd:selector xpath=".//xpdl:NodeGraphicsInfo" />
+      <xsd:field xpath="@LaneId" />
+    </xsd:keyref>
+    <xsd:key name="PageIds.Package">
+      <xsd:selector xpath=".//xpdl:Page" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:keyref name="GraphicsInfoPageIdRef.Package" refer="xpdl:PageIds.Package">
+      <xsd:selector xpath=".//xpdl:NodeGraphicsInfo | .//xpdl:ConnectorGraphicsInfo" />
+      <xsd:field xpath="@PageId" />
+    </xsd:keyref>
+    <xsd:key name="PoolAndActivityIds.Package">
+      <xsd:selector xpath=".//xpdl:Pool | .//xpdl:Activity" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:keyref name="MessageFlowSourceRef.Package" refer="xpdl:PoolAndActivityIds.Package">
+      <xsd:selector xpath=".//xpdl:MessageFlow" />
+      <xsd:field xpath="@Source" />
+    </xsd:keyref>
+    <xsd:keyref name="MessageFlowTargetRef.Package" refer="xpdl:PoolAndActivityIds.Package">
+      <xsd:selector xpath=".//xpdl:MessageFlow" />
+      <xsd:field xpath="@Target" />
+    </xsd:keyref>
+		<!-- checks that process id referred to by pool exists -->
+		<!-- checks that process id referred to by subflow exists (must be top-level, not an activityset) -->
+		<!-- checks that start activityset referred to by subflow exists (note: incomplete test, does not constrain to process specified by subflow) -->
+		<!-- checks that start activity referred to by subflow exists (note: incomplete test, does not constrain to process specified by subflow) -->
+		<!-- checks that activity referred to by taskreference exists (note: may be incomplete test, does not constrain to same process that contains the task) -->
+		<!-- checks that lane id referred to by nodegraphicsinfo exists -->
+		<!-- checks that page id referred to by grahicsinfo exists -->
+		<!-- checks that source and target referred to by messageflow exists (note: incomplete test, does check that source/target are, or are in, separate pools) -->
+  </xsd:element>
+  <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:Pages" 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="xpdl:Id" use="required">
+      <xsd:annotation>
+        <xsd:documentation>BPMN: Corresponds to BPD identifier. Target of @DiagramRef in Subflow.</xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="Name" type="xsd:string" use="optional" />
+    <xsd:attribute name="Language" type="xsd:string" use="optional" />
+    <xsd:attribute name="QueryLanguage" 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:ModificationDate" minOccurs="0" />
+        <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:element ref="xpdl:LayoutInfo" 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="Page">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+      </xsd:sequence>
+      <xsd:attribute name="Name" type="xsd:string" use="optional" />
+      <xsd:attribute name="Id" type="xpdl:Id" use="required" />
+      <xsd:attribute name="Height" type="xsd:double" use="optional" />
+      <xsd:attribute name="Width" type="xsd:double" use="optional" />
+      <xsd:anyAttribute namespace="##other" processContents="lax" />
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="Pages">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element ref="xpdl:Page" 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="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="xpdl:Id" use="required">
+        <xsd:annotation>
+          <xsd:documentation>BPMN</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <xsd:attribute name="Name" type="xsd:string" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Pool label in diagram</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <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="xpdl:IdRef" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Pointer to WorkflowProcess/@Id; presence indicates this pool is part of an internal (private) process.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <xsd:attribute name="Participant" type="xsd:NMTOKEN" use="optional" />
+      <xsd:attribute name="BoundaryVisible" type="xsd:boolean" use="required" />
+      <xsd:attribute name="MainPool" type="xsd:boolean" use="optional" default="false" />
+      <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:element ref="xpdl:InputSets" minOccurs="0" />
+      <xsd:element ref="xpdl:OutputSets" 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: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="xpdl:Id" use="required">
+      <xsd:annotation>
+        <xsd:documentation>BPMN: unique identifier for the process, referenced by Pool</xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="Name" type="xsd:string" use="optional">
+      <xsd:annotation>
+        <xsd:documentation>BPMN: label of WorkflowProcess in diagram, should be same as for Pool</xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <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: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:attribute name="DefaultStartActivitySetId" type="xpdl:IdRef" use="optional" />
+    <xsd:attribute name="DefaultStartActivityId" type="xpdl:IdRef" use="optional" />
+    <xsd:anyAttribute namespace="##other" processContents="lax" />
+  </xsd:complexType>
+  <xsd:element name="PropertyInput">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+      </xsd:sequence>
+      <xsd:attribute name="PropertyId" type="xsd:NMTOKEN" use="required" />
+      <xsd:anyAttribute namespace="##other" processContents="lax" />
+    </xsd:complexType>
+  </xsd:element>
+  <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="xpdl:IdRef" use="required">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Reference to a BPMN task or subprocess definition elsewhere; should not be used for gateway or event. Pointer to Activity/@Id in
+            XPDL.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <xsd:anyAttribute namespace="##other" processContents="lax" />
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="ResourceCosts">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element name="ResourceCostName">
+          <xsd:simpleType>
+            <xsd:restriction base="xsd:string">
+              <xsd:maxLength value="100" />
+              <xsd:minLength value="0" />
+              <xsd:whiteSpace value="preserve" />
+            </xsd:restriction>
+          </xsd:simpleType>
+        </xsd:element>
+        <xsd:element name="ResourceCost">
+          <xsd:simpleType>
+            <xsd:restriction base="xsd:decimal">
+              <xsd:fractionDigits value="2" />
+            </xsd:restriction>
+          </xsd:simpleType>
+        </xsd:element>
+        <xsd:element name="CostUnitOfTime">
+          <xsd:simpleType>
+            <xsd:restriction base="xsd:NMTOKEN">
+              <xsd:enumeration value="second" />
+              <xsd:enumeration value="minute" />
+              <xsd:enumeration value="hour" />
+            </xsd:restriction>
+          </xsd:simpleType>
+        </xsd:element>
+      </xsd:sequence>
+    </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="TriggerResultCompensation">
+    <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="optional" />
+      <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:TriggerResultCompensation" 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="Exclusive">
+        <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="Exclusive" />
+            <xsd:enumeration value="Inclusive" />
+            <xsd:enumeration value="Complex" />
+            <xsd:enumeration value="AND" />
+            <xsd:enumeration value="Parallel" />
+          </xsd:restriction>
+        </xsd:simpleType>
+      </xsd:attribute>
+      <xsd:attribute name="ExclusiveType" use="optional" default="Data">
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="Data" />
+            <xsd:enumeration value="Event" />
+          </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:attribute name="IncomingCondition" type="xsd:string" use="optional" />
+      <xsd:attribute name="OutgoingCondition" type="xsd:string" use="optional" />
+      <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="Exclusive" />
+            <xsd:enumeration value="Inclusive" />
+            <xsd:enumeration value="Complex" />
+            <xsd:enumeration value="Parallel" />
+          </xsd:restriction>
+        </xsd:simpleType>
+      </xsd:attribute>
+      <xsd:attribute name="ExclusiveType" use="optional" default="Data">
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="Data" />
+            <xsd:enumeration value="Event" />
+          </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:TriggerConditional" minOccurs="0" />
+        <xsd:element ref="xpdl:TriggerResultSignal" minOccurs="0" />
+        <xsd:element ref="xpdl:TriggerMultiple" minOccurs="0" />
+      </xsd:choice>
+      <xsd:attribute name="Trigger" use="required">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Trigger or Result type for the event</xsd:documentation>
+        </xsd:annotation>
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="None" />
+            <xsd:enumeration value="Message" />
+            <xsd:enumeration value="Timer" />
+            <xsd:enumeration value="Conditional" />
+            <xsd:enumeration value="Signal" />
+            <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:element ref="xpdl:EndPoint" minOccurs="0" />
+        <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+      </xsd:sequence>
+      <xsd:attribute name="Id" type="xpdl:IdRef" use="required">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Corresponds to BPMN attribute ProcessRef, pointer to WorkflowProcess/@Id in BPD referenced by PackageRef. [Suggest name change
+            to ProcessRef; this is IDREF not ID].</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="View" use="optional" default="COLLAPSED">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Detrmines rendering of subprocess as Collapsed or Expended. Default is Collapsed.</xsd:documentation>
+        </xsd:annotation>
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="COLLAPSED" />
+            <xsd:enumeration value="EXPANDED" />
+          </xsd:restriction>
+        </xsd:simpleType>
+      </xsd:attribute>
+      <xsd:attribute name="PackageRef" type="xpdl:IdRef" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Corresponds to BPMN attribute DiagramRef, pointer to a BPD identified by Package/@Id. [Maybe IDREF doesn't work here since ID is
+            in a different document.]</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="xpdl:IdRef" use="optional" />
+      <xsd:attribute name="StartActivityId" type="xpdl:IdRef" 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 minOccurs="0">
+        <xsd:element ref="xpdl:TaskService">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: TaskType = Service. In BPMN generally signifies any automated activity.</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element ref="xpdl:TaskReceive">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: TaskType = Receive. Waits for a message, then continues. Equivalent to a "catching" message event. In BPMN, "message"
+              generally signifies any signal from outside the process (pool).</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element ref="xpdl:TaskManual">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: TaskType = Manual. Used for human tasks other than those accessed via workflow.</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element ref="xpdl:TaskReference">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: TaskType = Reference. Task properties defined in referenced activity.</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element ref="xpdl:TaskScript">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: TaskType = Script. Used for automated tasks executed by scripts on process engine, to distinguish from automated tasks
+              performed externally (Service).</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element ref="xpdl:TaskSend">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: Task Type = Send. Equivalent to a "throwing" message event. Sends a message immediately and continues. In BPMN, "message"
+              signifies any signal sent outside the process (pool).</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element ref="xpdl:TaskUser">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: Task Type = User. Generally used for human tasks.</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <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" 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="TaskReceive">
+    <xsd:annotation>
+      <xsd:documentation>BPMN</xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element name="Message" type="xpdl:MessageType" minOccurs="0">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: Implementation-related but required by spec.</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <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>BPMN: Implementation-related but required by spec.</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="xpdl:IdRef" use="required">
+        <xsd:annotation>
+          <xsd:documentation>BPMN: Pointer to Activity/@Id that defines the task.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <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" minOccurs="0">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: Implementation-related but required by spec</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <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" minOccurs="0">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: Implementation-related but required by spec.</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element name="MessageOut" type="xpdl:MessageType" minOccurs="0">
+          <xsd:annotation>
+            <xsd:documentation>BPMN: Implementation-related but required by spec.</xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <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>BPMN: Implementation-related, but 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" minOccurs="0" />
+        <xsd:element name="MessageIn" type="xpdl:MessageType" minOccurs="0" />
+        <xsd:element name="MessageOut" type="xpdl:MessageType" minOccurs="0" />
+        <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="xpdl:Id" use="required" />
+      <xsd:attribute name="From" type="xpdl:IdRef" use="required" />
+      <xsd:attribute name="To" type="xpdl:IdRef" 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="xpdl: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="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="TriggerConditional">
+    <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:attribute name="ConditionName" type="xsd:string" use="optional" />
+      <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="CatchThrow" use="optional" default="CATCH">
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="CATCH" />
+            <xsd:enumeration value="THROW" />
+          </xsd:restriction>
+        </xsd:simpleType>
+      </xsd:attribute>
+      <xsd:attribute name="Name" type="xsd:NMTOKEN" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>The link can only be used within one process as a shorthand for a long sequence flow .</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" minOccurs="0" />
+        <xsd:element ref="xpdl:WebServiceOperation" minOccurs="0" />
+        <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+      </xsd:sequence>
+      <xsd:attribute name="CatchThrow" use="optional" default="CATCH">
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="CATCH" />
+            <xsd:enumeration value="THROW" />
+          </xsd:restriction>
+        </xsd:simpleType>
+      </xsd:attribute>
+      <xsd:anyAttribute namespace="##other" processContents="lax" />
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="TriggerResultCancel" />
+  <xsd:element name="TriggerResultSignal">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element name="Properties" type="xpdl:ExpressionType" maxOccurs="unbounded" />
+        <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+      </xsd:sequence>
+      <xsd:attribute name="Name" type="xsd:string" use="optional">
+        <xsd:annotation>
+          <xsd:documentation>Text description of the signal</xsd:documentation>
+        </xsd:annotation>
+      </xsd:attribute>
+      <xsd:attribute name="CatchThrow" use="optional" default="CATCH">
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="CATCH" />
+            <xsd:enumeration value="THROW" />
+          </xsd:restriction>
+        </xsd:simpleType>
+      </xsd:attribute>
+      <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:TriggerResultCompensation" minOccurs="0" />
+        <xsd:element ref="xpdl:TriggerConditional" 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:TriggerConditional" 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="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:choice>
+          <xsd:element name="TimeDate" type="xpdl:ExpressionType" />
+          <xsd:element name="TimeCycle" type="xpdl:ExpressionType" />
+        </xsd:choice>
+        <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="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:key name="ActivitySetIds.WorkflowProcess">
+      <xsd:selector xpath="./xpdl:ActivitySets/xpdl:ActivitySet" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:key name="ActivityIds.WorkflowProcess">
+      <xsd:selector xpath="./xpdl:Activities/xpdl:Activity | ./xpdl:ActivitySets/xpdl:ActivitySet/xpdl:Activities/xpdl:Activity" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:key name="ActivityIdsTopLevel.WorkflowProcess">
+      <xsd:selector xpath="./xpdl:Activities/xpdl:Activity" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:key name="TransitionIdsTopLevel.WorkflowProcess">
+      <xsd:selector xpath="./xpdl:Transitions/xpdl:Transition" />
+      <xsd:field xpath="@Id" />
+    </xsd:key>
+    <xsd:keyref name="DefaultStartActivitySetIdRef.WorkflowProcess" refer="xpdl:ActivitySetIds.WorkflowProcess">
+      <xsd:selector xpath="." />
+      <xsd:field xpath="@DefaultStartActivitySetId" />
+    </xsd:keyref>
+    <xsd:keyref name="DefaultStartActivityIdRef.WorkflowProcess" refer="xpdl:ActivityIds.WorkflowProcess">
+      <xsd:selector xpath="." />
+      <xsd:field xpath="@DefaultStartActivityId" />
+    </xsd:keyref>
+    <xsd:keyref name="BlockActivityActivitySetIdRef.WorkflowProcess" refer="xpdl:ActivitySetIds.WorkflowProcess">
+      <xsd:selector xpath=".//xpdl:BlockActivity" />
+      <xsd:field xpath="@ActivitySetId" />
+    </xsd:keyref>
+    <xsd:keyref name="BlockActivityStartActivityIdRef.WorkflowProcess" refer="xpdl:ActivityIds.WorkflowProcess">
+      <xsd:selector xpath=".//xpdl:BlockActivity" />
+      <xsd:field xpath="@StartActivityId" />
+    </xsd:keyref>
+    <xsd:keyref name="TransitionFromRef.WorkflowProcess" refer="xpdl:ActivityIdsTopLevel.WorkflowProcess">
+      <xsd:selector xpath="./xpdl:Transitions/xpdl:Transition" />
+      <xsd:field xpath="@From" />
+    </xsd:keyref>
+    <xsd:keyref name="TransitionToRef.WorkflowProcess" refer="xpdl:ActivityIdsTopLevel.WorkflowProcess">
+      <xsd:selector xpath="./xpdl:Transitions/xpdl:Transition" />
+      <xsd:field xpath="@To" />
+    </xsd:keyref>
+    <xsd:keyref name="TransitionRefIdRef.WorkflowProcess" refer="xpdl:TransitionIdsTopLevel.WorkflowProcess">
+      <xsd:selector xpath="./xpdl:Activities/xpdl:Activity/xpdl:TransitionRestrictions/xpdl:TransitionRestriction/xpdl:Split/xpdl:TransitionRefs/xpdl:TransitionRef" />
+      <xsd:field xpath="@Id" />
+    </xsd:keyref>
+		<!-- constrain to only activities in the top-level, not activitysets -->
+		<!-- constrain to only transitions in the top-level, not activitysets -->
+		<!-- check that specified default start activityset exists -->
+		<!-- check that specified default start activity exists (note: incomplete test, does not constrain to optional activtyset specified by DefaultStartActivitySetId) -->
+		<!-- check that the activityset specified in a blockactivity exists -->
+		<!-- check that the start activity specified in a blockactivity exists (note: incomplete test, does not constrain to activtyset specified by ActivitySetId) -->
+		<!-- check that the from and to specified in a transition exists -->
+		<!-- check that the id specified in a transitionref exists -->
+  </xsd:element>
+  <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:simpleType name="Id">
+    <xsd:restriction base="xsd:NMTOKEN" />
+  </xsd:simpleType>
+  <xsd:simpleType name="IdRef">
+    <xsd:restriction base="xsd:NMTOKEN" />
+  </xsd:simpleType>
+</xsd:schema>
\ No newline at end of file


Property changes on: api/branches/tdiesler/modules/api/src/main/resources/bpmnxpdl_31_mods.xsd
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: api/branches/tdiesler/modules/api/src/main/resources/jaxb-bindings.xml
===================================================================
--- api/branches/tdiesler/modules/api/src/main/resources/jaxb-bindings.xml	                        (rev 0)
+++ api/branches/tdiesler/modules/api/src/main/resources/jaxb-bindings.xml	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,22 @@
+<jxb:bindings version='1.0' xmlns:jxb='http://java.sun.com/xml/ns/jaxb' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xpdl="http://www.wfmc.org/2008/XPDL2.1">
+  <jxb:bindings schemaLocation="bpmnxpdl_31_mods.xsd" node="/xsd:schema">
+    <jxb:schemaBindings>
+      <jxb:package name="org.jboss.bpm.dialect.xpdl.jaxb" />
+    </jxb:schemaBindings>
+    <jxb:bindings node="//xsd:element[@name='Artifact']//xsd:attribute[@name='Group']">
+      <jxb:property name="groupAtt" />
+    </jxb:bindings>
+    <jxb:bindings node="//xsd:element[@name='LoopMultiInstance']//xsd:attribute[@name='MI_Condition']">
+      <jxb:property name="miConditionAtt" />
+    </jxb:bindings>
+    <jxb:bindings node="//xsd:element[@name='LoopMultiInstance']//xsd:attribute[@name='ComplexMI_FlowCondition']">
+      <jxb:property name="complexMIFlowConditionAtt" />
+    </jxb:bindings>
+    <jxb:bindings node="//xsd:element[@name='LoopStandard']//xsd:attribute[@name='LoopCondition']">
+      <jxb:property name="loopConditionAtt" />
+    </jxb:bindings>
+    <jxb:bindings node="//xsd:complexType[@name='ProcessType']">
+      <jxb:class name="WorkflowProcess" />
+    </jxb:bindings>
+  </jxb:bindings>
+</jxb:bindings>
\ No newline at end of file


Property changes on: api/branches/tdiesler/modules/api/src/main/resources/jaxb-bindings.xml
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb (from rev 1644, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb)

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBActivity.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBActivity.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBActivity.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,60 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-//$Id$
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * An activity is a generic term for work that a company or organization performs via business processes. 
- * An activity can be atomic or non-atomic (compound). 
- * The types of activities that are a part of a Process Model are: Process, Sub-Process, and Task. 
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name="Activity")
-public class JAXBActivity extends JAXBFlowObject
-{
-  private String name;
-  
-  /**
-   * Get the name
-   */
-  public String getName()
-  {
-    return name;
-  }
-
-  /**
-   * Set the name. 
-   * Note, this MUST NOT leak into the public API.
-   */
-  @XmlAttribute(required = true)
-  public void setName(String name)
-  {
-    this.name = name;
-  }
-}
\ No newline at end of file

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBActivity.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBActivity.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBActivity.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBActivity.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,60 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+//$Id$
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * An activity is a generic term for work that a company or organization performs via business processes. 
+ * An activity can be atomic or non-atomic (compound). 
+ * The types of activities that are a part of a Process Model are: Process, Sub-Process, and Task. 
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name="Activity")
+public class JAXBActivity extends JAXBFlowObject
+{
+  private String name;
+  
+  /**
+   * Get the name
+   */
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * Set the name. 
+   * Note, this MUST NOT leak into the public API.
+   */
+  @XmlAttribute(required = true)
+  public void setName(String name)
+  {
+    this.name = name;
+  }
+}
\ No newline at end of file

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBComplexGateway.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBComplexGateway.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBComplexGateway.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,42 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-import javax.xml.bind.annotation.XmlType;
-
-
-// $Id$
-
-/**
- * A Complex Gateway handles situations that are not easily handled through the other types of Gateways. 
- * 
- * Complex Gateways can also be used to combine a set of linked simple Gateways into a single, 
- * more compact situation. Modelers can provide complex expressions that determine the merging and/or 
- * splitting behavior of the Gateway. 
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name="ComplexGateway")
-public class JAXBComplexGateway extends JAXBGateway
-{
-}
\ No newline at end of file

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBComplexGateway.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBComplexGateway.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBComplexGateway.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBComplexGateway.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+import javax.xml.bind.annotation.XmlType;
+
+
+// $Id$
+
+/**
+ * A Complex Gateway handles situations that are not easily handled through the other types of Gateways. 
+ * 
+ * Complex Gateways can also be used to combine a set of linked simple Gateways into a single, 
+ * more compact situation. Modelers can provide complex expressions that determine the merging and/or 
+ * splitting behavior of the Gateway. 
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name="ComplexGateway")
+public class JAXBComplexGateway extends JAXBGateway
+{
+}
\ No newline at end of file

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBEndEvent.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBEndEvent.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBEndEvent.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,60 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlType;
-
-// $Id$
-
-/**
- * As the name implies, the End Event indicates where a Process will end.
- * 
- * In terms of Sequence Flow, the End Event ends the flow of the Process, and thus, will not have any outgoing Sequence Flow. An End Event can have a specific Result
- * that will appear as a marker within the center of the End Event shape. End Event Results are Message, Error, Compensation, Link, and Multiple.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name = "EndEvent")
-public class JAXBEndEvent extends JAXBEvent
-{
-  private String name;
-
-  /**
-   * Get the name
-   */
-  public String getName()
-  {
-    return name;
-  }
-
-  /**
-   * Set the name. 
-   * Note, this MUST NOT leak into the public API.
-   */
-  @XmlAttribute(required = true)
-  public void setName(String name)
-  {
-    this.name = name;
-  }
-}
\ No newline at end of file

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBEndEvent.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBEndEvent.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBEndEvent.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBEndEvent.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,60 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+// $Id$
+
+/**
+ * As the name implies, the End Event indicates where a Process will end.
+ * 
+ * In terms of Sequence Flow, the End Event ends the flow of the Process, and thus, will not have any outgoing Sequence Flow. An End Event can have a specific Result
+ * that will appear as a marker within the center of the End Event shape. End Event Results are Message, Error, Compensation, Link, and Multiple.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name = "EndEvent")
+public class JAXBEndEvent extends JAXBEvent
+{
+  private String name;
+
+  /**
+   * Get the name
+   */
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * Set the name. 
+   * Note, this MUST NOT leak into the public API.
+   */
+  @XmlAttribute(required = true)
+  public void setName(String name)
+  {
+    this.name = name;
+  }
+}
\ No newline at end of file

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBEvent.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBEvent.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBEvent.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,92 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-//$Id$
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-/**
- * An Event is something that “happens” during the course of a business process. These Events affect the flow of the Process and usually have a cause or an impact.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name = "AbstractEvent")
-public class JAXBEvent extends JAXBFlowObject
-{
-  private JAXBExecutionHandler executionHandler;
-  private JAXBFlowHandler flowHandler;
-  private JAXBSignalHandler signalHandler;
-
-  /**
-   * Get the ExecutionHandler for this Event
-   */
-  public JAXBExecutionHandler getExecutionHandler()
-  {
-    return executionHandler;
-  }
-
-  /**
-   * Set the ExecutionHandler for this Event
-   */
-  @XmlElement(name = "execution-handler", required = false)
-  public void setExecutionHandler(JAXBExecutionHandler executionHandler)
-  {
-    this.executionHandler = executionHandler;
-  }
-
-  /**
-   * Get the FlowHandler for this Event
-   */
-  public JAXBFlowHandler getFlowHandler()
-  {
-    return flowHandler;
-  }
-
-  /**
-   * Set the FlowHandler for this Event
-   */
-  @XmlElement(name = "flow-handler", required = false)
-  public void setFlowHandler(JAXBFlowHandler flowHandler)
-  {
-    this.flowHandler = flowHandler;
-  }
-
-  /**
-   * Get the SignalHandler for this Event
-   */
-  public JAXBSignalHandler getSignalHandler()
-  {
-    return signalHandler;
-  }
-
-  /**
-   * Set the SignalHandler for this Event
-   */
-  @XmlElement(name = "signal-handler", required = false)
-  public void setSignalHandler(JAXBSignalHandler signalHandler)
-  {
-    this.signalHandler = signalHandler;
-  }
-}
\ No newline at end of file

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBEvent.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBEvent.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBEvent.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBEvent.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,92 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+//$Id$
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * An Event is something that “happens” during the course of a business process. These Events affect the flow of the Process and usually have a cause or an impact.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name = "AbstractEvent")
+public class JAXBEvent extends JAXBFlowObject
+{
+  private JAXBExecutionHandler executionHandler;
+  private JAXBFlowHandler flowHandler;
+  private JAXBSignalHandler signalHandler;
+
+  /**
+   * Get the ExecutionHandler for this Event
+   */
+  public JAXBExecutionHandler getExecutionHandler()
+  {
+    return executionHandler;
+  }
+
+  /**
+   * Set the ExecutionHandler for this Event
+   */
+  @XmlElement(name = "execution-handler", required = false)
+  public void setExecutionHandler(JAXBExecutionHandler executionHandler)
+  {
+    this.executionHandler = executionHandler;
+  }
+
+  /**
+   * Get the FlowHandler for this Event
+   */
+  public JAXBFlowHandler getFlowHandler()
+  {
+    return flowHandler;
+  }
+
+  /**
+   * Set the FlowHandler for this Event
+   */
+  @XmlElement(name = "flow-handler", required = false)
+  public void setFlowHandler(JAXBFlowHandler flowHandler)
+  {
+    this.flowHandler = flowHandler;
+  }
+
+  /**
+   * Get the SignalHandler for this Event
+   */
+  public JAXBSignalHandler getSignalHandler()
+  {
+    return signalHandler;
+  }
+
+  /**
+   * Set the SignalHandler for this Event
+   */
+  @XmlElement(name = "signal-handler", required = false)
+  public void setSignalHandler(JAXBSignalHandler signalHandler)
+  {
+    this.signalHandler = signalHandler;
+  }
+}
\ No newline at end of file

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBExclusiveGateway.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBExclusiveGateway.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBExclusiveGateway.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,38 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-//$Id$
-
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * A point in the workflow process where, based on a decision or workflow control data, one of several branches is chosen. 
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name="ExclusiveGateway")
-public class JAXBExclusiveGateway extends JAXBGateway
-{
-}
\ No newline at end of file

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBExclusiveGateway.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBExclusiveGateway.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBExclusiveGateway.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBExclusiveGateway.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+//$Id$
+
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * A point in the workflow process where, based on a decision or workflow control data, one of several branches is chosen. 
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name="ExclusiveGateway")
+public class JAXBExclusiveGateway extends JAXBGateway
+{
+}
\ No newline at end of file

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBExecutionHandler.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBExecutionHandler.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBExecutionHandler.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,38 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-//$Id$
-
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * Implement to make the FlowObject executable
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name = "ExecutionHandler")
-public class JAXBExecutionHandler extends JAXBHandler
-{
-}
\ No newline at end of file

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBExecutionHandler.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBExecutionHandler.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBExecutionHandler.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBExecutionHandler.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+//$Id$
+
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Implement to make the FlowObject executable
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name = "ExecutionHandler")
+public class JAXBExecutionHandler extends JAXBHandler
+{
+}
\ No newline at end of file

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlow.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlow.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlow.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,68 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlType;
-
-// $Id$
-
-/**
- * A Flow is a graphical line connecting two objects in a BPD.
- * 
- * There are two types of Flow: Sequence Flow and Message Flow, each with their own line style. Flow is also used in a generic sense (and lowercase) to describe how
- * Tokens will traverse Sequence Flow from the Start Event to an End Event.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name = "Flow")
-public class JAXBFlow
-{
-  private String name;
-  private String targetName;
-
-  public String getName()
-  {
-    return name;
-  }
-
-  @XmlAttribute(required = false)
-  public void setName(String name)
-  {
-    this.name = name;
-  }
-
-  public String getTargetName()
-  {
-    return targetName;
-  }
-
-  /**
-   * Set the target name Note, this MUST NOT leak into the public API.
-   */
-  @XmlAttribute(name = "to", required = true)
-  public void setTargetName(String targetName)
-  {
-    this.targetName = targetName;
-  }
-}
\ No newline at end of file

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlow.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlow.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlow.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlow.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,68 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+// $Id$
+
+/**
+ * A Flow is a graphical line connecting two objects in a BPD.
+ * 
+ * There are two types of Flow: Sequence Flow and Message Flow, each with their own line style. Flow is also used in a generic sense (and lowercase) to describe how
+ * Tokens will traverse Sequence Flow from the Start Event to an End Event.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name = "Flow")
+public class JAXBFlow
+{
+  private String name;
+  private String targetName;
+
+  public String getName()
+  {
+    return name;
+  }
+
+  @XmlAttribute(required = false)
+  public void setName(String name)
+  {
+    this.name = name;
+  }
+
+  public String getTargetName()
+  {
+    return targetName;
+  }
+
+  /**
+   * Set the target name Note, this MUST NOT leak into the public API.
+   */
+  @XmlAttribute(name = "to", required = true)
+  public void setTargetName(String targetName)
+  {
+    this.targetName = targetName;
+  }
+}
\ No newline at end of file

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlowHandler.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlowHandler.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlowHandler.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,38 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-//$Id$
-
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * Implement to handle the outgoing Flows for an FlowObject
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name = "FlowHandler")
-public class JAXBFlowHandler extends JAXBHandler
-{
-}
\ No newline at end of file

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlowHandler.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlowHandler.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlowHandler.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlowHandler.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+//$Id$
+
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Implement to handle the outgoing Flows for an FlowObject
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name = "FlowHandler")
+public class JAXBFlowHandler extends JAXBHandler
+{
+}
\ No newline at end of file

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlowObject.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlowObject.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlowObject.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,38 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-//$Id: $
-
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * A Flow Object is one of the set of following graphical objects: Event, Activity, and Gateway.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name = "FlowObject")
-public class JAXBFlowObject
-{
-}
\ No newline at end of file

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlowObject.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlowObject.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlowObject.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBFlowObject.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+//$Id: $
+
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * A Flow Object is one of the set of following graphical objects: Event, Activity, and Gateway.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name = "FlowObject")
+public class JAXBFlowObject
+{
+}
\ No newline at end of file

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBGateway.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBGateway.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBGateway.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,130 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-//$Id$
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElements;
-import javax.xml.bind.annotation.XmlType;
-
-/**
- * Gateways are modelling elements that are used to control how Sequence Flow interact as they converge and diverge within a Process. If the flow does not need to be
- * controlled, then a Gateway is not needed.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name = "Gateway")
-public class JAXBGateway extends JAXBFlowObject
-{
-  private String name;
-  private JAXBExecutionHandler executionHandler;
-  private JAXBFlowHandler flowHandler;
-  private JAXBSignalHandler signalHandler;
-  
-  @XmlElements( { 
-    @XmlElement(name = "sequence", type = JAXBSequenceFlow.class), 
-    @XmlElement(name = "message", type = JAXBMessageFlow.class) 
-    })
-  private List<JAXBFlow> outFlows = new ArrayList<JAXBFlow>();
-  
-  public String getName()
-  {
-    return name;
-  }
-
-  /**
-   * Set the name. 
-   * Note, this MUST NOT leak into the public API.
-   */
-  @XmlAttribute(required = true)
-  public void setName(String name)
-  {
-    this.name = name;
-  }
-  
-  public List<JAXBFlow> getOutFlows()
-  {
-    return outFlows;
-  }
-
-  public void setOutFlow(List<JAXBFlow> outFlow)
-  {
-    this.outFlows = outFlow;
-  }
-
-  /**
-   * Get the ExecutionHandler for this Event
-   */
-  public JAXBExecutionHandler getExecutionHandler()
-  {
-    return executionHandler;
-  }
-
-  /**
-   * Set the ExecutionHandler for this Event
-   */
-  @XmlElement(name = "execution-handler", required = false)
-  public void setExecutionHandler(JAXBExecutionHandler executionHandler)
-  {
-    this.executionHandler = executionHandler;
-  }
-
-  /**
-   * Get the FlowHandler for this Event
-   */
-  public JAXBFlowHandler getFlowHandler()
-  {
-    return flowHandler;
-  }
-
-  /**
-   * Set the FlowHandler for this Event
-   */
-  @XmlElement(name = "flow-handler", required = false)
-  public void setFlowHandler(JAXBFlowHandler flowHandler)
-  {
-    this.flowHandler = flowHandler;
-  }
-
-  /**
-   * Get the SignalHandler for this Event
-   */
-  public JAXBSignalHandler getSignalHandler()
-  {
-    return signalHandler;
-  }
-
-  /**
-   * Set the SignalHandler for this Event
-   */
-  @XmlElement(name = "signal-handler", required = false)
-  public void setSignalHandler(JAXBSignalHandler signalHandler)
-  {
-    this.signalHandler = signalHandler;
-  }
-}
\ No newline at end of file

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBGateway.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBGateway.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBGateway.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBGateway.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,130 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+//$Id$
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * Gateways are modelling elements that are used to control how Sequence Flow interact as they converge and diverge within a Process. If the flow does not need to be
+ * controlled, then a Gateway is not needed.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name = "Gateway")
+public class JAXBGateway extends JAXBFlowObject
+{
+  private String name;
+  private JAXBExecutionHandler executionHandler;
+  private JAXBFlowHandler flowHandler;
+  private JAXBSignalHandler signalHandler;
+  
+  @XmlElements( { 
+    @XmlElement(name = "sequence", type = JAXBSequenceFlow.class), 
+    @XmlElement(name = "message", type = JAXBMessageFlow.class) 
+    })
+  private List<JAXBFlow> outFlows = new ArrayList<JAXBFlow>();
+  
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * Set the name. 
+   * Note, this MUST NOT leak into the public API.
+   */
+  @XmlAttribute(required = true)
+  public void setName(String name)
+  {
+    this.name = name;
+  }
+  
+  public List<JAXBFlow> getOutFlows()
+  {
+    return outFlows;
+  }
+
+  public void setOutFlow(List<JAXBFlow> outFlow)
+  {
+    this.outFlows = outFlow;
+  }
+
+  /**
+   * Get the ExecutionHandler for this Event
+   */
+  public JAXBExecutionHandler getExecutionHandler()
+  {
+    return executionHandler;
+  }
+
+  /**
+   * Set the ExecutionHandler for this Event
+   */
+  @XmlElement(name = "execution-handler", required = false)
+  public void setExecutionHandler(JAXBExecutionHandler executionHandler)
+  {
+    this.executionHandler = executionHandler;
+  }
+
+  /**
+   * Get the FlowHandler for this Event
+   */
+  public JAXBFlowHandler getFlowHandler()
+  {
+    return flowHandler;
+  }
+
+  /**
+   * Set the FlowHandler for this Event
+   */
+  @XmlElement(name = "flow-handler", required = false)
+  public void setFlowHandler(JAXBFlowHandler flowHandler)
+  {
+    this.flowHandler = flowHandler;
+  }
+
+  /**
+   * Get the SignalHandler for this Event
+   */
+  public JAXBSignalHandler getSignalHandler()
+  {
+    return signalHandler;
+  }
+
+  /**
+   * Set the SignalHandler for this Event
+   */
+  @XmlElement(name = "signal-handler", required = false)
+  public void setSignalHandler(JAXBSignalHandler signalHandler)
+  {
+    this.signalHandler = signalHandler;
+  }
+}
\ No newline at end of file

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBHandler.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBHandler.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBHandler.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,62 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-//$Id$
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlType;
-
-/**
- * Implement to handle the outgoing Flows for an FlowObject
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name = "Handler")
-public abstract class JAXBHandler
-{
-  private String className;
-  private String beanRef;
-
-  public String getClassName()
-  {
-    return className;
-  }
-
-  @XmlAttribute(name = "class", required = false)
-  public void setClassName(String className)
-  {
-    this.className = className;
-  }
-
-  public String getBeanRef()
-  {
-    return beanRef;
-  }
-
-  @XmlAttribute(name = "bean", required = false)
-  public void setBeanRef(String beanRef)
-  {
-    this.beanRef = beanRef;
-  }
-}
\ No newline at end of file

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBHandler.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBHandler.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBHandler.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBHandler.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,62 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+//$Id$
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * Implement to handle the outgoing Flows for an FlowObject
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name = "Handler")
+public abstract class JAXBHandler
+{
+  private String className;
+  private String beanRef;
+
+  public String getClassName()
+  {
+    return className;
+  }
+
+  @XmlAttribute(name = "class", required = false)
+  public void setClassName(String className)
+  {
+    this.className = className;
+  }
+
+  public String getBeanRef()
+  {
+    return beanRef;
+  }
+
+  @XmlAttribute(name = "bean", required = false)
+  public void setBeanRef(String beanRef)
+  {
+    this.beanRef = beanRef;
+  }
+}
\ No newline at end of file

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBInclusiveGateway.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBInclusiveGateway.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBInclusiveGateway.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,40 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-import javax.xml.bind.annotation.XmlType;
-
-
-// $Id$
-
-/**
- * This Decision represents a branching point where Alternatives are based on conditional expressions contained within outgoing Sequence Flow. 
- * However, in this case, the True evaluation of one condition expression does not exclude the evaluation of other condition expressions. 
- * All Sequence Flow with a True evaluation will be traversed by a Token. 
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name="InclusiveGateway")
-public class JAXBInclusiveGateway extends JAXBGateway
-{
-}
\ No newline at end of file

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBInclusiveGateway.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBInclusiveGateway.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBInclusiveGateway.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBInclusiveGateway.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+import javax.xml.bind.annotation.XmlType;
+
+
+// $Id$
+
+/**
+ * This Decision represents a branching point where Alternatives are based on conditional expressions contained within outgoing Sequence Flow. 
+ * However, in this case, the True evaluation of one condition expression does not exclude the evaluation of other condition expressions. 
+ * All Sequence Flow with a True evaluation will be traversed by a Token. 
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name="InclusiveGateway")
+public class JAXBInclusiveGateway extends JAXBGateway
+{
+}
\ No newline at end of file

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBIntermediateEvent.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBIntermediateEvent.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBIntermediateEvent.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,82 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElements;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-
-
-// $Id$
-
-/**
- * An Intermediate Event is an Event that occurs after a Process has been started. 
- * 
- * It will affect the Flow of the Process, but will not start or (directly) terminate the Process. 
- * An Intermediate Event will show where messages or delays are expected within the Process, 
- * disrupt the Normal Flow through exception handling, or show the extra flow required for compensating a transaction.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name="ItermediateEvent")
-public class JAXBIntermediateEvent extends JAXBEvent
-{
-  private String name;
-  
-  @XmlElements( { 
-    @XmlElement(name = "sequence", type = JAXBSequenceFlow.class), 
-    @XmlElement(name = "message", type = JAXBMessageFlow.class) 
-    })
-  private JAXBFlow outFlow;
-  
-  public String getName()
-  {
-    return name;
-  }
-
-  /**
-   * Set the name. 
-   * Note, this MUST NOT leak into the public API.
-   */
-  @XmlAttribute(required = true)
-  public void setName(String name)
-  {
-    if (this.name != null)
-      throw new IllegalStateException("Cannot rename: " + name);
-
-    this.name = name;
-  }
-  
-  public JAXBFlow getOutFlow()
-  {
-    return outFlow;
-  }
-
-  @XmlTransient
-  public void setOutFlow(JAXBFlow outFlow)
-  {
-    this.outFlow = outFlow;
-  }
-}
\ No newline at end of file

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBIntermediateEvent.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBIntermediateEvent.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBIntermediateEvent.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBIntermediateEvent.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,82 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.XmlType;
+
+
+// $Id$
+
+/**
+ * An Intermediate Event is an Event that occurs after a Process has been started. 
+ * 
+ * It will affect the Flow of the Process, but will not start or (directly) terminate the Process. 
+ * An Intermediate Event will show where messages or delays are expected within the Process, 
+ * disrupt the Normal Flow through exception handling, or show the extra flow required for compensating a transaction.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name="ItermediateEvent")
+public class JAXBIntermediateEvent extends JAXBEvent
+{
+  private String name;
+  
+  @XmlElements( { 
+    @XmlElement(name = "sequence", type = JAXBSequenceFlow.class), 
+    @XmlElement(name = "message", type = JAXBMessageFlow.class) 
+    })
+  private JAXBFlow outFlow;
+  
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * Set the name. 
+   * Note, this MUST NOT leak into the public API.
+   */
+  @XmlAttribute(required = true)
+  public void setName(String name)
+  {
+    if (this.name != null)
+      throw new IllegalStateException("Cannot rename: " + name);
+
+    this.name = name;
+  }
+  
+  public JAXBFlow getOutFlow()
+  {
+    return outFlow;
+  }
+
+  @XmlTransient
+  public void setOutFlow(JAXBFlow outFlow)
+  {
+    this.outFlow = outFlow;
+  }
+}
\ No newline at end of file

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBMessageFlow.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBMessageFlow.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBMessageFlow.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,39 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-//$Id$
-
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * A Sequence Flow is a solid graphical line that is used to show the order that Activities will be performed in a Process. 
- * Each Flow has only one source and only one target. 
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name="MessageFlow")
-public class JAXBMessageFlow extends JAXBFlow
-{
-}
\ No newline at end of file

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBMessageFlow.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBMessageFlow.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBMessageFlow.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBMessageFlow.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+//$Id$
+
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * A Sequence Flow is a solid graphical line that is used to show the order that Activities will be performed in a Process. 
+ * Each Flow has only one source and only one target. 
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name="MessageFlow")
+public class JAXBMessageFlow extends JAXBFlow
+{
+}
\ No newline at end of file

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBParallelGateway.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBParallelGateway.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBParallelGateway.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,38 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-import javax.xml.bind.annotation.XmlType;
-
-
-// $Id$
-
-/**
- * Parallel Gateway is required when two or more Activities need to be executed in parallel.  
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name="ParallelGateway")
-public class JAXBParallelGateway extends JAXBGateway
-{
-}
\ No newline at end of file

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBParallelGateway.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBParallelGateway.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBParallelGateway.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBParallelGateway.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+import javax.xml.bind.annotation.XmlType;
+
+
+// $Id$
+
+/**
+ * Parallel Gateway is required when two or more Activities need to be executed in parallel.  
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name="ParallelGateway")
+public class JAXBParallelGateway extends JAXBGateway
+{
+}
\ No newline at end of file

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBProcess.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBProcess.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBProcess.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,64 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-//$Id$
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElements;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-/**
- * A Process is any Activity performed within a company or organization.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name = "Process")
- at XmlRootElement(name = "process")
-public class JAXBProcess extends JAXBActivity
-{
-  @XmlElements( { 
-    @XmlElement(name = "start", type = JAXBStartEvent.class), 
-    @XmlElement(name = "event", type = JAXBIntermediateEvent.class), 
-    @XmlElement(name = "task", type = JAXBTask.class),
-    @XmlElement(name = "exclusive-gateway", type = JAXBExclusiveGateway.class),
-    @XmlElement(name = "inclusive-gateway", type = JAXBInclusiveGateway.class),
-    @XmlElement(name = "complex-gateway", type = JAXBComplexGateway.class),
-    @XmlElement(name = "parallel-gateway", type = JAXBParallelGateway.class),
-    @XmlElement(name = "sub-process", type = JAXBSubProcess.class), 
-    @XmlElement(name = "end", type = JAXBEndEvent.class) 
-    })
-  private List<JAXBFlowObject> flowObjects = new ArrayList<JAXBFlowObject>();
-
-  /**
-   * Get the list of flow objects
-   */
-  public List<JAXBFlowObject> getFlowObjects()
-  {
-    return flowObjects;
-  }
-}
\ No newline at end of file

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBProcess.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBProcess.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBProcess.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBProcess.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,64 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+//$Id$
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * A Process is any Activity performed within a company or organization.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name = "Process")
+ at XmlRootElement(name = "process")
+public class JAXBProcess extends JAXBActivity
+{
+  @XmlElements( { 
+    @XmlElement(name = "start", type = JAXBStartEvent.class), 
+    @XmlElement(name = "event", type = JAXBIntermediateEvent.class), 
+    @XmlElement(name = "task", type = JAXBTask.class),
+    @XmlElement(name = "exclusive-gateway", type = JAXBExclusiveGateway.class),
+    @XmlElement(name = "inclusive-gateway", type = JAXBInclusiveGateway.class),
+    @XmlElement(name = "complex-gateway", type = JAXBComplexGateway.class),
+    @XmlElement(name = "parallel-gateway", type = JAXBParallelGateway.class),
+    @XmlElement(name = "sub-process", type = JAXBSubProcess.class), 
+    @XmlElement(name = "end", type = JAXBEndEvent.class) 
+    })
+  private List<JAXBFlowObject> flowObjects = new ArrayList<JAXBFlowObject>();
+
+  /**
+   * Get the list of flow objects
+   */
+  public List<JAXBFlowObject> getFlowObjects()
+  {
+    return flowObjects;
+  }
+}
\ No newline at end of file

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSequenceFlow.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSequenceFlow.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSequenceFlow.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,39 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-//$Id$
-
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * A Sequence Flow is a solid graphical line that is used to show the order that Activities will be performed in a Process. 
- * Each Flow has only one source and only one target. 
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name="SequenceFlow")
-public class JAXBSequenceFlow extends JAXBFlow
-{
-}
\ No newline at end of file

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSequenceFlow.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSequenceFlow.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSequenceFlow.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSequenceFlow.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+//$Id$
+
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * A Sequence Flow is a solid graphical line that is used to show the order that Activities will be performed in a Process. 
+ * Each Flow has only one source and only one target. 
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name="SequenceFlow")
+public class JAXBSequenceFlow extends JAXBFlow
+{
+}
\ No newline at end of file

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSignalHandler.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSignalHandler.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSignalHandler.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,39 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-import javax.xml.bind.annotation.XmlType;
-
-
-
-//$Id$
-
-/**
- * Implement to get signals on enter and exit.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name = "SignalHandler")
-public class JAXBSignalHandler extends JAXBHandler
-{
-}

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSignalHandler.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSignalHandler.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSignalHandler.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSignalHandler.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+import javax.xml.bind.annotation.XmlType;
+
+
+
+//$Id$
+
+/**
+ * Implement to get signals on enter and exit.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name = "SignalHandler")
+public class JAXBSignalHandler extends JAXBHandler
+{
+}

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBStartEvent.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBStartEvent.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBStartEvent.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,56 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-//$Id$
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElements;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-
-/**
- * A Start Event indicates where a particular Process will start. In terms of Sequence Flow, the Start Event starts the Flow of the Process, and thus, will not have any
- * incoming Sequence Flow. A Start Event can have a Trigger that indicates how the Process starts: Message, Timer, Rule, Link, or Multiple.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name = "AbstractStartEvent")
-public class JAXBStartEvent extends JAXBEvent
-{
-  @XmlElements( { 
-    @XmlElement(name = "sequence", type = JAXBSequenceFlow.class), 
-    @XmlElement(name = "message", type = JAXBMessageFlow.class) })
-  private JAXBFlow outFlow;
-
-  public JAXBFlow getOutFlow()
-  {
-    return outFlow;
-  }
-
-  @XmlTransient
-  public void setOutFlow(JAXBFlow outFlow)
-  {
-    this.outFlow = outFlow;
-  }
-}
\ No newline at end of file

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBStartEvent.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBStartEvent.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBStartEvent.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBStartEvent.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,56 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+//$Id$
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * A Start Event indicates where a particular Process will start. In terms of Sequence Flow, the Start Event starts the Flow of the Process, and thus, will not have any
+ * incoming Sequence Flow. A Start Event can have a Trigger that indicates how the Process starts: Message, Timer, Rule, Link, or Multiple.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name = "AbstractStartEvent")
+public class JAXBStartEvent extends JAXBEvent
+{
+  @XmlElements( { 
+    @XmlElement(name = "sequence", type = JAXBSequenceFlow.class), 
+    @XmlElement(name = "message", type = JAXBMessageFlow.class) })
+  private JAXBFlow outFlow;
+
+  public JAXBFlow getOutFlow()
+  {
+    return outFlow;
+  }
+
+  @XmlTransient
+  public void setOutFlow(JAXBFlow outFlow)
+  {
+    this.outFlow = outFlow;
+  }
+}
\ No newline at end of file

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSubProcess.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSubProcess.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSubProcess.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,110 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-//$Id$
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElements;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-
-/**
- * A Sub-Process is Process that is included within another Process.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name = "SubProcess")
-public class JAXBSubProcess extends JAXBProcess
-{
-  private JAXBExecutionHandler executionHandler;
-  private JAXBFlowHandler flowHandler;
-  private JAXBSignalHandler signalHandler;
-
-  @XmlElements( { 
-    @XmlElement(name = "sequence", type = JAXBSequenceFlow.class), 
-    @XmlElement(name = "message", type = JAXBMessageFlow.class) })
-  private JAXBFlow outFlow;
-
-  public JAXBFlow getOutFlow()
-  {
-    return outFlow;
-  }
-
-  @XmlTransient
-  public void setOutFlow(JAXBFlow outFlow)
-  {
-    this.outFlow = outFlow;
-  }
-
-  /**
-   * Get the ExecutionHandler for this Event
-   */
-  public JAXBExecutionHandler getExecutionHandler()
-  {
-    return executionHandler;
-  }
-
-  /**
-   * Set the ExecutionHandler for this Event
-   */
-  @XmlElement(name = "execution-handler", required = false)
-  public void setExecutionHandler(JAXBExecutionHandler executionHandler)
-  {
-    this.executionHandler = executionHandler;
-  }
-
-  /**
-   * Get the FlowHandler for this Event
-   */
-  public JAXBFlowHandler getFlowHandler()
-  {
-    return flowHandler;
-  }
-
-  /**
-   * Set the FlowHandler for this Event
-   */
-  @XmlElement(name = "flow-handler", required = false)
-  public void setFlowHandler(JAXBFlowHandler flowHandler)
-  {
-    this.flowHandler = flowHandler;
-  }
-
-  /**
-   * Get the SignalHandler for this Event
-   */
-  public JAXBSignalHandler getSignalHandler()
-  {
-    return signalHandler;
-  }
-
-  /**
-   * Set the SignalHandler for this Event
-   */
-  @XmlElement(name = "signal-handler", required = false)
-  public void setSignalHandler(JAXBSignalHandler signalHandler)
-  {
-    this.signalHandler = signalHandler;
-  }
-}
\ No newline at end of file

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSubProcess.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSubProcess.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSubProcess.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBSubProcess.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,110 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+//$Id$
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * A Sub-Process is Process that is included within another Process.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name = "SubProcess")
+public class JAXBSubProcess extends JAXBProcess
+{
+  private JAXBExecutionHandler executionHandler;
+  private JAXBFlowHandler flowHandler;
+  private JAXBSignalHandler signalHandler;
+
+  @XmlElements( { 
+    @XmlElement(name = "sequence", type = JAXBSequenceFlow.class), 
+    @XmlElement(name = "message", type = JAXBMessageFlow.class) })
+  private JAXBFlow outFlow;
+
+  public JAXBFlow getOutFlow()
+  {
+    return outFlow;
+  }
+
+  @XmlTransient
+  public void setOutFlow(JAXBFlow outFlow)
+  {
+    this.outFlow = outFlow;
+  }
+
+  /**
+   * Get the ExecutionHandler for this Event
+   */
+  public JAXBExecutionHandler getExecutionHandler()
+  {
+    return executionHandler;
+  }
+
+  /**
+   * Set the ExecutionHandler for this Event
+   */
+  @XmlElement(name = "execution-handler", required = false)
+  public void setExecutionHandler(JAXBExecutionHandler executionHandler)
+  {
+    this.executionHandler = executionHandler;
+  }
+
+  /**
+   * Get the FlowHandler for this Event
+   */
+  public JAXBFlowHandler getFlowHandler()
+  {
+    return flowHandler;
+  }
+
+  /**
+   * Set the FlowHandler for this Event
+   */
+  @XmlElement(name = "flow-handler", required = false)
+  public void setFlowHandler(JAXBFlowHandler flowHandler)
+  {
+    this.flowHandler = flowHandler;
+  }
+
+  /**
+   * Get the SignalHandler for this Event
+   */
+  public JAXBSignalHandler getSignalHandler()
+  {
+    return signalHandler;
+  }
+
+  /**
+   * Set the SignalHandler for this Event
+   */
+  @XmlElement(name = "signal-handler", required = false)
+  public void setSignalHandler(JAXBSignalHandler signalHandler)
+  {
+    this.signalHandler = signalHandler;
+  }
+}
\ No newline at end of file

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBTask.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBTask.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBTask.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,113 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model.internal.jaxb;
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElements;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-
-//$Id$
-
-/**
- * A Task is an Atomic Activity that is included within a Process.
- * 
- * A Task is used when the work in the Process is not broken down to a finer level of Process Model detail. Generally, an end-user and/or an application are used to
- * perform the Task when it is executed.
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
- at XmlType(name = "Task")
-public class JAXBTask extends JAXBActivity
-{
-  private JAXBExecutionHandler executionHandler;
-  private JAXBFlowHandler flowHandler;
-  private JAXBSignalHandler signalHandler;
-  
-  @XmlElements( { 
-    @XmlElement(name = "sequence", type = JAXBSequenceFlow.class), 
-    @XmlElement(name = "message", type = JAXBMessageFlow.class) })
-  private JAXBFlow outFlow;
-
-  public JAXBFlow getOutFlow()
-  {
-    return outFlow;
-  }
-
-  @XmlTransient
-  public void setOutFlow(JAXBFlow outFlow)
-  {
-    this.outFlow = outFlow;
-  }
-
-  /**
-   * Get the ExecutionHandler for this Event
-   */
-  public JAXBExecutionHandler getExecutionHandler()
-  {
-    return executionHandler;
-  }
-
-  /**
-   * Set the ExecutionHandler for this Event
-   */
-  @XmlElement(name = "execution-handler", required = false)
-  public void setExecutionHandler(JAXBExecutionHandler executionHandler)
-  {
-    this.executionHandler = executionHandler;
-  }
-
-  /**
-   * Get the FlowHandler for this Event
-   */
-  public JAXBFlowHandler getFlowHandler()
-  {
-    return flowHandler;
-  }
-
-  /**
-   * Set the FlowHandler for this Event
-   */
-  @XmlElement(name = "flow-handler", required = false)
-  public void setFlowHandler(JAXBFlowHandler flowHandler)
-  {
-    this.flowHandler = flowHandler;
-  }
-
-  /**
-   * Get the SignalHandler for this Event
-   */
-  public JAXBSignalHandler getSignalHandler()
-  {
-    return signalHandler;
-  }
-
-  /**
-   * Set the SignalHandler for this Event
-   */
-  @XmlElement(name = "signal-handler", required = false)
-  public void setSignalHandler(JAXBSignalHandler signalHandler)
-  {
-    this.signalHandler = signalHandler;
-  }
-}
\ No newline at end of file

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBTask.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBTask.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBTask.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/JAXBTask.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,113 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model.internal.jaxb;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.XmlType;
+
+//$Id$
+
+/**
+ * A Task is an Atomic Activity that is included within a Process.
+ * 
+ * A Task is used when the work in the Process is not broken down to a finer level of Process Model detail. Generally, an end-user and/or an application are used to
+ * perform the Task when it is executed.
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+ at XmlType(name = "Task")
+public class JAXBTask extends JAXBActivity
+{
+  private JAXBExecutionHandler executionHandler;
+  private JAXBFlowHandler flowHandler;
+  private JAXBSignalHandler signalHandler;
+  
+  @XmlElements( { 
+    @XmlElement(name = "sequence", type = JAXBSequenceFlow.class), 
+    @XmlElement(name = "message", type = JAXBMessageFlow.class) })
+  private JAXBFlow outFlow;
+
+  public JAXBFlow getOutFlow()
+  {
+    return outFlow;
+  }
+
+  @XmlTransient
+  public void setOutFlow(JAXBFlow outFlow)
+  {
+    this.outFlow = outFlow;
+  }
+
+  /**
+   * Get the ExecutionHandler for this Event
+   */
+  public JAXBExecutionHandler getExecutionHandler()
+  {
+    return executionHandler;
+  }
+
+  /**
+   * Set the ExecutionHandler for this Event
+   */
+  @XmlElement(name = "execution-handler", required = false)
+  public void setExecutionHandler(JAXBExecutionHandler executionHandler)
+  {
+    this.executionHandler = executionHandler;
+  }
+
+  /**
+   * Get the FlowHandler for this Event
+   */
+  public JAXBFlowHandler getFlowHandler()
+  {
+    return flowHandler;
+  }
+
+  /**
+   * Set the FlowHandler for this Event
+   */
+  @XmlElement(name = "flow-handler", required = false)
+  public void setFlowHandler(JAXBFlowHandler flowHandler)
+  {
+    this.flowHandler = flowHandler;
+  }
+
+  /**
+   * Get the SignalHandler for this Event
+   */
+  public JAXBSignalHandler getSignalHandler()
+  {
+    return signalHandler;
+  }
+
+  /**
+   * Set the SignalHandler for this Event
+   */
+  @XmlElement(name = "signal-handler", required = false)
+  public void setSignalHandler(JAXBSignalHandler signalHandler)
+  {
+    this.signalHandler = signalHandler;
+  }
+}
\ No newline at end of file

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/ObjectFactory.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/ObjectFactory.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/ObjectFactory.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,131 +0,0 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.1.3 in JDK 1.6 
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
-// Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2008.07.11 at 09:21:08 AM CEST 
-//
-
-package org.jboss.bpm.model.internal.jaxb;
-
-import javax.xml.bind.annotation.XmlRegistry;
-
-
-/**
- * This object contains factory methods for each Java content interface and Java element interface generated in the api.bpm.jboss.org package.
- * <p>
- * An ObjectFactory allows you to programatically construct new instances of the Java representation for XML content. The Java representation of XML content can consist
- * of schema derived interfaces and classes representing the binding of schema type definitions, element declarations and model groups. Factory methods for each of
- * these are provided in this class.
- * 
- */
- at XmlRegistry
-public class ObjectFactory
-{
-  /**
-   * Create an instance of {@link ExclusiveGatewayImpl }
-   * 
-   */
-  public JAXBExclusiveGateway createExclusiveGateway()
-  {
-    return new JAXBExclusiveGateway();
-  }
-
-  /**
-   * Create an instance of {@link TaskImpl }
-   * 
-   */
-  public JAXBTask createTask()
-  {
-    return new JAXBTask();
-  }
-
-  /**
-   * Create an instance of {@link ProcessImpl }
-   * 
-   */
-  public JAXBProcess createProcess()
-  {
-    return new JAXBProcess();
-  }
-
-  /**
-   * Create an instance of {@link ParallelGatewayImpl }
-   * 
-   */
-  public JAXBParallelGateway createParallelGateway()
-  {
-    return new JAXBParallelGateway();
-  }
-
-  /**
-   * Create an instance of {@link MessageFlowImpl }
-   * 
-   */
-  public JAXBMessageFlow createMessageFlow()
-  {
-    return new JAXBMessageFlow();
-  }
-
-  /**
-   * Create an instance of {@link EndEventImpl }
-   * 
-   */
-  public JAXBEndEvent createEndEvent()
-  {
-    return new JAXBEndEvent();
-  }
-
-  /**
-   * Create an instance of {@link SubProcessImpl }
-   * 
-   */
-  public JAXBSubProcess createSubProcess()
-  {
-    return new JAXBSubProcess();
-  }
-
-  /**
-   * Create an instance of {@link SequenceFlowImpl }
-   * 
-   */
-  public JAXBSequenceFlow createSequenceFlow()
-  {
-    return new JAXBSequenceFlow();
-  }
-
-  /**
-   * Create an instance of {@link ComplexGatewayImpl }
-   * 
-   */
-  public JAXBComplexGateway createComplexGateway()
-  {
-    return new JAXBComplexGateway();
-  }
-
-  /**
-   * Create an instance of {@link InclusiveGatewayImpl }
-   * 
-   */
-  public JAXBInclusiveGateway createInclusiveGateway()
-  {
-    return new JAXBInclusiveGateway();
-  }
-
-  /**
-   * Create an instance of {@link IntermediateEventImpl }
-   * 
-   */
-  public JAXBIntermediateEvent createItermediateEvent()
-  {
-    return new JAXBIntermediateEvent();
-  }
-
-  /**
-   * Create an instance of {@link StartEventImpl }
-   * 
-   */
-  public JAXBStartEvent createStartEvent()
-  {
-    return new JAXBStartEvent();
-  }
-}

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/ObjectFactory.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/ObjectFactory.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/ObjectFactory.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/ObjectFactory.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,131 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.1.3 in JDK 1.6 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2008.07.11 at 09:21:08 AM CEST 
+//
+
+package org.jboss.bpm.model.internal.jaxb;
+
+import javax.xml.bind.annotation.XmlRegistry;
+
+
+/**
+ * This object contains factory methods for each Java content interface and Java element interface generated in the api.bpm.jboss.org package.
+ * <p>
+ * An ObjectFactory allows you to programatically construct new instances of the Java representation for XML content. The Java representation of XML content can consist
+ * of schema derived interfaces and classes representing the binding of schema type definitions, element declarations and model groups. Factory methods for each of
+ * these are provided in this class.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory
+{
+  /**
+   * Create an instance of {@link ExclusiveGatewayImpl }
+   * 
+   */
+  public JAXBExclusiveGateway createExclusiveGateway()
+  {
+    return new JAXBExclusiveGateway();
+  }
+
+  /**
+   * Create an instance of {@link TaskImpl }
+   * 
+   */
+  public JAXBTask createTask()
+  {
+    return new JAXBTask();
+  }
+
+  /**
+   * Create an instance of {@link ProcessImpl }
+   * 
+   */
+  public JAXBProcess createProcess()
+  {
+    return new JAXBProcess();
+  }
+
+  /**
+   * Create an instance of {@link ParallelGatewayImpl }
+   * 
+   */
+  public JAXBParallelGateway createParallelGateway()
+  {
+    return new JAXBParallelGateway();
+  }
+
+  /**
+   * Create an instance of {@link MessageFlowImpl }
+   * 
+   */
+  public JAXBMessageFlow createMessageFlow()
+  {
+    return new JAXBMessageFlow();
+  }
+
+  /**
+   * Create an instance of {@link EndEventImpl }
+   * 
+   */
+  public JAXBEndEvent createEndEvent()
+  {
+    return new JAXBEndEvent();
+  }
+
+  /**
+   * Create an instance of {@link SubProcessImpl }
+   * 
+   */
+  public JAXBSubProcess createSubProcess()
+  {
+    return new JAXBSubProcess();
+  }
+
+  /**
+   * Create an instance of {@link SequenceFlowImpl }
+   * 
+   */
+  public JAXBSequenceFlow createSequenceFlow()
+  {
+    return new JAXBSequenceFlow();
+  }
+
+  /**
+   * Create an instance of {@link ComplexGatewayImpl }
+   * 
+   */
+  public JAXBComplexGateway createComplexGateway()
+  {
+    return new JAXBComplexGateway();
+  }
+
+  /**
+   * Create an instance of {@link InclusiveGatewayImpl }
+   * 
+   */
+  public JAXBInclusiveGateway createInclusiveGateway()
+  {
+    return new JAXBInclusiveGateway();
+  }
+
+  /**
+   * Create an instance of {@link IntermediateEventImpl }
+   * 
+   */
+  public JAXBIntermediateEvent createItermediateEvent()
+  {
+    return new JAXBIntermediateEvent();
+  }
+
+  /**
+   * Create an instance of {@link StartEventImpl }
+   * 
+   */
+  public JAXBStartEvent createStartEvent()
+  {
+    return new JAXBStartEvent();
+  }
+}

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/package-info.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/package-info.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/package-info.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,26 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
- at XmlSchema(namespace="urn:api.bpm.jboss:jpdl-0.1")
-package org.jboss.bpm.model.internal.jaxb;
-
-import javax.xml.bind.annotation.XmlSchema;
-

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/package-info.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/model/internal/jaxb/package-info.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/package-info.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/model/internal/jaxb/package-info.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,26 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+ at XmlSchema(namespace="urn:api.bpm.jboss:jpdl-0.1")
+package org.jboss.bpm.model.internal.jaxb;
+
+import javax.xml.bind.annotation.XmlSchema;
+

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/util (from rev 1644, api/trunk/modules/api/src/main/java/org/jboss/bpm/util)

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/util/ProcessMarshaller.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/util/ProcessMarshaller.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/util/ProcessMarshaller.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,64 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.util;
-
-// $Id$
-
-import java.io.IOException;
-import java.io.Writer;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-
-import org.jboss.bpm.model.Process;
-import org.jboss.bpm.model.internal.jaxb.JAXBProcess;
-import org.jboss.bpm.model.internal.jaxb.ObjectFactory;
-import org.jboss.bpm.model.internal.ProcessImpl;
-
-/**
- * A JAXB marshaller for a Process
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public class ProcessMarshaller
-{
-  public void marshallProcess(Process proc, Writer out) throws JAXBException, IOException
-  {
-    JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
-    Marshaller marshaller = jaxbContext.createMarshaller();
-    marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
-    marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
-
-    JAXBProcess jaxbProc = ((ProcessImpl)proc).getDelegate();
-    marshaller.marshal(jaxbProc, out);
-    
-    // Add xmlns:xsi to the top level element and remove it from all others
-    //StringWriter strwr = new StringWriter();
-    //marshaller.marshal(proc, strwr);
-    //String str = strwr.toString();
-    //String xsi = " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"";
-    //str = new StringBuilder(str.replace(xsi, "")).insert(str.indexOf(">"), xsi).toString();
-    //out.write(str);
-  }
-}

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/util/ProcessMarshaller.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/util/ProcessMarshaller.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/util/ProcessMarshaller.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/util/ProcessMarshaller.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.util;
+
+// $Id$
+
+import java.io.IOException;
+import java.io.Writer;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+
+import org.jboss.bpm.model.internal.jaxb.JAXBProcess;
+import org.jboss.bpm.model.internal.jaxb.ObjectFactory;
+
+/**
+ * A JAXB marshaller for a Process
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public class ProcessMarshaller
+{
+  public void marshallProcess(JAXBProcess proc, Writer out) throws JAXBException, IOException
+  {
+    JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
+    Marshaller marshaller = jaxbContext.createMarshaller();
+    marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
+    marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
+
+    marshaller.marshal(proc, out);
+
+    // Add xmlns:xsi to the top level element and remove it from all others
+    // StringWriter strwr = new StringWriter();
+    // marshaller.marshal(proc, strwr);
+    // String str = strwr.toString();
+    // String xsi = " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"";
+    // str = new StringBuilder(str.replace(xsi, "")).insert(str.indexOf(">"), xsi).toString();
+    // out.write(str);
+  }
+}

Deleted: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/util/ProcessUnmarshaller.java
===================================================================
--- api/trunk/modules/api/src/main/java/org/jboss/bpm/util/ProcessUnmarshaller.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/util/ProcessUnmarshaller.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,55 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.util;
-
-// $Id$
-
-import java.io.Reader;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
-
-import org.jboss.bpm.model.internal.ProcessImpl;
-import org.jboss.bpm.model.internal.jaxb.JAXBProcess;
-import org.jboss.bpm.model.internal.jaxb.ObjectFactory;
-import org.jboss.bpm.model.Process;
-
-/**
- * A JAXB unmarshaller for a Process 
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public class ProcessUnmarshaller 
-{
-  public Process unmarshallProcess(Reader xml) throws JAXBException 
-  {
-    JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
-    Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
-    unmarshaller.setProperty("com.sun.xml.bind.ObjectFactory",new ObjectFactory());
-    JAXBProcess jaxbProc = (JAXBProcess)unmarshaller.unmarshal(xml);
-    ProcessImpl proc = new ProcessImpl(jaxbProc);
-    proc.initialize();
-    return proc;
-  }
-}

Copied: api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/util/ProcessUnmarshaller.java (from rev 1647, api/trunk/modules/api/src/main/java/org/jboss/bpm/util/ProcessUnmarshaller.java)
===================================================================
--- api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/util/ProcessUnmarshaller.java	                        (rev 0)
+++ api/branches/tdiesler/modules/dialects/jaxb/src/main/java/org/jboss/bpm/util/ProcessUnmarshaller.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,51 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.util;
+
+// $Id$
+
+import java.io.Reader;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
+
+import org.jboss.bpm.model.internal.jaxb.JAXBProcess;
+import org.jboss.bpm.model.internal.jaxb.ObjectFactory;
+
+/**
+ * A JAXB unmarshaller for a Process 
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public class ProcessUnmarshaller 
+{
+  public JAXBProcess unmarshallProcess(Reader xml) throws JAXBException 
+  {
+    JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
+    Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
+    unmarshaller.setProperty("com.sun.xml.bind.ObjectFactory",new ObjectFactory());
+    JAXBProcess proc = (JAXBProcess)unmarshaller.unmarshal(xml);
+    return proc;
+  }
+}

Copied: api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/MockEngineTestCase.java (from rev 1644, api/trunk/modules/api/src/test/java/org/jboss/bpm/MockEngineTestCase.java)
===================================================================
--- api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/MockEngineTestCase.java	                        (rev 0)
+++ api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/MockEngineTestCase.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,37 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm;
+
+//$Id$
+
+import org.jboss.bpm.test.AbstractAPITestCase;
+
+public abstract class MockEngineTestCase extends AbstractAPITestCase
+{
+
+  @Override
+  protected String getBeansConfig()
+  {
+    return "jbpm-mock-beans.xml";
+  }
+
+}

Copied: api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/client (from rev 1644, api/trunk/modules/api/src/test/java/org/jboss/bpm/client)

Deleted: api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/client/ProcessEngineLocatorTest.java
===================================================================
--- api/trunk/modules/api/src/test/java/org/jboss/bpm/client/ProcessEngineLocatorTest.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/client/ProcessEngineLocatorTest.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,36 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.client;
-
-// $Id$
-
-import org.jboss.bpm.MockEngineTestCase;
-
-public class ProcessEngineLocatorTest extends MockEngineTestCase
-{
-
-  public void testLocateProcessEngine() throws Exception
-  {
-    ProcessEngine engine = ProcessEngineLocator.locateProcessEngine();
-    assertNotNull(engine);
-  }
-}

Copied: api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/client/ProcessEngineLocatorTest.java (from rev 1647, api/trunk/modules/api/src/test/java/org/jboss/bpm/client/ProcessEngineLocatorTest.java)
===================================================================
--- api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/client/ProcessEngineLocatorTest.java	                        (rev 0)
+++ api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/client/ProcessEngineLocatorTest.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.client;
+
+// $Id$
+
+import org.jboss.bpm.MockEngineTestCase;
+
+public class ProcessEngineLocatorTest extends MockEngineTestCase
+{
+
+  public void testLocateProcessEngine() throws Exception
+  {
+    ProcessEngine engine = ProcessEngineLocator.locateProcessEngine();
+    assertNotNull(engine);
+  }
+}

Copied: api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/model (from rev 1644, api/trunk/modules/api/src/test/java/org/jboss/bpm/model)

Deleted: api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/model/ProcessIntegrityTest.java
===================================================================
--- api/trunk/modules/api/src/test/java/org/jboss/bpm/model/ProcessIntegrityTest.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/model/ProcessIntegrityTest.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,146 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model;
-
-// $Id$
-
-import java.util.List;
-
-import org.jboss.bpm.InvalidProcessException;
-import org.jboss.bpm.MockEngineTestCase;
-import org.jboss.bpm.client.ProcessManager;
-
-/**
- * Test the intergety of various process definitions
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public class ProcessIntegrityTest extends MockEngineTestCase
-{
-  public void testBasicSequence() throws Exception
-  {
-    String jpdl = 
-      "<ns2:process xmlns:ns2='urn:api.bpm.jboss:jpdl-0.1'>" +
-      "  <start>" +
-      "    <sequence to='taskA' />" +
-      "  </start>" +
-      "  <task name='taskA'>" +
-      "    <sequence to='end' />" +
-      "  </task>" +
-      "  <end name='end' />" +
-      "</ns2:process>";
-    
-    // Create a Process through the ProcessManager
-    ProcessManager pm = ProcessManager.locateProcessManager();
-    Process proc = pm.createProcess(jpdl);
-    assertEquals("AnonymousProcess#0", proc.getName());
-    
-    StartEvent start = proc.getStartEvent();
-    assertNotNull("Start expected", start);
-
-    FlowObject nfo = proc.findFlowObject("taskA");
-    assertNotNull("FlowObject expected", nfo);
-    assertTrue("Task expected", nfo instanceof Task);
-    
-    List<EndEvent> ends = proc.getEndEvents();
-    assertEquals(1, ends.size());
-  }
-  
-  public void testNoStartState() throws Exception
-  {
-    String jpdl = 
-      "<ns2:process xmlns:ns2='urn:api.bpm.jboss:jpdl-0.1'>" +
-      "  <task>" +
-      "    <sequence to='taskA' />" +
-      "  </task>" +
-      "  <task name='taskA'>" +
-      "    <sequence to='end' />" +
-      "  </task>" +
-      "  <end name='end' />" +
-      "</ns2:process>";
-
-    ProcessManager pm = ProcessManager.locateProcessManager();
-    try
-    {
-      pm.createProcess(jpdl);
-      fail("InvalidProcessException expected");
-    }
-    catch (InvalidProcessException ex)
-    {
-      assertTrue("Unexpected message: " + ex.getMessage(), ex.getMessage().indexOf("start event") > 0);
-    }
-  }
-  
-  public void testNoEndState() throws Exception
-  {
-    String jpdl = 
-      "<ns2:process xmlns:ns2='urn:api.bpm.jboss:jpdl-0.1'>" +
-      "  <start>" +
-      "    <sequence to='taskA' />" +
-      "  </start>" +
-      "  <task name='taskA'>" +
-      "    <sequence to='end' />" +
-      "  </task>" +
-      "  <task name='end' />" +
-      "</ns2:process>";
-
-    ProcessManager pm = ProcessManager.locateProcessManager();
-    try
-    {
-      pm.createProcess(jpdl);
-      fail("InvalidProcessException expected");
-    }
-    catch (InvalidProcessException ex)
-    {
-      assertTrue("Unexpected message: " + ex.getMessage(), ex.getMessage().indexOf("end event") > 0);
-    }
-  }
-  
-  public void testNodeNameUniqueness() throws Exception
-  {
-    String jpdl = 
-      "<ns2:process xmlns:ns2='urn:api.bpm.jboss:jpdl-0.1'>" +
-      "  <start>" +
-      "    <sequence to='taskA' />" +
-      "  </start>" +
-      "  <task name='taskA'>" +
-      "    <sequence to='end' />" +
-      "  </task>" +
-      "  <task name='taskA'>" +
-      "    <sequence to='end' />" +
-      "  </task>" +
-      "  <end name='end' />" +
-      "</ns2:process>";
-
-    ProcessManager pm = ProcessManager.locateProcessManager();
-    try
-    {
-      pm.createProcess(jpdl);
-      fail("InvalidProcessException expected");
-    }
-    catch (InvalidProcessException ex)
-    {
-      // expected;
-    }
-  }
-}

Copied: api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/model/ProcessIntegrityTest.java (from rev 1647, api/trunk/modules/api/src/test/java/org/jboss/bpm/model/ProcessIntegrityTest.java)
===================================================================
--- api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/model/ProcessIntegrityTest.java	                        (rev 0)
+++ api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/model/ProcessIntegrityTest.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,101 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.bpm.model;
+
+// $Id$
+
+import java.util.List;
+
+import org.jboss.bpm.InvalidProcessException;
+import org.jboss.bpm.MockEngineTestCase;
+
+/**
+ * Test the intergety of various process definitions
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public class ProcessIntegrityTest extends MockEngineTestCase
+{
+  public void testAnonymousProcess() throws Exception
+  {
+    // Create a Process through the ProcessBuilder
+    ProcessBuilder builder = ProcessBuilderFactory.newInstance(null);
+    Process proc = builder.addStartEvent().addSequenceFlow("taskA").addTask("taskA").addSequenceFlow("end").addEndEvent("end").createProcess();
+    assertEquals("AnonymousProcess#0", proc.getName());
+    
+    StartEvent start = proc.getStartEvent();
+    assertNotNull("Start expected", start);
+
+    FlowObject nfo = proc.findFlowObject("taskA");
+    assertNotNull("FlowObject expected", nfo);
+    assertTrue("Task expected", nfo instanceof Task);
+    
+    List<EndEvent> ends = proc.getEndEvents();
+    assertEquals(1, ends.size());
+  }
+  
+  public void testNoStartState() throws Exception
+  {
+    try
+    {
+      // Create a Process through the ProcessBuilder
+      ProcessBuilder builder = ProcessBuilderFactory.newInstance(null);
+      builder.addTask("taskA").addSequenceFlow("end").addEndEvent("end").createProcess();
+      fail("InvalidProcessException expected");
+    }
+    catch (InvalidProcessException ex)
+    {
+      assertTrue("Unexpected message: " + ex.getMessage(), ex.getMessage().indexOf("start event") > 0);
+    }
+  }
+  
+  public void testNoEndState() throws Exception
+  {
+    try
+    {
+      // Create a Process through the ProcessBuilder
+      ProcessBuilder builder = ProcessBuilderFactory.newInstance(null);
+      builder.addStartEvent().addSequenceFlow("taskA").addTask("taskA").addSequenceFlow("end").addTask("end").createProcess();
+      fail("InvalidProcessException expected");
+    }
+    catch (InvalidProcessException ex)
+    {
+      assertTrue("Unexpected message: " + ex.getMessage(), ex.getMessage().indexOf("end event") > 0);
+    }
+  }
+  
+  public void testNodeNameUniqueness() throws Exception
+  {
+    try
+    {
+      // Create a Process through the ProcessBuilder
+      ProcessBuilder builder = ProcessBuilderFactory.newInstance(null);
+      builder.addStartEvent().addSequenceFlow("taskA").addTask("taskA").addSequenceFlow("end").addTask("taskA").addSequenceFlow("end").addEndEvent("end").createProcess();
+      fail("InvalidProcessException expected");
+    }
+    catch (InvalidProcessException ex)
+    {
+      // expected;
+    }
+  }
+}

Deleted: api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/model/ProcessMarshallerTest.java
===================================================================
--- api/trunk/modules/api/src/test/java/org/jboss/bpm/model/ProcessMarshallerTest.java	2008-07-15 22:17:15 UTC (rev 1644)
+++ api/branches/tdiesler/modules/testsuite/src/test/java/org/jboss/bpm/model/ProcessMarshallerTest.java	2008-07-16 14:22:16 UTC (rev 1648)
@@ -1,141 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.bpm.model;
-
-// $Id$
-
-import java.io.StringReader;
-import java.io.StringWriter;
-
-import org.jboss.bpm.MockEngineTestCase;
-import org.jboss.bpm.model.internal.ProcessBuilderImpl;
-import org.jboss.bpm.util.ProcessMarshaller;
-import org.jboss.bpm.util.ProcessUnmarshaller;
-
-/**
- * Test JAXB marshalling of the process
- * 
- * @author thomas.diesler at jboss.com
- * @since 08-Jul-2008
- */
-public class ProcessMarshallerTest extends MockEngineTestCase
-{
-  public void testProcess() throws Exception
-  { 
-    Process inProc = new ProcessBuilderImpl("myproc").addStartEvent().addSequenceFlow("task").addTask("task").
-    addSequenceFlow("split").addParallelGateway("split").addSequenceFlow("subproc").addSequenceFlow("event").
-    addSubProcess("subproc").addSequenceFlow("join").addItermediateEvent("event").addSequenceFlow("join").
-    addParallelGateway("join").addSequenceFlow("end").addEndEvent("end").createProcess();
-
-    StringWriter strwr = new StringWriter();
-    ProcessMarshaller marshaller = new ProcessMarshaller();
-    marshaller.marshallProcess(inProc, strwr);
-    String xml = strwr.toString();
-
-    //System.out.println(xml);
-
-    ProcessUnmarshaller unmarshaller = new ProcessUnmarshaller();
-    Process outProc = unmarshaller.unmarshallProcess(new StringReader(xml));
-    StartEvent start = outProc.getStartEvent();
-    Task task = (Task)outProc.findFlowObject("task");
-    Gateway split = (Gateway)outProc.findFlowObject("split");
-    Gateway join = (Gateway)outProc.findFlowObject("join");
-    IntermediateEvent event = (IntermediateEvent)outProc.findFlowObject("event");
-    SubProcess subproc = (SubProcess)outProc.findFlowObject("subproc");
-    EndEvent end = (EndEvent)outProc.findFlowObject("end");
-    
-    assertEquals(inProc.getName(), outProc.getName());
-    assertEquals(1, outProc.getEndEvents().size());
-
-    assertNotNull(start);
-    assertNotNull(task);
-    assertNotNull(event);
-    assertNotNull(join);
-    assertNotNull(split);
-    assertNotNull(subproc);
-    assertNotNull(end);
-    
-    assertEquals(outProc, start.getProcess());
-    assertEquals(outProc, task.getProcess());
-    assertEquals(outProc, event.getProcess());
-    assertEquals(outProc, join.getProcess());
-    assertEquals(outProc, split.getProcess());
-    assertEquals(outProc, subproc.getProcess());
-    assertEquals(outProc, end.getProcess());
-    
-    Flow of1 = start.getOutFlow();
-    Flow of2 = task.getOutFlow();
-    Flow of3 = split.getOutFlows().get(0);
-    Flow of4 = split.getOutFlows().get(1);
-    Flow of5 = subproc.getOutFlow();
-    Flow of6 = event.getOutFlow();
-    Flow of7 = join.getOutFlows().get(0);
-    
-    assertNotNull(of1);
-    assertNotNull(of2);
-    assertNotNull(of3);
-    assertNotNull(of4);
-    assertNotNull(of5);
-    assertNotNull(of6);
-    assertNotNull(of7);
-
-    assertEquals(2, split.getOutFlows().size());
-    assertEquals(1, join.getOutFlows().size());
-
-    Flow if1 = task.getInFlow();
-    Flow if2 = split.getInFlows().get(0);
-    Flow if3 = subproc.getInFlow();
-    Flow if4 = event.getInFlow();
-    Flow if5 = join.getInFlows().get(0);
-    Flow if6 = join.getInFlows().get(1);
-    Flow if7 = end.getInFlow();
-
-    assertEquals(of1, if1);
-    assertEquals(of2, if2);
-    assertEquals(of3, if3);
-    assertEquals(of4, if4);
-    assertEquals(of5, if5);
-    assertEquals(of6, if6);
-    assertEquals(of7, if7);
-    
-    assertEquals(start, of1.getSource());
-    assertEquals(task, of1.getTarget());
-    
-    assertEquals(task, of2.getSource());
-    assertEquals(split, of2.getTarget());
-    
-    assertEquals(split, of3.getSource());
-    assertEquals(subproc, of3.getTarget());
-    
-    assertEquals(split, of4.getSource());
-    assertEquals(event, of4.getTarget());
-    
-    assertEquals(subproc, of5.getSource());
-    assertEquals(join, of5.getTarget());
-    
-    assertEquals(event, of6.getSource());
-    assertEquals(join, of6.getTarget());
-    
-    assertEquals(join, of7.getSource());
-    assertEquals(end, of7.getTarget());
-  }
-}

Copied: api/branches/tdiesler/modules/testsuite/src/test/resources/jbpm-mock-beans.xml (from rev 1644, api/trunk/modules/api/src/test/resources/jbpm-mock-beans.xml)
===================================================================
--- api/branches/tdiesler/modules/testsuite/src/test/resources/jbpm-mock-beans.xml	                        (rev 0)
+++ api/branches/tdiesler/modules/testsuite/src/test/resources/jbpm-mock-beans.xml	2008-07-16 14:22:16 UTC (rev 1648)
@@ -0,0 +1,28 @@
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+ 
+  <!-- The Kernel Locator -->
+  <bean name="KernelLocator" class="org.jboss.kernel.plugins.util.KernelLocator"/>
+  
+  <!-- The process engine -->
+  <bean name="jBPMProcessEngine" class="org.jboss.bpm.client.internal.ProcessEngineImpl">
+    <property name="processManager"><inject bean="jBPMProcessManager"/></property>
+    <property name="executionManager"><inject bean="jBPMExecutionManager"/></property>
+    <property name="signalManager"><inject bean="jBPMSignalManager"/></property>
+  </bean>
+
+  <!-- The process manager -->
+  <bean name="jBPMProcessManager" class="org.jboss.bpm.client.internal.ProcessManagerImpl">
+    <property name="processEngine"><inject bean="jBPMProcessEngine" state="Instantiated"/></property>
+  </bean>
+
+  <!-- The execution manager -->
+  <bean name="jBPMExecutionManager" class="org.jboss.bpm.client.internal.ExecutionManagerImpl">
+    <property name="processEngine"><inject bean="jBPMProcessEngine" state="Instantiated"/></property>
+  </bean>
+
+  <!-- The execution manager -->
+  <bean name="jBPMSignalManager" class="org.jboss.bpm.client.internal.SignalManagerImpl">
+    <property name="processEngine"><inject bean="jBPMProcessEngine" state="Instantiated"/></property>
+  </bean>
+  
+</deployment>
\ No newline at end of file

Modified: api/branches/tdiesler/pom.xml
===================================================================
--- api/branches/tdiesler/pom.xml	2008-07-16 13:52:15 UTC (rev 1647)
+++ api/branches/tdiesler/pom.xml	2008-07-16 14:22:16 UTC (rev 1648)
@@ -32,6 +32,7 @@
   <!-- Modules -->
   <modules>
     <module>modules/api</module>
+    <module>modules/dialects/jaxb</module>
     <module>modules/testsuite</module>
   </modules>
   




More information about the jbpm-commits mailing list