Transformations are performed from any number of source models into any number of target models, or may modify the source model only. These models can be instances of any metamodels – including proprietary metamodels.
Model transformations are specified using rulesets. Rulesets are a collection of rules that define the various steps that are needed in order to accomplish a transformation. Rules are implemented using a dedicated imperative language, the Model Query Language (MQL).
The Model Query Language (MQL) is an intuitive language for accessing and creating information in models. Constructs exist to easily iterate over collections of elements, and to simply retrieve values in the model without complex expressions or a difficult syntax.
Because both declarative and imperative each approaches have their own advantages, MDWorkbench brings to you the best of the two worlds by integrating ATL (http://www.eclipse.org/m2m/atl/), the Eclipse answer to the OMG MOF/QVT RFP. Declarative ATL modules can be easily mixed with imperative rulesets or Java code into MDWorkbench projects.