blob: c2a2658e88bee2afd057ffa5e7136f06ae184eae [file] [log] [blame]
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Overview</title>
<link href="book.css" rel="stylesheet" type="text/css">
<meta content="DocBook XSL Stylesheets V1.75.1" name="generator">
<link rel="home" href="index.html" title="OCL Documentation">
<link rel="up" href="index.html" title="OCL Documentation">
<link rel="prev" href="index.html" title="OCL Documentation">
<link rel="next" href="GettingStarted.html" title="Getting Started">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<h1 xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">Overview</h1>
<div class="chapter" title="Overview">
<div class="titlepage">
<div>
<div>
<h2 class="title">
<a name="Overview"></a>Overview</h2>
</div>
</div>
</div>
<div class="toc">
<dl>
<dt>
<span class="section"><a href="Overview.html#WhatisQVTd">What is QVT Declarative?</a></span>
</dt>
<dt>
<span class="section"><a href="Overview.html#WhatisQVTd">Syntax Clarification</a></span>
</dt>
</dl>
</div>
<div class="section" title="What is QVT Declarative?">
<div class="titlepage">
<div>
<div>
<h2><a name="WhatisQVTd"></a>What is QVT Declarative?</h2>
</div>
</div>
</div>
<p>
The QVT Declarative Project provides the Eclipse implementations of the OMG QVT Core and Relations languages.
</p>
(The QVT Operational project provides the QVT Operational language.)
</div>
</div>
<div class="section" title="Syntax Clarification">
<div class="titlepage">
<div>
<div>
<h2><a name="Syntax"></a>Syntax Clarification</h2>
</div>
</div>
</div>
<p>
The Core and Relations languages require an additional import statement to bind the metamodel name to an external package.
</p>
<pre>
import SimpleUML : 'SimpleUml.ecore'::umlMM;
</pre>
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.
<pre>
import SimpleUML : 'SimpleUml.ecore#/';
</pre>
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.
<h3>QVT core middle metamodel</h3>
The middle metamodel is the unnamed metamodel used in where clauses. This may be bound to an external metamodel by an anonymous import.
<pre>
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;
}
</pre>
</div>
</div>
</body>
</html>