When using external libraries or defining your own types you usually refer to them inside your model. For example when using them as a type of an Attribute or as the type of an parameter in an Operation.
Often users tend to refer to these types with a string value in the Type field of the Attribute/Parameter.
By using a Primitve element inside your model, you can refere to it via an actual model reference.
This has the following advantages:
- You exaclty see which types are used inside your model
- Typing errors can be traced back to only one source
- Refactoring/renaming can be done by changing a single element
- Better tracebility
Since the code generation will use the "Normalized Name" for an element/type it is not always possible to write certain type and or keyword combinations.
To do this you can use a Primitve element, since the code generation will output the name of the element as it is (not using the "Normalized Name").
Normalized element name
all illegal characters are replaced by '_'.
Legal characters:
- first character: _ or [a-z] or [A-Z]
- following characters: _ or [a-z] or [A-Z] or [0-9]