Fix some more issues and add a little test. The test shows however, that
some XSD attributes are lost during transformation.
diff --git a/org.eclipse.bpmn2.tools.xsltFromEcore/META-INF/MANIFEST.MF b/org.eclipse.bpmn2.tools.xsltFromEcore/META-INF/MANIFEST.MF
index 6ee467f..894693e 100644
--- a/org.eclipse.bpmn2.tools.xsltFromEcore/META-INF/MANIFEST.MF
+++ b/org.eclipse.bpmn2.tools.xsltFromEcore/META-INF/MANIFEST.MF
@@ -6,4 +6,6 @@
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Require-Bundle: org.eclipse.emf,
org.eclipse.emf.ecore,
- org.eclipse.emf.ecore.xmi
+ org.eclipse.emf.ecore.xmi,
+ org.eclipse.bpmn2,
+ org.junit4
diff --git a/org.eclipse.bpmn2.tools.xsltFromEcore/result/XMIToXML.xslt b/org.eclipse.bpmn2.tools.xsltFromEcore/result/XMIToXML.xslt
index 01fb2b8..c0b78de 100644
--- a/org.eclipse.bpmn2.tools.xsltFromEcore/result/XMIToXML.xslt
+++ b/org.eclipse.bpmn2.tools.xsltFromEcore/result/XMIToXML.xslt
@@ -67,7 +67,7 @@
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@boundaryEventRefs" />
<xsl:with-param name="elementName" select="'bpmn2:boundaryEventRefs'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/BPMN/20100524/MODEL'" />
</xsl:call-template>
<xsl:for-each select="properties">
<bpmn2:property>
@@ -352,7 +352,7 @@
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@categorizedFlowElements" />
<xsl:with-param name="elementName" select="'bpmn2:categorizedFlowElements'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/BPMN/20100524/MODEL'" />
</xsl:call-template>
</xsl:template>
@@ -650,17 +650,17 @@
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@inputSetWithOptional" />
<xsl:with-param name="elementName" select="'bpmn2:inputSetWithOptional'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/BPMN/20100524/MODEL'" />
</xsl:call-template>
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@inputSetWithWhileExecuting" />
<xsl:with-param name="elementName" select="'bpmn2:inputSetWithWhileExecuting'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/BPMN/20100524/MODEL'" />
</xsl:call-template>
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@inputSetRefs" />
<xsl:with-param name="elementName" select="'bpmn2:inputSetRefs'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/BPMN/20100524/MODEL'" />
</xsl:call-template>
</xsl:template>
@@ -687,17 +687,17 @@
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@outputSetWithOptional" />
<xsl:with-param name="elementName" select="'bpmn2:outputSetWithOptional'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/BPMN/20100524/MODEL'" />
</xsl:call-template>
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@outputSetWithWhileExecuting" />
<xsl:with-param name="elementName" select="'bpmn2:outputSetWithWhileExecuting'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/BPMN/20100524/MODEL'" />
</xsl:call-template>
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@outputSetRefs" />
<xsl:with-param name="elementName" select="'bpmn2:outputSetRefs'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/BPMN/20100524/MODEL'" />
</xsl:call-template>
</xsl:template>
@@ -1012,7 +1012,7 @@
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@extensionDefinition" />
<xsl:with-param name="elementName" select="'bpmn2:extensionDefinition'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/BPMN/20100524/MODEL'" />
</xsl:call-template>
</xsl:template>
@@ -1020,7 +1020,7 @@
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@valueRef" />
<xsl:with-param name="elementName" select="'bpmn2:valueRef'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/BPMN/20100524/MODEL'" />
</xsl:call-template>
<xsl:for-each select="value">
<bpmn2:value>
@@ -1031,7 +1031,7 @@
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@extensionAttributeDefinition" />
<xsl:with-param name="elementName" select="'bpmn2:extensionAttributeDefinition'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/BPMN/20100524/MODEL'" />
</xsl:call-template>
</xsl:template>
@@ -1247,7 +1247,7 @@
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@lanes" />
<xsl:with-param name="elementName" select="'bpmn2:lanes'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/BPMN/20100524/MODEL'" />
</xsl:call-template>
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@outgoing" />
@@ -1263,7 +1263,7 @@
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@body" />
<xsl:with-param name="elementName" select="'bpmn2:body'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/BPMN/20100524/MODEL'" />
</xsl:call-template>
</xsl:template>
@@ -1418,12 +1418,12 @@
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@incomingConversationLinks" />
<xsl:with-param name="elementName" select="'bpmn2:incomingConversationLinks'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/BPMN/20100524/MODEL'" />
</xsl:call-template>
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@outgoingConversationLinks" />
<xsl:with-param name="elementName" select="'bpmn2:outgoingConversationLinks'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/BPMN/20100524/MODEL'" />
</xsl:call-template>
</xsl:template>
@@ -1466,7 +1466,7 @@
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@import" />
<xsl:with-param name="elementName" select="'bpmn2:import'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/BPMN/20100524/MODEL'" />
</xsl:call-template>
</xsl:template>
@@ -2257,12 +2257,12 @@
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@ownedStyle" />
<xsl:with-param name="elementName" select="'bpmn2:ownedStyle'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/DD/20100524/DI'" />
</xsl:call-template>
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@rootElement" />
<xsl:with-param name="elementName" select="'bpmn2:rootElement'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/DD/20100524/DI'" />
</xsl:call-template>
</xsl:template>
@@ -2271,27 +2271,27 @@
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@owningDiagram" />
<xsl:with-param name="elementName" select="'bpmn2:owningDiagram'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/DD/20100524/DI'" />
</xsl:call-template>
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@owningElement" />
<xsl:with-param name="elementName" select="'bpmn2:owningElement'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/DD/20100524/DI'" />
</xsl:call-template>
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@ownedElement" />
<xsl:with-param name="elementName" select="'bpmn2:ownedElement'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/DD/20100524/DI'" />
</xsl:call-template>
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@modelElement" />
<xsl:with-param name="elementName" select="'bpmn2:modelElement'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/DD/20100524/DI'" />
</xsl:call-template>
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@style" />
<xsl:with-param name="elementName" select="'bpmn2:style'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/DD/20100524/DI'" />
</xsl:call-template>
</xsl:template>
@@ -2300,12 +2300,12 @@
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@source" />
<xsl:with-param name="elementName" select="'bpmn2:source'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/DD/20100524/DI'" />
</xsl:call-template>
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@target" />
<xsl:with-param name="elementName" select="'bpmn2:target'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/DD/20100524/DI'" />
</xsl:call-template>
<xsl:for-each select="waypoint">
<di:waypoint>
@@ -2330,7 +2330,7 @@
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@ownedLabel" />
<xsl:with-param name="elementName" select="'bpmn2:ownedLabel'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/DD/20100524/DI'" />
</xsl:call-template>
</xsl:template>
@@ -2339,7 +2339,7 @@
<xsl:call-template name="SplitString">
<xsl:with-param name="list" select="@ownedLabel" />
<xsl:with-param name="elementName" select="'bpmn2:ownedLabel'" />
- <xsl:with-param name="elementNamespace" select="'null'" />
+ <xsl:with-param name="elementNamespace" select="'http://www.omg.org/spec/DD/20100524/DI'" />
</xsl:call-template>
</xsl:template>
diff --git a/org.eclipse.bpmn2.tools.xsltFromEcore/result/XMLToXMI.xslt b/org.eclipse.bpmn2.tools.xsltFromEcore/result/XMLToXMI.xslt
index b51a3e8..0d6b94f 100644
--- a/org.eclipse.bpmn2.tools.xsltFromEcore/result/XMLToXMI.xslt
+++ b/org.eclipse.bpmn2.tools.xsltFromEcore/result/XMLToXMI.xslt
@@ -65,17 +65,17 @@
</xsl:for-each>
<xsl:for-each select="bpmn2:performer|bpmn2:humanPerformer|bpmn2:potentialOwner">
<xsl:choose>
- <xsl:when test="name() = 'bpmn2:performer'">
+ <xsl:when test="self::bpmn2:performer">
<resources xmi:type="bpmn2xmi:Performer">
<xsl:call-template name="PerformerTemplate" />
</resources>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:humanPerformer'">
+ <xsl:when test="self::bpmn2:humanPerformer">
<resources xmi:type="bpmn2xmi:HumanPerformer">
<xsl:call-template name="HumanPerformerTemplate" />
</resources>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:potentialOwner'">
+ <xsl:when test="self::bpmn2:potentialOwner">
<resources xmi:type="bpmn2xmi:PotentialOwner">
<xsl:call-template name="PotentialOwnerTemplate" />
</resources>
@@ -84,12 +84,12 @@
</xsl:for-each>
<xsl:for-each select="bpmn2:multiInstanceLoopCharacteristics|bpmn2:standardLoopCharacteristics">
<xsl:choose>
- <xsl:when test="name() = 'bpmn2:multiInstanceLoopCharacteristics'">
+ <xsl:when test="self::bpmn2:multiInstanceLoopCharacteristics">
<loopCharacteristics xmi:type="bpmn2xmi:MultiInstanceLoopCharacteristics">
<xsl:call-template name="MultiInstanceLoopCharacteristicsTemplate" />
</loopCharacteristics>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:standardLoopCharacteristics'">
+ <xsl:when test="self::bpmn2:standardLoopCharacteristics">
<loopCharacteristics xmi:type="bpmn2xmi:StandardLoopCharacteristics">
<xsl:call-template name="StandardLoopCharacteristicsTemplate" />
</loopCharacteristics>
@@ -230,52 +230,52 @@
</xsl:for-each>
<xsl:for-each select="bpmn2:cancelEventDefinition|bpmn2:compensateEventDefinition|bpmn2:conditionalEventDefinition|bpmn2:errorEventDefinition|bpmn2:escalationEventDefinition|bpmn2:linkEventDefinition|bpmn2:messageEventDefinition|bpmn2:signalEventDefinition|bpmn2:terminateEventDefinition|bpmn2:timerEventDefinition">
<xsl:choose>
- <xsl:when test="name() = 'bpmn2:cancelEventDefinition'">
+ <xsl:when test="self::bpmn2:cancelEventDefinition">
<eventDefinitions xmi:type="bpmn2xmi:CancelEventDefinition">
<xsl:call-template name="CancelEventDefinitionTemplate" />
</eventDefinitions>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:compensateEventDefinition'">
+ <xsl:when test="self::bpmn2:compensateEventDefinition">
<eventDefinitions xmi:type="bpmn2xmi:CompensateEventDefinition">
<xsl:call-template name="CompensateEventDefinitionTemplate" />
</eventDefinitions>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:conditionalEventDefinition'">
+ <xsl:when test="self::bpmn2:conditionalEventDefinition">
<eventDefinitions xmi:type="bpmn2xmi:ConditionalEventDefinition">
<xsl:call-template name="ConditionalEventDefinitionTemplate" />
</eventDefinitions>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:errorEventDefinition'">
+ <xsl:when test="self::bpmn2:errorEventDefinition">
<eventDefinitions xmi:type="bpmn2xmi:ErrorEventDefinition">
<xsl:call-template name="ErrorEventDefinitionTemplate" />
</eventDefinitions>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:escalationEventDefinition'">
+ <xsl:when test="self::bpmn2:escalationEventDefinition">
<eventDefinitions xmi:type="bpmn2xmi:EscalationEventDefinition">
<xsl:call-template name="EscalationEventDefinitionTemplate" />
</eventDefinitions>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:linkEventDefinition'">
+ <xsl:when test="self::bpmn2:linkEventDefinition">
<eventDefinitions xmi:type="bpmn2xmi:LinkEventDefinition">
<xsl:call-template name="LinkEventDefinitionTemplate" />
</eventDefinitions>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:messageEventDefinition'">
+ <xsl:when test="self::bpmn2:messageEventDefinition">
<eventDefinitions xmi:type="bpmn2xmi:MessageEventDefinition">
<xsl:call-template name="MessageEventDefinitionTemplate" />
</eventDefinitions>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:signalEventDefinition'">
+ <xsl:when test="self::bpmn2:signalEventDefinition">
<eventDefinitions xmi:type="bpmn2xmi:SignalEventDefinition">
<xsl:call-template name="SignalEventDefinitionTemplate" />
</eventDefinitions>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:terminateEventDefinition'">
+ <xsl:when test="self::bpmn2:terminateEventDefinition">
<eventDefinitions xmi:type="bpmn2xmi:TerminateEventDefinition">
<xsl:call-template name="TerminateEventDefinitionTemplate" />
</eventDefinitions>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:timerEventDefinition'">
+ <xsl:when test="self::bpmn2:timerEventDefinition">
<eventDefinitions xmi:type="bpmn2xmi:TimerEventDefinition">
<xsl:call-template name="TimerEventDefinitionTemplate" />
</eventDefinitions>
@@ -339,17 +339,17 @@
</xsl:for-each>
<xsl:for-each select="bpmn2:association|bpmn2:group|bpmn2:textAnnotation">
<xsl:choose>
- <xsl:when test="name() = 'bpmn2:association'">
+ <xsl:when test="self::bpmn2:association">
<artifacts xmi:type="bpmn2xmi:Association">
<xsl:call-template name="AssociationTemplate" />
</artifacts>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:group'">
+ <xsl:when test="self::bpmn2:group">
<artifacts xmi:type="bpmn2xmi:Group">
<xsl:call-template name="GroupTemplate" />
</artifacts>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:textAnnotation'">
+ <xsl:when test="self::bpmn2:textAnnotation">
<artifacts xmi:type="bpmn2xmi:TextAnnotation">
<xsl:call-template name="TextAnnotationTemplate" />
</artifacts>
@@ -358,17 +358,17 @@
</xsl:for-each>
<xsl:for-each select="bpmn2:callConversation|bpmn2:conversation|bpmn2:subConversation">
<xsl:choose>
- <xsl:when test="name() = 'bpmn2:callConversation'">
+ <xsl:when test="self::bpmn2:callConversation">
<conversations xmi:type="bpmn2xmi:CallConversation">
<xsl:call-template name="CallConversationTemplate" />
</conversations>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:conversation'">
+ <xsl:when test="self::bpmn2:conversation">
<conversations xmi:type="bpmn2xmi:Conversation">
<xsl:call-template name="ConversationTemplate" />
</conversations>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:subConversation'">
+ <xsl:when test="self::bpmn2:subConversation">
<conversations xmi:type="bpmn2xmi:SubConversation">
<xsl:call-template name="SubConversationTemplate" />
</conversations>
@@ -611,172 +611,172 @@
</xsl:for-each>
<xsl:for-each select="bpmn2:eventDefinition|bpmn2:category|bpmn2:collaboration|bpmn2:correlationProperty|bpmn2:dataStore|bpmn2:endPoint|bpmn2:error|bpmn2:escalation|bpmn2:globalBusinessRuleTask|bpmn2:globalManualTask|bpmn2:globalScriptTask|bpmn2:globalTask|bpmn2:globalUserTask|bpmn2:interface|bpmn2:itemDefinition|bpmn2:message|bpmn2:partnerEntity|bpmn2:partnerRole|bpmn2:process|bpmn2:resource|bpmn2:signal|bpmn2:cancelEventDefinition|bpmn2:compensateEventDefinition|bpmn2:conditionalEventDefinition|bpmn2:errorEventDefinition|bpmn2:escalationEventDefinition|bpmn2:linkEventDefinition|bpmn2:messageEventDefinition|bpmn2:signalEventDefinition|bpmn2:terminateEventDefinition|bpmn2:timerEventDefinition|bpmn2:choreography|bpmn2:globalConversation|bpmn2:globalChoreographyTask">
<xsl:choose>
- <xsl:when test="name() = 'bpmn2:eventDefinition'">
+ <xsl:when test="self::bpmn2:eventDefinition">
<rootElements xmi:type="bpmn2xmi:EventDefinition">
<xsl:call-template name="EventDefinitionTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:category'">
+ <xsl:when test="self::bpmn2:category">
<rootElements xmi:type="bpmn2xmi:Category">
<xsl:call-template name="CategoryTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:collaboration'">
+ <xsl:when test="self::bpmn2:collaboration">
<rootElements xmi:type="bpmn2xmi:Collaboration">
<xsl:call-template name="CollaborationTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:correlationProperty'">
+ <xsl:when test="self::bpmn2:correlationProperty">
<rootElements xmi:type="bpmn2xmi:CorrelationProperty">
<xsl:call-template name="CorrelationPropertyTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:dataStore'">
+ <xsl:when test="self::bpmn2:dataStore">
<rootElements xmi:type="bpmn2xmi:DataStore">
<xsl:call-template name="DataStoreTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:endPoint'">
+ <xsl:when test="self::bpmn2:endPoint">
<rootElements xmi:type="bpmn2xmi:EndPoint">
<xsl:call-template name="EndPointTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:error'">
+ <xsl:when test="self::bpmn2:error">
<rootElements xmi:type="bpmn2xmi:Error">
<xsl:call-template name="ErrorTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:escalation'">
+ <xsl:when test="self::bpmn2:escalation">
<rootElements xmi:type="bpmn2xmi:Escalation">
<xsl:call-template name="EscalationTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:globalBusinessRuleTask'">
+ <xsl:when test="self::bpmn2:globalBusinessRuleTask">
<rootElements xmi:type="bpmn2xmi:GlobalBusinessRuleTask">
<xsl:call-template name="GlobalBusinessRuleTaskTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:globalManualTask'">
+ <xsl:when test="self::bpmn2:globalManualTask">
<rootElements xmi:type="bpmn2xmi:GlobalManualTask">
<xsl:call-template name="GlobalManualTaskTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:globalScriptTask'">
+ <xsl:when test="self::bpmn2:globalScriptTask">
<rootElements xmi:type="bpmn2xmi:GlobalScriptTask">
<xsl:call-template name="GlobalScriptTaskTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:globalTask'">
+ <xsl:when test="self::bpmn2:globalTask">
<rootElements xmi:type="bpmn2xmi:GlobalTask">
<xsl:call-template name="GlobalTaskTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:globalUserTask'">
+ <xsl:when test="self::bpmn2:globalUserTask">
<rootElements xmi:type="bpmn2xmi:GlobalUserTask">
<xsl:call-template name="GlobalUserTaskTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:interface'">
+ <xsl:when test="self::bpmn2:interface">
<rootElements xmi:type="bpmn2xmi:Interface">
<xsl:call-template name="InterfaceTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:itemDefinition'">
+ <xsl:when test="self::bpmn2:itemDefinition">
<rootElements xmi:type="bpmn2xmi:ItemDefinition">
<xsl:call-template name="ItemDefinitionTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:message'">
+ <xsl:when test="self::bpmn2:message">
<rootElements xmi:type="bpmn2xmi:Message">
<xsl:call-template name="MessageTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:partnerEntity'">
+ <xsl:when test="self::bpmn2:partnerEntity">
<rootElements xmi:type="bpmn2xmi:PartnerEntity">
<xsl:call-template name="PartnerEntityTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:partnerRole'">
+ <xsl:when test="self::bpmn2:partnerRole">
<rootElements xmi:type="bpmn2xmi:PartnerRole">
<xsl:call-template name="PartnerRoleTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:process'">
+ <xsl:when test="self::bpmn2:process">
<rootElements xmi:type="bpmn2xmi:Process">
<xsl:call-template name="ProcessTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:resource'">
+ <xsl:when test="self::bpmn2:resource">
<rootElements xmi:type="bpmn2xmi:Resource">
<xsl:call-template name="ResourceTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:signal'">
+ <xsl:when test="self::bpmn2:signal">
<rootElements xmi:type="bpmn2xmi:Signal">
<xsl:call-template name="SignalTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:cancelEventDefinition'">
+ <xsl:when test="self::bpmn2:cancelEventDefinition">
<rootElements xmi:type="bpmn2xmi:CancelEventDefinition">
<xsl:call-template name="CancelEventDefinitionTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:compensateEventDefinition'">
+ <xsl:when test="self::bpmn2:compensateEventDefinition">
<rootElements xmi:type="bpmn2xmi:CompensateEventDefinition">
<xsl:call-template name="CompensateEventDefinitionTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:conditionalEventDefinition'">
+ <xsl:when test="self::bpmn2:conditionalEventDefinition">
<rootElements xmi:type="bpmn2xmi:ConditionalEventDefinition">
<xsl:call-template name="ConditionalEventDefinitionTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:errorEventDefinition'">
+ <xsl:when test="self::bpmn2:errorEventDefinition">
<rootElements xmi:type="bpmn2xmi:ErrorEventDefinition">
<xsl:call-template name="ErrorEventDefinitionTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:escalationEventDefinition'">
+ <xsl:when test="self::bpmn2:escalationEventDefinition">
<rootElements xmi:type="bpmn2xmi:EscalationEventDefinition">
<xsl:call-template name="EscalationEventDefinitionTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:linkEventDefinition'">
+ <xsl:when test="self::bpmn2:linkEventDefinition">
<rootElements xmi:type="bpmn2xmi:LinkEventDefinition">
<xsl:call-template name="LinkEventDefinitionTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:messageEventDefinition'">
+ <xsl:when test="self::bpmn2:messageEventDefinition">
<rootElements xmi:type="bpmn2xmi:MessageEventDefinition">
<xsl:call-template name="MessageEventDefinitionTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:signalEventDefinition'">
+ <xsl:when test="self::bpmn2:signalEventDefinition">
<rootElements xmi:type="bpmn2xmi:SignalEventDefinition">
<xsl:call-template name="SignalEventDefinitionTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:terminateEventDefinition'">
+ <xsl:when test="self::bpmn2:terminateEventDefinition">
<rootElements xmi:type="bpmn2xmi:TerminateEventDefinition">
<xsl:call-template name="TerminateEventDefinitionTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:timerEventDefinition'">
+ <xsl:when test="self::bpmn2:timerEventDefinition">
<rootElements xmi:type="bpmn2xmi:TimerEventDefinition">
<xsl:call-template name="TimerEventDefinitionTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:choreography'">
+ <xsl:when test="self::bpmn2:choreography">
<rootElements xmi:type="bpmn2xmi:Choreography">
<xsl:call-template name="ChoreographyTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:globalConversation'">
+ <xsl:when test="self::bpmn2:globalConversation">
<rootElements xmi:type="bpmn2xmi:GlobalConversation">
<xsl:call-template name="GlobalConversationTemplate" />
</rootElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:globalChoreographyTask'">
+ <xsl:when test="self::bpmn2:globalChoreographyTask">
<rootElements xmi:type="bpmn2xmi:GlobalChoreographyTask">
<xsl:call-template name="GlobalChoreographyTaskTemplate" />
</rootElements>
@@ -921,157 +921,157 @@
</xsl:for-each>
<xsl:for-each select="bpmn2:adHocSubProcess|bpmn2:boundaryEvent|bpmn2:businessRuleTask|bpmn2:callActivity|bpmn2:callChoreography|bpmn2:choreographyTask|bpmn2:complexGateway|bpmn2:dataObject|bpmn2:dataObjectReference|bpmn2:dataStoreReference|bpmn2:endEvent|bpmn2:event|bpmn2:eventBasedGateway|bpmn2:exclusiveGateway|bpmn2:implicitThrowEvent|bpmn2:inclusiveGateway|bpmn2:intermediateCatchEvent|bpmn2:intermediateThrowEvent|bpmn2:manualTask|bpmn2:parallelGateway|bpmn2:receiveTask|bpmn2:scriptTask|bpmn2:sendTask|bpmn2:sequenceFlow|bpmn2:serviceTask|bpmn2:startEvent|bpmn2:subChoreography|bpmn2:subProcess|bpmn2:task|bpmn2:transaction|bpmn2:userTask">
<xsl:choose>
- <xsl:when test="name() = 'bpmn2:adHocSubProcess'">
+ <xsl:when test="self::bpmn2:adHocSubProcess">
<flowElements xmi:type="bpmn2xmi:AdHocSubProcess">
<xsl:call-template name="AdHocSubProcessTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:boundaryEvent'">
+ <xsl:when test="self::bpmn2:boundaryEvent">
<flowElements xmi:type="bpmn2xmi:BoundaryEvent">
<xsl:call-template name="BoundaryEventTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:businessRuleTask'">
+ <xsl:when test="self::bpmn2:businessRuleTask">
<flowElements xmi:type="bpmn2xmi:BusinessRuleTask">
<xsl:call-template name="BusinessRuleTaskTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:callActivity'">
+ <xsl:when test="self::bpmn2:callActivity">
<flowElements xmi:type="bpmn2xmi:CallActivity">
<xsl:call-template name="CallActivityTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:callChoreography'">
+ <xsl:when test="self::bpmn2:callChoreography">
<flowElements xmi:type="bpmn2xmi:CallChoreography">
<xsl:call-template name="CallChoreographyTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:choreographyTask'">
+ <xsl:when test="self::bpmn2:choreographyTask">
<flowElements xmi:type="bpmn2xmi:ChoreographyTask">
<xsl:call-template name="ChoreographyTaskTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:complexGateway'">
+ <xsl:when test="self::bpmn2:complexGateway">
<flowElements xmi:type="bpmn2xmi:ComplexGateway">
<xsl:call-template name="ComplexGatewayTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:dataObject'">
+ <xsl:when test="self::bpmn2:dataObject">
<flowElements xmi:type="bpmn2xmi:DataObject">
<xsl:call-template name="DataObjectTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:dataObjectReference'">
+ <xsl:when test="self::bpmn2:dataObjectReference">
<flowElements xmi:type="bpmn2xmi:DataObjectReference">
<xsl:call-template name="DataObjectReferenceTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:dataStoreReference'">
+ <xsl:when test="self::bpmn2:dataStoreReference">
<flowElements xmi:type="bpmn2xmi:DataStoreReference">
<xsl:call-template name="DataStoreReferenceTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:endEvent'">
+ <xsl:when test="self::bpmn2:endEvent">
<flowElements xmi:type="bpmn2xmi:EndEvent">
<xsl:call-template name="EndEventTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:event'">
+ <xsl:when test="self::bpmn2:event">
<flowElements xmi:type="bpmn2xmi:Event">
<xsl:call-template name="EventTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:eventBasedGateway'">
+ <xsl:when test="self::bpmn2:eventBasedGateway">
<flowElements xmi:type="bpmn2xmi:EventBasedGateway">
<xsl:call-template name="EventBasedGatewayTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:exclusiveGateway'">
+ <xsl:when test="self::bpmn2:exclusiveGateway">
<flowElements xmi:type="bpmn2xmi:ExclusiveGateway">
<xsl:call-template name="ExclusiveGatewayTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:implicitThrowEvent'">
+ <xsl:when test="self::bpmn2:implicitThrowEvent">
<flowElements xmi:type="bpmn2xmi:ImplicitThrowEvent">
<xsl:call-template name="ImplicitThrowEventTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:inclusiveGateway'">
+ <xsl:when test="self::bpmn2:inclusiveGateway">
<flowElements xmi:type="bpmn2xmi:InclusiveGateway">
<xsl:call-template name="InclusiveGatewayTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:intermediateCatchEvent'">
+ <xsl:when test="self::bpmn2:intermediateCatchEvent">
<flowElements xmi:type="bpmn2xmi:IntermediateCatchEvent">
<xsl:call-template name="IntermediateCatchEventTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:intermediateThrowEvent'">
+ <xsl:when test="self::bpmn2:intermediateThrowEvent">
<flowElements xmi:type="bpmn2xmi:IntermediateThrowEvent">
<xsl:call-template name="IntermediateThrowEventTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:manualTask'">
+ <xsl:when test="self::bpmn2:manualTask">
<flowElements xmi:type="bpmn2xmi:ManualTask">
<xsl:call-template name="ManualTaskTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:parallelGateway'">
+ <xsl:when test="self::bpmn2:parallelGateway">
<flowElements xmi:type="bpmn2xmi:ParallelGateway">
<xsl:call-template name="ParallelGatewayTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:receiveTask'">
+ <xsl:when test="self::bpmn2:receiveTask">
<flowElements xmi:type="bpmn2xmi:ReceiveTask">
<xsl:call-template name="ReceiveTaskTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:scriptTask'">
+ <xsl:when test="self::bpmn2:scriptTask">
<flowElements xmi:type="bpmn2xmi:ScriptTask">
<xsl:call-template name="ScriptTaskTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:sendTask'">
+ <xsl:when test="self::bpmn2:sendTask">
<flowElements xmi:type="bpmn2xmi:SendTask">
<xsl:call-template name="SendTaskTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:sequenceFlow'">
+ <xsl:when test="self::bpmn2:sequenceFlow">
<flowElements xmi:type="bpmn2xmi:SequenceFlow">
<xsl:call-template name="SequenceFlowTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:serviceTask'">
+ <xsl:when test="self::bpmn2:serviceTask">
<flowElements xmi:type="bpmn2xmi:ServiceTask">
<xsl:call-template name="ServiceTaskTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:startEvent'">
+ <xsl:when test="self::bpmn2:startEvent">
<flowElements xmi:type="bpmn2xmi:StartEvent">
<xsl:call-template name="StartEventTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:subChoreography'">
+ <xsl:when test="self::bpmn2:subChoreography">
<flowElements xmi:type="bpmn2xmi:SubChoreography">
<xsl:call-template name="SubChoreographyTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:subProcess'">
+ <xsl:when test="self::bpmn2:subProcess">
<flowElements xmi:type="bpmn2xmi:SubProcess">
<xsl:call-template name="SubProcessTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:task'">
+ <xsl:when test="self::bpmn2:task">
<flowElements xmi:type="bpmn2xmi:Task">
<xsl:call-template name="TaskTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:transaction'">
+ <xsl:when test="self::bpmn2:transaction">
<flowElements xmi:type="bpmn2xmi:Transaction">
<xsl:call-template name="TransactionTemplate" />
</flowElements>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:userTask'">
+ <xsl:when test="self::bpmn2:userTask">
<flowElements xmi:type="bpmn2xmi:UserTask">
<xsl:call-template name="UserTaskTemplate" />
</flowElements>
@@ -1127,17 +1127,17 @@
<xsl:call-template name="CallableElementTemplate"/>
<xsl:for-each select="bpmn2:performer|bpmn2:humanPerformer|bpmn2:potentialOwner">
<xsl:choose>
- <xsl:when test="name() = 'bpmn2:performer'">
+ <xsl:when test="self::bpmn2:performer">
<resources xmi:type="bpmn2xmi:Performer">
<xsl:call-template name="PerformerTemplate" />
</resources>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:humanPerformer'">
+ <xsl:when test="self::bpmn2:humanPerformer">
<resources xmi:type="bpmn2xmi:HumanPerformer">
<xsl:call-template name="HumanPerformerTemplate" />
</resources>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:potentialOwner'">
+ <xsl:when test="self::bpmn2:potentialOwner">
<resources xmi:type="bpmn2xmi:PotentialOwner">
<xsl:call-template name="PotentialOwnerTemplate" />
</resources>
@@ -1460,17 +1460,17 @@
</xsl:for-each>
<xsl:for-each select="bpmn2:association|bpmn2:group|bpmn2:textAnnotation">
<xsl:choose>
- <xsl:when test="name() = 'bpmn2:association'">
+ <xsl:when test="self::bpmn2:association">
<artifacts xmi:type="bpmn2xmi:Association">
<xsl:call-template name="AssociationTemplate" />
</artifacts>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:group'">
+ <xsl:when test="self::bpmn2:group">
<artifacts xmi:type="bpmn2xmi:Group">
<xsl:call-template name="GroupTemplate" />
</artifacts>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:textAnnotation'">
+ <xsl:when test="self::bpmn2:textAnnotation">
<artifacts xmi:type="bpmn2xmi:TextAnnotation">
<xsl:call-template name="TextAnnotationTemplate" />
</artifacts>
@@ -1479,17 +1479,17 @@
</xsl:for-each>
<xsl:for-each select="bpmn2:performer|bpmn2:humanPerformer|bpmn2:potentialOwner">
<xsl:choose>
- <xsl:when test="name() = 'bpmn2:performer'">
+ <xsl:when test="self::bpmn2:performer">
<resources xmi:type="bpmn2xmi:Performer">
<xsl:call-template name="PerformerTemplate" />
</resources>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:humanPerformer'">
+ <xsl:when test="self::bpmn2:humanPerformer">
<resources xmi:type="bpmn2xmi:HumanPerformer">
<xsl:call-template name="HumanPerformerTemplate" />
</resources>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:potentialOwner'">
+ <xsl:when test="self::bpmn2:potentialOwner">
<resources xmi:type="bpmn2xmi:PotentialOwner">
<xsl:call-template name="PotentialOwnerTemplate" />
</resources>
@@ -1541,7 +1541,7 @@
<xsl:template name="ResourceAssignmentExpressionTemplate">
<xsl:for-each select="bpmn2:formalExpression">
<xsl:choose>
- <xsl:when test="name() = 'bpmn2:formalExpression'">
+ <xsl:when test="self::bpmn2:formalExpression">
<expression xmi:type="bpmn2xmi:FormalExpression">
<xsl:call-template name="FormalExpressionTemplate" />
</expression>
@@ -1561,7 +1561,7 @@
<xsl:if test="@parameterRef"><xsl:attribute name="parameterRef"><xsl:call-template name="concat"><xsl:with-param name="nodeset" select="@parameterRef"/></xsl:call-template></xsl:attribute></xsl:if>
<xsl:for-each select="bpmn2:formalExpression">
<xsl:choose>
- <xsl:when test="name() = 'bpmn2:formalExpression'">
+ <xsl:when test="self::bpmn2:formalExpression">
<expression xmi:type="bpmn2xmi:FormalExpression">
<xsl:call-template name="FormalExpressionTemplate" />
</expression>
@@ -1657,17 +1657,17 @@
<xsl:call-template name="FlowElementsContainerTemplate"/>
<xsl:for-each select="bpmn2:association|bpmn2:group|bpmn2:textAnnotation">
<xsl:choose>
- <xsl:when test="name() = 'bpmn2:association'">
+ <xsl:when test="self::bpmn2:association">
<artifacts xmi:type="bpmn2xmi:Association">
<xsl:call-template name="AssociationTemplate" />
</artifacts>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:group'">
+ <xsl:when test="self::bpmn2:group">
<artifacts xmi:type="bpmn2xmi:Group">
<xsl:call-template name="GroupTemplate" />
</artifacts>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:textAnnotation'">
+ <xsl:when test="self::bpmn2:textAnnotation">
<artifacts xmi:type="bpmn2xmi:TextAnnotation">
<xsl:call-template name="TextAnnotationTemplate" />
</artifacts>
@@ -1680,17 +1680,17 @@
<xsl:call-template name="ConversationNodeTemplate"/>
<xsl:for-each select="bpmn2:callConversation|bpmn2:conversation|bpmn2:subConversation">
<xsl:choose>
- <xsl:when test="name() = 'bpmn2:callConversation'">
+ <xsl:when test="self::bpmn2:callConversation">
<conversationNodes xmi:type="bpmn2xmi:CallConversation">
<xsl:call-template name="CallConversationTemplate" />
</conversationNodes>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:conversation'">
+ <xsl:when test="self::bpmn2:conversation">
<conversationNodes xmi:type="bpmn2xmi:Conversation">
<xsl:call-template name="ConversationTemplate" />
</conversationNodes>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:subConversation'">
+ <xsl:when test="self::bpmn2:subConversation">
<conversationNodes xmi:type="bpmn2xmi:SubConversation">
<xsl:call-template name="SubConversationTemplate" />
</conversationNodes>
@@ -1705,17 +1705,17 @@
<xsl:if test="@triggeredByEvent"><xsl:attribute name="triggeredByEvent"> <xsl:value-of select="@triggeredByEvent" /> </xsl:attribute></xsl:if>
<xsl:for-each select="bpmn2:association|bpmn2:group|bpmn2:textAnnotation">
<xsl:choose>
- <xsl:when test="name() = 'bpmn2:association'">
+ <xsl:when test="self::bpmn2:association">
<artifacts xmi:type="bpmn2xmi:Association">
<xsl:call-template name="AssociationTemplate" />
</artifacts>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:group'">
+ <xsl:when test="self::bpmn2:group">
<artifacts xmi:type="bpmn2xmi:Group">
<xsl:call-template name="GroupTemplate" />
</artifacts>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:textAnnotation'">
+ <xsl:when test="self::bpmn2:textAnnotation">
<artifacts xmi:type="bpmn2xmi:TextAnnotation">
<xsl:call-template name="TextAnnotationTemplate" />
</artifacts>
@@ -1759,52 +1759,52 @@
</xsl:for-each>
<xsl:for-each select="bpmn2:cancelEventDefinition|bpmn2:compensateEventDefinition|bpmn2:conditionalEventDefinition|bpmn2:errorEventDefinition|bpmn2:escalationEventDefinition|bpmn2:linkEventDefinition|bpmn2:messageEventDefinition|bpmn2:signalEventDefinition|bpmn2:terminateEventDefinition|bpmn2:timerEventDefinition">
<xsl:choose>
- <xsl:when test="name() = 'bpmn2:cancelEventDefinition'">
+ <xsl:when test="self::bpmn2:cancelEventDefinition">
<eventDefinitions xmi:type="bpmn2xmi:CancelEventDefinition">
<xsl:call-template name="CancelEventDefinitionTemplate" />
</eventDefinitions>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:compensateEventDefinition'">
+ <xsl:when test="self::bpmn2:compensateEventDefinition">
<eventDefinitions xmi:type="bpmn2xmi:CompensateEventDefinition">
<xsl:call-template name="CompensateEventDefinitionTemplate" />
</eventDefinitions>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:conditionalEventDefinition'">
+ <xsl:when test="self::bpmn2:conditionalEventDefinition">
<eventDefinitions xmi:type="bpmn2xmi:ConditionalEventDefinition">
<xsl:call-template name="ConditionalEventDefinitionTemplate" />
</eventDefinitions>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:errorEventDefinition'">
+ <xsl:when test="self::bpmn2:errorEventDefinition">
<eventDefinitions xmi:type="bpmn2xmi:ErrorEventDefinition">
<xsl:call-template name="ErrorEventDefinitionTemplate" />
</eventDefinitions>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:escalationEventDefinition'">
+ <xsl:when test="self::bpmn2:escalationEventDefinition">
<eventDefinitions xmi:type="bpmn2xmi:EscalationEventDefinition">
<xsl:call-template name="EscalationEventDefinitionTemplate" />
</eventDefinitions>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:linkEventDefinition'">
+ <xsl:when test="self::bpmn2:linkEventDefinition">
<eventDefinitions xmi:type="bpmn2xmi:LinkEventDefinition">
<xsl:call-template name="LinkEventDefinitionTemplate" />
</eventDefinitions>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:messageEventDefinition'">
+ <xsl:when test="self::bpmn2:messageEventDefinition">
<eventDefinitions xmi:type="bpmn2xmi:MessageEventDefinition">
<xsl:call-template name="MessageEventDefinitionTemplate" />
</eventDefinitions>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:signalEventDefinition'">
+ <xsl:when test="self::bpmn2:signalEventDefinition">
<eventDefinitions xmi:type="bpmn2xmi:SignalEventDefinition">
<xsl:call-template name="SignalEventDefinitionTemplate" />
</eventDefinitions>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:terminateEventDefinition'">
+ <xsl:when test="self::bpmn2:terminateEventDefinition">
<eventDefinitions xmi:type="bpmn2xmi:TerminateEventDefinition">
<xsl:call-template name="TerminateEventDefinitionTemplate" />
</eventDefinitions>
</xsl:when >
- <xsl:when test="name() = 'bpmn2:timerEventDefinition'">
+ <xsl:when test="self::bpmn2:timerEventDefinition">
<eventDefinitions xmi:type="bpmn2xmi:TimerEventDefinition">
<xsl:call-template name="TimerEventDefinitionTemplate" />
</eventDefinitions>
@@ -1966,12 +1966,12 @@
<xsl:call-template name="NodeTemplate"/>
<xsl:for-each select="bpmndi:BPMNEdge|bpmndi:BPMNShape">
<xsl:choose>
- <xsl:when test="name() = 'bpmndi:BPMNEdge'">
+ <xsl:when test="self::bpmndi:BPMNEdge">
<planeElement xmi:type="bpmndixmi:BPMNEdge">
<xsl:call-template name="BPMNEdgeTemplate" />
</planeElement>
</xsl:when >
- <xsl:when test="name() = 'bpmndi:BPMNShape'">
+ <xsl:when test="self::bpmndi:BPMNShape">
<planeElement xmi:type="bpmndixmi:BPMNShape">
<xsl:call-template name="BPMNShapeTemplate" />
</planeElement>
diff --git a/org.eclipse.bpmn2.tools.xsltFromEcore/src/org/eclipse/bpmn2/tools/xsltFromEcore/jet/JetInput.java b/org.eclipse.bpmn2.tools.xsltFromEcore/src/org/eclipse/bpmn2/tools/xsltFromEcore/jet/JetInput.java
index 769405b..16dc214 100644
--- a/org.eclipse.bpmn2.tools.xsltFromEcore/src/org/eclipse/bpmn2/tools/xsltFromEcore/jet/JetInput.java
+++ b/org.eclipse.bpmn2.tools.xsltFromEcore/src/org/eclipse/bpmn2/tools/xsltFromEcore/jet/JetInput.java
@@ -21,38 +21,40 @@
import java.util.Map;
import org.eclipse.bpmn2.tools.xsltFromEcore.Processor;
+import org.eclipse.bpmn2.util.NamespaceHelper;
+import org.eclipse.bpmn2.util.XmlExtendedMetadata;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.util.BasicExtendedMetaData;
import org.eclipse.emf.ecore.util.ExtendedMetaData;
public class JetInput {
public JetInput(Processor processor) {
this.processor = processor;
+
+ // Register XMI and XML packages
EPackage pack = processor.mofBpmnModel.getPackage();
this.extendedMetadata.putPackage(pack.getNsURI(), pack);
- this.extendedMetadata.putPackage(
- pack.getNsURI().substring(0, pack.getNsURI().length() - 4), pack); // Hack: Also register non-XMI
+ this.extendedMetadata.putPackage(NamespaceHelper.xmiToXsdNamespaceUri(pack.getNsURI()),
+ pack);
pack = processor.mofBpmndiModel.getPackage();
this.extendedMetadata.putPackage(pack.getNsURI(), pack);
- this.extendedMetadata.putPackage(
- pack.getNsURI().substring(0, pack.getNsURI().length() - 4), pack); // Hack: Also register non-XMI
+ this.extendedMetadata.putPackage(NamespaceHelper.xmiToXsdNamespaceUri(pack.getNsURI()),
+ pack);
pack = processor.mofDiModel.getPackage();
this.extendedMetadata.putPackage(pack.getNsURI(), pack);
- this.extendedMetadata.putPackage(
- pack.getNsURI().substring(0, pack.getNsURI().length() - 4), pack); // Hack: Also register non-XMI
+ this.extendedMetadata.putPackage(NamespaceHelper.xmiToXsdNamespaceUri(pack.getNsURI()),
+ pack);
pack = processor.mofDcModel.getPackage();
this.extendedMetadata.putPackage(pack.getNsURI(), pack);
- this.extendedMetadata.putPackage(
- pack.getNsURI().substring(0, pack.getNsURI().length() - 4), pack); // Hack: Also register non-XMI
-
+ this.extendedMetadata.putPackage(NamespaceHelper.xmiToXsdNamespaceUri(pack.getNsURI()),
+ pack);
}
private Processor processor;
@@ -61,7 +63,7 @@
return processor.getMofContent();
}
- private ExtendedMetaData extendedMetadata = new BasicExtendedMetaData();
+ private ExtendedMetaData extendedMetadata = new XmlExtendedMetadata();
public String getElementName(EClass c) {
return getExtendedMetadata().getName(c);
@@ -143,7 +145,11 @@
}
public String getNamespace(EStructuralFeature feature) {
- return extendedMetadata.getNamespace(feature);
+ String result = extendedMetadata.getNamespace(feature);
+ if (result == null) {
+ result = extendedMetadata.getNamespace(feature.getEContainingClass());
+ }
+ return result;
}
diff --git a/org.eclipse.bpmn2.tools.xsltFromEcore/src/org/eclipse/bpmn2/tools/xsltFromEcore/jet/XMLToXMI.java b/org.eclipse.bpmn2.tools.xsltFromEcore/src/org/eclipse/bpmn2/tools/xsltFromEcore/jet/XMLToXMI.java
index 52b9ee9..d849919 100644
--- a/org.eclipse.bpmn2.tools.xsltFromEcore/src/org/eclipse/bpmn2/tools/xsltFromEcore/jet/XMLToXMI.java
+++ b/org.eclipse.bpmn2.tools.xsltFromEcore/src/org/eclipse/bpmn2/tools/xsltFromEcore/jet/XMLToXMI.java
@@ -47,8 +47,8 @@
protected final String TEXT_14 = NL + " <xsl:for-each select=\"";
protected final String TEXT_15 = "\">";
protected final String TEXT_16 = NL + " <xsl:choose>\t\t";
- protected final String TEXT_17 = " " + NL + " <xsl:when test=\"name() = '";
- protected final String TEXT_18 = "'\">" + NL + " <";
+ protected final String TEXT_17 = " " + NL + " <xsl:when test=\"self::";
+ protected final String TEXT_18 = "\">" + NL + " <";
protected final String TEXT_19 = " xmi:type=\"";
protected final String TEXT_20 = "xmi:";
protected final String TEXT_21 = "\">\t\t\t " + NL + "\t\t\t <xsl:call-template name=\"";
diff --git a/org.eclipse.bpmn2.tools.xsltFromEcore/src/org/eclipse/bpmn2/tools/xsltFromEcore/test/TestTransformationForthAndBack.java b/org.eclipse.bpmn2.tools.xsltFromEcore/src/org/eclipse/bpmn2/tools/xsltFromEcore/test/TestTransformationForthAndBack.java
new file mode 100644
index 0000000..795d4d4
--- /dev/null
+++ b/org.eclipse.bpmn2.tools.xsltFromEcore/src/org/eclipse/bpmn2/tools/xsltFromEcore/test/TestTransformationForthAndBack.java
@@ -0,0 +1,84 @@
+package org.eclipse.bpmn2.tools.xsltFromEcore.test;
+
+import java.io.File;
+import java.io.IOException;
+
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.validation.Schema;
+import javax.xml.validation.SchemaFactory;
+import javax.xml.validation.Validator;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.xml.sax.SAXException;
+
+public class TestTransformationForthAndBack {
+
+ private Transformer xml2xmi;
+ private Transformer xmi2xml;
+ private Validator bpmnXmlValidator;
+
+ @Before
+ public void setUp() throws TransformerConfigurationException, SAXException {
+ TransformerFactory transFact = TransformerFactory.newInstance();
+ this.xmi2xml = transFact.newTransformer(new StreamSource("result/XMIToXML.xslt"));
+ this.xml2xmi = transFact.newTransformer(new StreamSource("result/XMLToXMI.xslt"));
+ SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
+
+ File schemaLocation = new File("res/BPMN20.xsd");
+ Schema schema = factory.newSchema(schemaLocation);
+
+ bpmnXmlValidator = schema.newValidator();
+
+ }
+
+ private void processDirectory(File directory) throws TransformerException, SAXException,
+ IOException {
+ File[] content = directory.listFiles();
+ for (File subFile : content) {
+ if (subFile.isDirectory()) {
+ processDirectory(subFile);
+ } else if (subFile.getName().endsWith(".bpmn")) {
+ processBpmnFile(subFile);
+ } else if (subFile.getName().endsWith(".bpmn2xmi")) {
+ processBpmnXmiFile(subFile);
+ }
+ }
+
+ }
+
+ private void processBpmnFile(File subFile) throws TransformerException, SAXException,
+ IOException {
+
+ StreamSource streamSource = new StreamSource(subFile.getAbsolutePath());
+ bpmnXmlValidator.validate(streamSource);
+ xml2xmi.transform(streamSource, new StreamResult(subFile.getAbsolutePath() + ".bpmn2xmi"));
+ }
+
+ private void processBpmnXmiFile(File subFile) throws TransformerException, IOException {
+ String resultFile = subFile.getAbsolutePath() + ".bpmn2";
+ xmi2xml.transform(new StreamSource(subFile.getAbsolutePath()), new StreamResult(resultFile));
+ StreamSource bpmn2File = new StreamSource(resultFile);
+ try {
+ bpmnXmlValidator.validate(bpmn2File);
+ } catch (SAXException e) {
+ System.out.println("Validation problems in " + resultFile);
+ System.out.println(e.toString());
+ }
+
+ }
+
+ @Test
+ public void testTransform() throws TransformerException, SAXException, IOException {
+ File resDirecty = new File("res");
+
+ processDirectory(resDirecty);
+
+ }
+
+}
diff --git a/org.eclipse.bpmn2.tools.xsltFromEcore/templates/BPMN20-ToXMI.xsltjet b/org.eclipse.bpmn2.tools.xsltFromEcore/templates/BPMN20-ToXMI.xsltjet
index b06439a..ba4fec4 100644
--- a/org.eclipse.bpmn2.tools.xsltFromEcore/templates/BPMN20-ToXMI.xsltjet
+++ b/org.eclipse.bpmn2.tools.xsltFromEcore/templates/BPMN20-ToXMI.xsltjet
@@ -54,7 +54,7 @@
<%if(input.hasSubFeatures(feature)){ %>
<xsl:choose>
<%for(EStructuralFeature subFeature: input.getAllSubFeatures(feature)) {%>
- <xsl:when test="name() = '<%=input.getXPathForXml(subFeature)%>'">
+ <xsl:when test="self::<%=input.getXPathForXml(subFeature)%>">
<<%=feature.getName()%> xmi:type="<%=input.getPrefix(subFeature)%>xmi:<%=subFeature.getEType().getName()%>">
<xsl:call-template name="<%=subFeature.getEType().getName()%>Template" />
</<%=feature.getName()%>>