Skip to content

ADL Syntax ​

  • Terminal symbols are written in bold.
  • Non-terminal symbols are written in cursive.
  • The end of a "production rule" is indicated by a single dot . symbol.
  • Parts between square brackets [ ] are considered optional and can be used once (i.e. zero to one).
  • Parts between curly brackets { } are considered optional and are repeatable (i.e. zero to many).
  • Alternatives are separated by a vertical bar |.
  • Three dots ... are used as placeholders to be replaced appropriate to the meaning (e.g. number value ranges).
  • A boldly written Attention: is not a terminal symbol, but provides important information.

The syntax of the language for ADL files is based on the following grammar:

Non-terminalDefinition
adl-file :[ version ] attrprofs models application-models modelgroups .
version :VERSION identifier .
attrprofs :{ attributeprofileinstance } | { attributeprofile-hierarchy } .
attributeprofileinstance :attributeprofile-definition { instanceattribute_setting } .
attributeprofile-definition :ATTRIBUTEPROFILE identifier ':' identifier ':' identifier [ version ] .
attributeprofile-hierarchy :{ ROOTATTRPROFDIR identifier ':' identifier { attributeprofile } { attributeprofile-directory } } .
attributeprofile :attributeprofile-def2 { instanceattribute_setting } .
attributeprofile-def2 :ATTRIBUTEPROFILE identifier ':' identifier [ version ] .
attributeprofile-directory :ATTRPROFDIR identifier ':' number { attributeprofile } .
models :{ we-model | bp-model } .
we-model :wem-definition { instanceattribute_setting } model .
bp-model :bpm-definition { instanceattribute_setting } model .
wem-definition :( WORKING ENVIRONMENT MODEL identifier ':' identifier |( WORKING ENVIRONMENT MODEL identifier ':' identifier [ version ] TYPE identifier ) .
bpm-definition :( BUSINESS PROCESS MODEL identifier ':' identifier |( BUSINESS PROCESS MODEL identifier ':' identifier [ version ] TYPE identifier ) .
model :{ instance } { relation } .
instance :instance-definition { instanceattribute_setting } .
instance-definition :INSTANCE identifier ':' identifier .
relation :relation-definition { instanceattribute_setting } .
relation-definition :RELATION identifier FROM identifier ':' identifier TO identifier ':' identifier .
instanceattribute_setting :ATTRIBUTE identifier VALUE attrval .
application-models :{ application-model-definition model-attachments } .
application-model-definition :APPLICATION MODEL identifier ':' identifier .
model-attachments :{ BUSINESS PROCESS MODEL identifier [ version ] TYPE identifier } WORKING ENVIRONMENT MODEL identifier [ version ] TYPE identifier { BUSINESS PROCESS MODEL identifier [ version ] TYPE identifier } | BUSINESS PROCESS MODEL identifier [ version ] TYPE identifier { BUSINESS PROCESS MODEL identifier [ version ] TYPE identifier } .
modelgroups :{ ROOTMODELGROUP identifier ':' identifier { reference } { hierarchy } } .
reference :BUSINESS PROCESS MODEL identifier TYPE identifier | WORKING ENVIRONMENT MODEL 'identifier TYPE identifier .
hierarchy :MODELGROUP identifier ':' number { reference } .
identifier :'<' any_characters_but_newline '>' .
attrval :number | '"' any_characters '"' | recordval .
recordval :{ RECORD { ATTRIBUTE identifier VALUE val } END } .
val :number | '"' any_characters '"' .

In case of text being too long, the value represented by val will be split in the ADL file as follows: The end of a line is denoted by a '"', then, at the beginning of the next line (after some blanks) there is another '"' and then the text continues (insert the string ", \n and " between the splitted val parts).

Meaning of the values:

  • AttrProfileName contains the name of the ADOxx attribute profile.
  • AttrProfileClassName contains the name of the ADOxx attribute profile classes.
  • LibName contains the name of the ADOxx application library, on which the ADOxx attribute profile, the attribute profile of the ADOxx attribute profile group, or the ADOxx model are based.
  • AttrProfileGroupName contains the name of the ADOxx attribute profile group.
  • ModelName contains the name of the ADOxx model.
  • ModelTypeName contains the name of the model type.
  • ObjName contains the name of the object.
  • ClassName contains the name of the class.
  • RelName contains the name of the relation.
  • AttrName contains the name of the attribute.
  • ApplModelName contains the name of the ADOxx-application model.
  • ModelGroupName contains the name of the ADOxx-model group.

Hint

If in the above value the sharp brackets (>) are contained, they must be masked i.e. instead of '>' the '\>' must be quoted.

Hint

If the value text is written in quotation marks ("), they must be masked i.e. instead of ' " ' the ' \" ' must be quoted.

Hint

If the backslashes (\) are part of the value, they must be masked i.e. instead of '\' the '\\' must be quoted.

The value VersNr contains the version number i.e. the ADOxx version, with which the ADL export will be executed.

The value Depth says, on which hierachical level the attribute profile group and the modelgroup are situated and it contains a figure greater than or equal to 1.

The value number contains an integer or a floating-point number.

The value text contains a concrete attribute value of a defined ADOxx attribute type, but with an exception for the attribute type "integer" or "floating-point number".