Based on the extension capabilities of BPMN and CMMN the following changes need to be done:
- Add two rows to table 3
- Add a new figure of the metamodel showing the relation between DMNElement and the extension mechanism in section 6.3
- Figure 15 – DMNElement class diagram needs to be updated with ExtensionElements and ExtensionAttribute depiction.
- A complete new section 6.3.14 Extensibility needs to be added. This will have a ripple effect on table and figure numbering. Figure of the metamodel should be inserted after the first paragraph of section 6.3.14, in the metamodel we need to add the two classes described
- Some changes needed to DMN.xsd, which already contains this mechanism
|extensionElements: ExtensionElement [0..1]||This attribute is used as a container to attach additional elements to any DMN Element. See section 6.3.14 for additional information on extensibility.|
|extensionAttributes: ExtensionAttribute [0..*]||This attribute is used to attach named extended attributes and model associations. This association is not applicable when the XML schema interchange is used, since the XSD mechanism for supporting "anyAttribute" from other namespaces already satisfies this requirement. See section 6.3.14 for addition information on extensibility.|
3. "Figure 15 - DMNElement Class Diagram" needs to be updated to show the associations to ExtensionElement and ExtensionAttribute.
[See DMN11-122 for updated image.]
The DMN metamodel is aimed to be extensible. This allows DMN adopters to extend the specified metamodel in a way that allows them to be still DMN-compliant. It provides a set of extension elements, which allows DMN adopters to attach additional attributes and elements to standard and existing DMN elements. This approach results in more interchangeable models, because the standard elements are still intact and can still be understood by other DMN adopters. It’s only the additional attributes and elements that MAY be lost during interchange.
Figure Extensibility metamodel
A DMN extension can be done using two different elements:
ExtensionElements is a container for attaching arbitrary elements from other metamodels to any DMN element. ExtensionAttribute allows these attachments to also have name. This allows DMN adopters to integrate any metamodel into the DMN metamodel and reuse already existing model elements.
The ExtensionElements element is a container to aggregate elements from other metamodels inside any DMNElement. Table A presents the attributes and model associations for the ExtensionElements element.
Table A - ExtensionElements attributes and model associations
|element: Element [0..*]||The contained Element. This association is not applicable when the XML schema interchange is used, since the XSD mechanism for supporting "any" elements from other namespaces already satisfies this requirement.|
The ExtensionAttribute element contains an Element or a reference to an Element from another metamodel. An ExtensionAttribute also has a name to define the role or purpose of the associated element. This type is not applicable when the XML schema interchange is used, since the XSD mechanism for supporting "anyAttribute" from other namespaces already satisfies this requirement. Table B presents the model associations for the ExtensionAttribute element.
Table B – ExtensionAttribute attributes and model associations
|name: string||The name of the extension attribute.|
|value: Element [0..1]||The contained Element. This attribute MUST NOT be used together with valueRef.|
|valueRef: Element [0..1]||A reference to the associated Element. This attribute MUST NOT be used together with value.|
(The DMN 1.0 schema already contained parts of the extension mechanism of BPMN.)