Domain-Specific Language Tools Glossary

This is a list of terms relating to domain-specific languages.

compartment shape

A shape that includes one or more compartments. A compartment can display a list of elements. The shape can be mapped to a domain class, and each compartment can be mapped to a relationship.


A condition that defines whether a model is well-formed. Every constraint is implemented in a validation method.

debugging project

The Visual Studio project that is opened in an experimental instance of Visual Studio when you run a DSL project in debug mode.

designer definition

An XML file that contains information about a domain-specific language. It has the file name extension .dsl.

domain model

The representation of a domain-specific language. It includes domain classes, domain relationships between the domain classes, and domain properties on the domain classes.

domain class

A domain model element that represents an entity in a domain-specific language.

domain model element

An element of a domain-specific language. Domain model elements include domain classes, domain relationships, connectors, and shapes.

domain path

The path syntax that is used to locate model elements in a domain-specific language model. Domain paths use the following format: RelationshipName.RolePropertyName\!RoleName.

domain relationship

A domain model element that represents an embedding or reference relationship in a domain-specific language.

domain-specific language

A custom language that is created for a specific problem domain, and that defines entities and relationships in terms of that domain.

Domain-Specific Language Designer

The graphical editor that is used to define a domain-specific language in Visual Studio.

Domain-Specific Language Designer Wizard

The wizard that is used to create a domain-specific language solution in Visual Studio.

Domain-Specific Language Tools

The set of tools that is used to create domain-specific languages. The tools include the Toolbox, the diagram, the DSL Explorer, and the DSL Details window.

element merge directive

A setting that defines how an element or group of elements should be combined when they are added to the domain model. Element merge directives are called when a model element is added from the Toolbox or in a paste operation.

embedding relationship

A domain relationship in which one domain class or domain relationship is defined as the parent of another.

experimental build

An instance of Visual Studio that uses a special registry hive so that developers can debug solutions in an isolated environment.

generated API

Code that is generated from a domain model, and which allows you to write code to access instances of the domain model.

generated designer

The graphical domain-specific language designer that is created by using Domain-Specific Language Tools.

generated directive processor

The directive processor that is automatically generated for a domain-specific language solution. This directive processor uses text templates to process information from the model.

In-memory store

The in-memory cache in which the model is stored. See also store.

model element

An instance of a domain class in a generated domain-specific language designer.

reference relationship

A domain relationship between two domain classes that are not related by embedding.


One of the ends (source or target) of a relationship. Properties of a role include its multiplicity and its role player.

role player

A domain class that plays a role in a relationship. A domain class can be a role player for many roles.


The cache in which the model is stored. See also in-memory store.


A horizontal or vertical line that divides the diagram into partitions.


A mechanism by which a set of changes can be committed or rolled back in a single operation. Use transactions to wrap changes made to a model in custom code.


Well-formedness constraints on the model. The domain-specific language framework uses built-in constraints and custom constraints to validate models.

Community Additions