https://bugs.eclipse.org/bugs/show_bug.cgi?id=389668 - ugly hack to work
around the drools parser problem.
diff --git a/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/Bpmn2ModelerResourceImpl.java b/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/Bpmn2ModelerResourceImpl.java
index ef18eb8..d376f5f 100644
--- a/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/Bpmn2ModelerResourceImpl.java
+++ b/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/Bpmn2ModelerResourceImpl.java
@@ -110,7 +110,7 @@
         this.getDefaultSaveOptions().put(XMLResource.OPTION_URI_HANDLER, uriHandler);
 
         // some interesting things to play with:
-//        this.getDefaultLoadOptions().put(XMLResource.OPTION_LAX_FEATURE_PROCESSING, true);
+        this.getDefaultLoadOptions().put(XMLResource.OPTION_LAX_FEATURE_PROCESSING, true);
 //        this.getDefaultLoadOptions().put(XMLResource.OPTION_LAX_WILDCARD_PROCESSING, true);
 //        this.getDefaultLoadOptions().put(XMLResource.OPTION_RECORD_UNKNOWN_FEATURE, true);
 //        this.getDefaultLoadOptions().put(XMLResource.OPTION_ANY_TYPE, BpmnDiPackage.eINSTANCE.getBPMNPlane());
@@ -608,7 +608,7 @@
 		}
 	}
 	
-	protected class Bpmn2ModelerXmlHelper extends BpmnXmlHelper {
+	public class Bpmn2ModelerXmlHelper extends BpmnXmlHelper {
 		
 		public Bpmn2ModelerXmlHelper(Bpmn2ResourceImpl resource) {
 			super(resource);
diff --git a/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/model/util/ModelResourceImpl.java b/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/model/util/ModelResourceImpl.java
index b5b1c6d..d861e32 100644
--- a/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/model/util/ModelResourceImpl.java
+++ b/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/model/util/ModelResourceImpl.java
@@ -32,6 +32,7 @@
 import org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5.model.ModelPackage;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.EStructuralFeature;
@@ -67,6 +68,51 @@
 	 */
 	public ModelResourceImpl(URI uri) {
 		super(uri);
+		
+		this.xmlHelper = new Bpmn2ModelerXmlHelper(this) {
+			/* (non-Javadoc)
+			 * @see org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl#getQName(org.eclipse.emf.ecore.EStructuralFeature)
+			 * 
+			 * This gets around the problem of including the "tns" namespace prefix for jBPM extension model elements.
+			 * Normally, extension elements are serialized to XML like this:
+			 * 
+			 *    <bpmn2:extensionElements>
+			 *      <tns:global tns:identifier="globalVar123" tns:type="String"/>
+			 *    </bpmn2:extensionElements>
+			 * 
+			 * Unfortunately the jBPM process engine parser can't handle the prefix for the "identifier" and "type"
+			 * attributes, so we strip them off here. The result now looks like this:
+			 * 
+			 *    <bpmn2:extensionElements>
+			 *      <tns:global identifier="globalVar123" type="String"/>
+			 *    </bpmn2:extensionElements>
+			 * 
+			 * This special serialization is done for the following extension elements:
+			 * 
+			 *  GlobalType
+			 *  ImportType
+			 *  OnEntryScriptType
+			 *  OnExitScriptType
+			 */
+			@Override
+			public String getQName(EStructuralFeature feature)
+			{
+				EObject cc = feature.eContainer();
+				if (cc instanceof EClass) {
+					String name = ((EClass)cc).getName();
+					if ("GlobalType".equals(name)
+							|| "ImportType".equals(name)
+							|| "OnEntryScriptType".equals(name)
+							|| "OnExitScriptType".equals(name)) {
+						return feature.getName();
+					}
+				}
+				return super.getQName(feature);
+			}
+		};
+        this.uriHandler = new FragmentQNameURIHandler(xmlHelper);
+        this.getDefaultLoadOptions().put(XMLResource.OPTION_URI_HANDLER, uriHandler);
+        this.getDefaultSaveOptions().put(XMLResource.OPTION_URI_HANDLER, uriHandler);
 	}