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"
]