| <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> |