Element has a derived composition association to itself to support the general capability for elements to own other elements.
Attributes
No additional attributes.
Associations
not self.allOwnedElements()->includes(self)
self.mustBeOwned() implies owner->notEmpty()
Element::allOwnedElements(): Set(Element);
allOwnedElements = ownedElement->union(ownedElement->collect(e | e.allOwnedElements()))
not require an owner must override this operation.
Element::mustBeOwned() : Boolean;
mustBeOwned = true
Subclasses of Element will provide semantics appropriate to the concept they represent.
The derived ownedElement association is subsetted (directly or indirectly) by all composed association ends in the metamodel. Thus ownedElement provides a convenient way to access all the elements that are directly owned by an Element.
Notation
There is no general notation for an Element. The specific subclasses of Element define their own notation.