Community
Participate
Working Groups
The XSD provides these structural means to support BPMN2 extensibility: BaseElement.anyAttribute ExtensionElements: [0..*] "any" elements (The type ExtensionElements appears in BaseElement.extensionElements[0..1]). (Both, extension attributes and elements must be from namespace ##other, i.e. they have to be namespace-qualified with a namespace other than that of bpmn2.) We need to determine their mapping to XMI (ExtensionDefinition, ExtensionAttributeDefinition, ExtensionAttributeValue), see chapter 8.2.3 of specification. On first glance, this does not seem obvious for all elements (ExtensionElement<=>?).
Created attachment 182713 [details] Sample BPMN file containing extension (file coming from Signavio BPMN modeler)
I found the first real live sample with extensions and try now to implement the first step torwards extensibility.
Created attachment 182906 [details] BPMN Example that uses an extension scheme (see other attachement) and sub classing.
Created attachment 182907 [details] Extension Schema for Sample+Instance.bpmn2 The two files added are an extensibility example from BPMN 2.0 Beta 1, slidely adapted to the final Beta 2. I'm working to support to read that file at least partly.
With http://git.eclipse.org/c/bpmn2/commit/?id=8f4de97796799026cf92f112466ab2ec7ed29b3c I commited the first part for extensibiltity. It allows to read the Signavio sample without errror. Extensions are read correctly into ExtesionAttributValue.value. They are however lost on save. In the other example only the Sub classing extensions are not considered yet. Converting an XML extension to an XMI extension (and vice versa) is also a more complicated thing to achive.
Commit c11a2a04b94948263806914df1beb3fb1b928bf6: Implement Extensibility Part 2: * Fix and extend the metamodel at some places, e.g. ExtendedMetadata was missing for all enums * Add new MM attribute Extensions.xsdDefinition that receives the QName for the extension XSD element * In XmlHandler resolve this URI via xsi:schemaLocation and covert the schema lo temporary Ecore on the fly This allows sub classing extensions to be read and written. Still missing: * Unit test * Correct save of "untyped" extension. In the moment they look strange. * Transformation to XMI extensibility model.
With commit 640eccaf99f1da725a66a9367171b76aa75b3bf6 we have some regression tests. The only remaining topic is transformation between XMI and XML extensibility. This is considered as an extra feature that is not mandatory for release 1. Closing issue.
Reiner, can you please show a full example of creating extension elements in eclipse bpmn2? I am still struggling to understand from this jira. Thanks!
(In reply to comment #8) > Reiner, can you please show a full example of creating extension elements in > eclipse bpmn2? I am still struggling to understand from this jira. > > Thanks! Sorry, I'm spending less time with BPMN in the last weeks. I try to provide some example for your.