The DaVinci Modeling Language (DML) provides generic representations of all AUTOSAR objects. The generic objects are based on the following basic constructs:
Attributes
Attributes are simple key/value pairs. The key always starts with a lower-case letter. The value is either a numeric, string or enumerator value.
featureName : value
Example
descDE : "Beschreibung"
Single Child Features
Single child features are objects or references which occur only once inside a parent object.
featureName (Object|Reference)
Example 1
ModeDeclaration One {
value : 1
}
Example 2
processStateMachine ModeDeclarationGroupPrototype MyPrototype {
type -> /package/element
}
List Features
List features are lists of either objects or references.
featureName [
(Object|Reference)*|PrimitiveList
]
Example
constantReferenceElements [
-> /package/element1
-> /package/element2
]
References
References describe a reference to an instance of an object in the model. The Type of a reference must be the absolute path of the referenced object in the model starting with a /.
(ClassName|featureName)? -> Type
Example 1
TimingVariableARRef -> /package/element
Example 2
type -> /package/element
Example 3
-> /package/element
Objects
Objects are the actual entities in the model. For convenience, the optional Name and DataType are contained in the object definition (contrary to the AUTOSAR model where these are part of the objects features).
ClassName DataType? name? {
(Attribute|SingleChild|List)*
}
Example 1
events [
Event /AUTOSAR/StdTypes/doubledTypes/bool something {}
]
Example 2
PersistencyKeyValuePair myPersistencyKeys {
initValue ArrayValueSpecification {
[…]
}
}
Example 3
MixedTextItem {
value : "a"
}
PrimitiveLists
PrimitiveLists are lists of primitives, such as integers, doubles, booleans, enumerations or strings.
1, 2, 3
1.0, 2.5, 3.141
true, false, true
HIGH, MEDIUM, LOW
"one", "two", "three"
Example 1
transportProtocols [
"a" , "b" , "c" , "d"
]
Example 2
numericalValueSpecificationElements [
false , true , 0 , 0.0 , "1+true"
]