For each template type a specific descriptor element is used to map between the template, the meta model element and the tool definition.
An EdgeDesc element is like the Node– and CompartmentDesc “element based”. This means that an EClass which represents a connection must exist in the meta model. It has to be contained in the root or a compartment element and must have two references (e.g. “from” and “to”) to EClasses representing the source and the target node. It is mapped by the EdgeDesc element to an EdgeTemplate.
In opposite to the EdgeDesc element the ReferenceEdgeDesc maps an EReference (from one EClass to an other (target) EClass) to an EdgeTemplate. A ReferenceEdgeDesc cannot contain LabelDesc elements (this is a GMF restriction).
A NodeDesc element represents a node on the canvas. It is associated with an EClass from the meta model as well as a NodeTemplate.
In addition to the functionality provided by the NodeDesc a CompartmentDesc allowes you to model a containment relationship in your editor. Per default this will be shown as an inner rectangle in your figure where you can place other nodes. The allowed possibilities are modeled using CompartmentChildDesc elements.
A CompartmentDesc element contain one or more CompartmentChildDesc elements. These reference all allowed child entries for the compartment.
A LabelDesc is allowed as child element for all “element based” descriptors which are NodeDesc, CompartmentDesc as well as EdgeDesc. The element references a Label description inside the Template which is referenced by the parent and maps it to a feature from the EClass which is referenced by the parent too.