The EA Message Composer is a schema composer add-in for Enterprise Architect.

The add-in extends the new Schema Composer feature that was added in Enterprise Architect v12, but it needs v 12.1.1226 or higher to function correctly.

The Schema Composer feature allows to cherry pick elements, attributes and relations from a source model, often the common, or canonical model.

With the EA Message Composer you can then create a subset model that is a copy of all elements, attributes and associations selected in the Schema Composer. The subset model retains full traceability to the source model on elements, but also on attributes and relations.

Common and Subset model



EA Message Composer requires .Net framework 4.5 which is already installed on most Windows installations.


EA Message Composer is part of the Bellekens EA Toolpack which includes other useful add-ins such as

When installing you can choose which of the tools you wish to install.


Start the Schema Composer in EA using the menu option Tool|Schema composer

New Schema Composer

Then click on the new button and choose for either a schema or a model transform to create a new schema.

New Schema Composedetails

Fill in the message name and choose EA Message Composer for Schema Set. Then select a model artifact to store the profile.

Then you can start building your message.  Start by dragging a class from the project browser onto the left pane in the schema composer.

Schema Composer with main class

Then select the attributes and associations you want to use in your message. As you do this the related classes will be added to the left pane, and you can select attributes and/or associations from those added classes as well. When you are the finished the schema on the right side shows the structure of the message.

Schema completed view

Now click on the Generate button to start the generation of the subset model and select ECDM Message.

Export schema

Then select the package where the subset should be stored.

Select package

If there are already classes in that package you will get the option to either update the subset model, or create a new subset model. Updating the subset model will delete any classes that don’t belong in the subset, except those with a stereotype defined in the settings.

The result is a a partial copy of the source model with only those attributes and associations that have been selected in the message composer.

Subset result


In the schema Composer you can Redefine elements and give them another name.


In the redefined element you can select another set of attributes and associations.

This mechanism really becomes interesting when used in Restrictions.


If you right click on an attribute or association you can restrict that attribute or association.


You can either change the Cardinality to make it more strict (not less strict) then original, or you can use a Redefined class instead.

For Associations you can also use the option As choice of. This will only work if you first drag the subclasses of the class you are linking to to the schema composer. If you do that you can select one or more subclasses of the target of the association.


The resulting subset will then replace the original association to the superclass by associations to the selected subclasses.



The subset keeps track of the source model element on the level of Class, Attribute and Association.

Classes have a «trace» relation to their source element

Class Traceability

Attributes and Associations use tagged values sourceAttribute and sourceAssociation to reference the source attribute or association.The easiest way to use those references to find the source attribute or association to is to use the EA Navigator



From the Specialize|EA Message Composer|Settings menu option you can open edit the settings.

General Options

  • Check security locks
    Only useful in case you are using EA security with the option Require User Lock to EditIn this case it will check if the target package is locked by the current user and if not it will try to lock it. If that doesn’t work because someone else has locked the target package an error message will be shown
  • Delete unused subset elements
    Checks the subset for any elements that are not used by any other elemment in the subset, either via an association, or as the type of an attribute. Useful in case the subset you are creating is meant to represent a message and you want to avoid noise.
  • Use Package Structure for subset determination
    Will use the packages structure to determine which elements belong to the subset. If left unchecked the subset will be determined by following all links of a certain element found in the subset package. In most cases this option should be used and will result in better performance. Only in cases where you are using the subset for message modelling, and the elements in the subset are not in the same package tree as the package chosen for the subset this option should be turned off.
  • Generate to profile pacakge only
    Generates the subset to the package the profile artifact is located in
  • Use alias for redefined elements
    If an element is redefined, it is generated not with the name of the redefined item, but with it’s original name. The name given in the redefinition will be used as alias

Inheritance Options

  • Copy External Generalizations
    Copies the generalizations of the source elements to elements outside of the selected subset
  • Redirect Generalizations to subset
    In case the Generalizations are being copied to the subset the tool will check if the parent is in the subset as well. In that case the Generalization will be redirected to the element in the subset
  • Ignore inheritance selection
    If both the subclass and the superclass are selected in the subset, the generalization will be copied, regardless of the selection in the Schema Composer

Notes options

  • Keep Notes in Sync
    Overwrites the notes of the subset elements on each generation with the notes of the source element.
  • Prefix Notes
    Will add a prefix to all notes copied to elements, attributes and associations in the subset to distinguish them from the original notes in the source model

Datatype Options

  • Copy datatypes to subset
    Will copy any UML datatypes found in the schema to the subset. If left unchecked datatypes are not copied tot the subset.
  • Limit Datatypes to copy
    Can be used to determine an exact list of datatypes that should be copied to the subset. Any datatypes not in the list will not be copied to the subset.
  • Copy Generalizations
    Will copy generalizations of datatypes that have been copied to the subset.

Diagram Options

Diagram options are only valid for new diagrams, or for elements not on the diagram already. Once a diagram has been generated only new elements will be added (tot the top left corner) in order to maintain any layout work done on the diagram.

  • Add Datatypes
    Adds the datatypes to the generated subset diagram
  • Add source elements
    Adds the source elements from which the elements in the subset have been generated to the subset diagram
  • Hidden Element Types
    List of element types or stereotypes that will not be displayed on the subset diagram.


  • Ignored Stereotypes
    Can be used to identify classes that should be ignored by the EA Message Composer
  • Ignored Tagged Values
    Tagged values in this list will not be overwritten by te EA Message composer
  • Ignored Constraints
    Constraints with these names will not be overwritten upon generation

Traceability tags

  • Attribute Tag
    The name of the tag that references the source attribute from which a subset attribute was generated
  • Association tag
    The name of the tag that references the source association from which this subset association was generated


  • Synchronized Tagged Values
    Synchronized tagged values are meant for RefGUID type tagged values that reference an attribute, association or element in the same model. The generator checks of the referenced item has an equivalent in the subset model. If that is the case, the reference is redirected to this equivalent. If that is not the case the tagged value will be not be copied to the subset model.

Attribute options

  • Add new attributes at the end
    New attributes are always added to the end of existing subset elements
  • Keep original attribute order
    Attributes keep the order of the source element. New attributes will be inserted into existing subset elements in the order they were in the source element.
  • Set attributes order to 0
    Resets the attrribute order to 0 for all attributes. The order will default to alphabetical

XML Schema Options

  • Do not create Attribute dependencies
    Will avoid creating dependencies to visualize the relation between the attributes in the subset and their types. In case of using the EA Message composer with XML schema models, and generating XML Schema’s from the subset this option is best used as the dependencies seriously slow down XSD generation from the subset.
  • Order associations alphabetically
    Will set the position tag on the source of each association, ordered alphabetically, but starting after all attributes. The result when generating an XSD is that all attributes will be generated first, and after that all associations, but in alphabetic order.
  • Order associations between attributes
    Can be used to order the associations between the attributes instead of behind all attributes. The result will after generating the XSD will be that the associations and attributes as a whole are ordered alphabetically.
  • Order XmlChoice before attributes
    XmlChoice elements are sorted before any attributes or associations
  • Use Tagged Values instead of Trace
    Use a tagged value with the given name to trace elements back to their source element. This avoids validation warnings when generating an XML Schema
  • Translate multiplicity to use tag on XSDAttributes
    Attribute multiplicity will be translated in the use tagged value. Optional attributes (lowerbound = 0) will get the value “optional”. Mandatory attributes (lowerboun = 1) will get the value “required”
  • Custom Order Tag
    The name of the tag used to specify a custom order other then alphabetic.


EA Message Composer has been developed with the support of: