A collection of boolean flags:
abstract- Specifies that this package element is abstract. For packages and flows it means that they contain abstract elements and must be extended to become concrete. If a package or a flow contains abstract elements and does not have abstract modifier, it is diagnosed as an error. If concrete packages and flows extend abstract ones they must override (implement) all abstract elements.
explicit-end- Applies to flows. Specifies that the end pseudo-state shall not be inferred by finding flow elements with no outputs. End will either be explicitly specified or the diagram will not have an end pseudo-state.
explicit-start- Applies to flows. Specifies that the start pseudo-state shall not be inferred by finding flow elements with no inputs. Start will either be explicitly specified or the diagram will not have a start pseudo-state.
final- Specifies that this flow element cannot be overridden in flows extending this flow. Overriding a final elemen will be diagnosed as an error. For example, in an organization some processes can be defined as flows at higher levels of the orgnization and extended at lower levels.
finalmodifier allows to specify what can be extended and what cannot. Specifying a top-level flow as final indicates that it cannot have extensions.
optional- Specifies that this element is optional. Optional elements have different apperance on diagrams.
extension- Specifies that this element is an extension for an element in one of extended packages/flows. If this modifier is present and
extendsreference is empty, then it results in a diagnostic error.
partition- Applies to flows and specifies that a flow shall be rendered as a partition (e.g. a composite state) on a diagram.
Keys of response artifacts relative to the containing package
If element’s URI is not set then its default value is derived from the container URI and containment reference. This is a logical URI and it can be used for cross-referencing of elements in a resource-independent fashion.