Uploaded image for project: 'camunda BPM'
  1. camunda BPM
  2. CAM-4823

Propose DMN Extension Elements

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Closed
    • Priority: L3 - Default
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 7.4.0, 7.4.0-alpha3
    • Component/s: dmn-engine
    • Labels:
      None

      Description

      Resolution Summary

      Based on the extension capabilities of BPMN and CMMN the following changes need to be done:

      1. Add two rows to table 3
      2. Add a new figure of the metamodel showing the relation between DMNElement and the extension mechanism in section 6.3
      3. Figure 15 – DMNElement class diagram needs to be updated with ExtensionElements and ExtensionAttribute depiction.
      4. 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
      5. Some changes needed to DMN.xsd, which already contains this mechanism

      Revised Text

      1. In "Table 3 - DMNElement attributes and model associations" the following lines need to be added

      Attribute Description
      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.]

      4. The following sections need to be added to 6.3 (as 6.3.14)

      6.3.14 Extensibility
      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


      [This is just a draft. See DMN11-122 for updated image.]

      A DMN extension can be done using two different elements:

      1. ExtensionElements
      2. ExtensionAttribute

      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.

      ExtensionElements

      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

      Attribute Name Description/Usage
      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.

      ExtensionAttribute

      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

      Attribute Name Description/Usage
      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.

      5. XSD Schema Diff

      https://github.com/omg-dmn-taskforce/omg-dmn-spec/commit/ba6a97d468f52a021cadb43a514d901b2626457c
      (The DMN 1.0 schema already contained parts of the extension mechanism of BPMN.)

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              sebastian.menski Sebastian Menski
              Reporter:
              sebastian.menski Sebastian Menski
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: