attribute-definition-features

Available in: SysML

This checks that all attribute definition features are referential (non-composite).

Note that Syside auomatically marks usages owned by an attribute definition as non-composite, so owned features can never trigger this diagnostic. It may still be triggered by inherited features.

Specification

All features of an AttributeDefinition must be non-composite.

Example

attribute def A {
    part p; // ok: implicitly referential in Syside
}

metadata def M;
#M def D { part p; }

attribute def B :> D; // error: Features inherited by an attribute definition must be referential

Add ref to inherited composite features:

metadata def M;
#M def D { ref part p; }

attribute def B :> D; // ok

Or remove specializations to types with composite features:

attribute def B; // ok

All validation rules