Overview

Overview

What is QVT Declarative?
Syntax Clarification

What is QVT Declarative?

The QVT Declarative Project provides the Eclipse implementations of the OMG QVT Core and Relations languages.

(The QVT Operational project provides the QVT Operational language.)

Syntax Clarification

The Core and Relations languages require an additional import statement to bind the metamodel name to an external package.

import SimpleUML : 'SimpleUml.ecore'::umlMM;
specifies that a metamodel will be obtained from the SimpleUml.ecore file and then navigating from the document root to the nested element named umlMM, which should be a package. The referenced package is then associated with the SimpleUML metamodel identifier.
import SimpleUML : 'SimpleUml.ecore#/';
specifies that a metamodel will be obtained from the SimpleUml.ecore file and then navigating to the / fragment id, which should be a package. The referenced package is then associated with the SimpleUML metamodel identifier.

QVT core middle metamodel

The middle metamodel is the unnamed metamodel used in where clauses. This may be bound to an external metamodel by an anonymous import.
import SimpleUML : 'SimpleUml.ecore'::umlMM;
import SimpleUMLtoRDBMS : 'SimpleUMLtoRDBMS.ecore'::uml2rdbms;
import SimpleRDBMS : 'SimpleRdbms.ecore'::rdbmsMM;

transformation umlRdbms {
	uml imports SimpleUML;
	rdbms imports SimpleRDBMS;
	imports SimpleUMLtoRDBMS;
}