Map declaration0
map_decl = MAP map_head map_body END_MAP ';' .
map_head = [ NO_INHERITANCE | ON_CALL_ONLY ] [ map_name FOR ] [ map_entity ] ';' from_clause when_clause .
map_body = BEGIN_MAP [ algorithm_head ] { stmt } .
map_name = simple_id .
map_entity = extended_entity_ref .
algorithm_head = { declaration } [ local_decl ] .
declaraton = constant_decl | function_decl | procedure_decl
The MAP declaration specifies how source instances of one or more types are to be mapped to one or more instance types in the target model. A map declaration begins with the MAP keyword followed by a map header and a map body. The map is terminated with the END_MAP keyword.
The map header defines the instance types in the source model that should be mapped, and to which instance types in the target model they should be mapped. The condition under which the mapping should be performed, is defined as well.
The map body consists of statements that describe how the attribute values of the target instances are derived from the attribute values of the source instances. This is called attribute mapping. Optionally the map body can declare a local data area that can be used by the map body statements to complete the attribute mapping.
The scope of a map_name is the EDMexpressX mapping schema in which the map declaration occurs, i.e. the global scope of an EDMexpressX mapping schema.