@startuml
skinparam classAttributeIconSize 0
hide methods

abstract class HasExtensions <<abstract>> {
  +extension: Extension[0..*] 
}
abstract class Referable <<abstract>> {
  +category: NameType[0..1] 
  +idShort: IdShortType[0..1] 
  +displayName: MultiLanguageNameType[0..1] 
  +description: MultiLanguageTextType[0..1] 
}
class Extension<HasSemantics> {
  +name: NameType 
  +valueType: DataTypeDefXsd[0..1] 
  +value: ValueDataType[0..1] 
  +refersTo: Reference[0..*] 
}
HasExtensions ..> Extension
HasExtensions <|-- Referable
@enduml