Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[bpmn-dev] Two questions regarding output of the eclipse.bpmn2 api

Hi guys, I am using eclipse.bpmn2 api to produce bpmn2 for the jBPM5 project and ran into two issues I would love to have some insight on.
Both questions are concerning the following example output:

<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.omg.org/bpmn20" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:drools="http://www.jboss.org/drools" id="6018529e-e1db-4fc7-abff-c8574c49e754" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd" name="sa" targetNamespace="http://www.omg.org/bpmn20">
   <bpmn2:itemDefinition id="_xItem" structureRef="String"/>
      <bpmn2:process id="sa" drools:packageName="defaultPackage" drools:version="1" name="sa" isExecutable="true">
         <bpmn2:startEvent id="_0495796B-D9E5-4079-A6A9-EF9706011D7E" name="">
            <bpmn2:outgoing>_93664981-BF49-45BD-BED6-35CC0E512DEF</bpmn2:outgoing>
         </bpmn2:startEvent>
         ...
         <bpmn2:property id="x" itemSubjectRef="_xItem"/>
     </bpmn2:process>
...
</bpmn2:definitions>

1) The first problem I have is the id attribute of the definitions element. I do not know what in the ecore model controls its type. In BPMN20.ecore there is a Definitions element defined which extends from BaseElement, however changing the type of the id of BaseElement from EString to NCName (which is really needed here..the id should NOT start with a number) changes the type of all elements in the document EXCEPT the definitions element. Could someone please tell me what part of the ecore model determines the type of the id attribute of the definitions element?

2) The produced bpmn2 in my case has a big problem, in that it does not conform to Semantics.xml. Specifically Semantics.xml defines a sequence for the process element:

<xsd:element name="process" type="tProcess" substitutionGroup="rootElement"/>
<xsd:complexType name="tProcess">
<xsd:complexContent>
<xsd:extension base="tCallableElement">
<xsd:sequence>
<xsd:element ref="auditing" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="monitoring" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="laneSet" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="flowElement" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="artifact" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="supports" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="processType" type="tProcessType" default="none"/>
<xsd:attribute name="isClosed" type="xsd:boolean" default="false"/>
<xsd:attribute name="definitionalCollaborationRef" type="xsd:QName" use="optional"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>


but as you can see for example eclipse.bpmn2 api produce output that does not follow this sequence (the property elements for example are placed as last ones).
This forces me to turn of xml validation alltogether when trying to execute the bpmn2 in runtime engines such as jBPM.
Is there a setting or anything else that forces the output xml to conform the the schemas I assume were used to create the ecore model?

I opened two questions on the user forums on this, but am getting no traction so asked Antoine and he recommended me to try this list.

Any inputs on this are very very welcome. I am willing to do any bug fixes and contribute patches in case any of these are actually bugs..so in that case just guidance is needed :)

Thanks!
tsurdilo

Back to the top