<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<!-- This file was autogenerated on Sun Sep 21 12:49:39 BST 2008 by the org.eclipse.qvt.declarative.test.emof.qvtrelation.QVTRelationConsistencyTest.testQVTRelationConsistency() JUnit test -->
<html>
<head>
<title>QVTRelation Model Compliance</title>
<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
</head>
<body lang="EN-US">
<h1>QVTRelation Model Compliance</h1>
<p>
This document describes clarifications and fixes to
<ul>
	<li><a href="http://www.omg.org/docs/formal/06-01-01.pdf">OMG MOF 2.0 specification (06-01-01)</a></li>
	<li><a href="http://www.omg.org/docs/formal/06-05-01.pdf">OMG OCL 2.0 specification (06-05-01)</a></li>
	<li><a href="http://www.omg.org/docs/formal/08-04-03.pdf">OMG QVT 1.0 specification (08-04-03)</a></li>
</ul>
realised by the Ecore-based and EMOF-based QVTRelation models.
<p>
The EMOF-based <tt>QVTRelation</tt> model is intended to exactly comply with the spirit of the latest QVT specification;
the model therefore corrects numerous problems in the official QVT 1.0 models.
The EMOF-based model should be used for modelling, where accuracy is important.
<p>
The Ecore-based <tt>QVTRelation</tt> model is intended to provide identical behaviour subject to the replacement of
<ul>
	<li>the <tt>EMOF</tt> package by Ecore (from Eclipse EMF)</li>
	<li>the <tt>EssentialOCL</tt> package by the Ecore OCL package (from  Eclipse MDT).</li>
</ul>
The Ecore-based model should be used within tools, where the power of Ecore and its associated tooling is important.
<h2>EMOF-based Model Compliance with respect to the OMG QVT Rose Model</h2>
The OMG QVT Rose Model is the source of all diagrams in the QVT specification
and the notional source of all other generated models.
<p>
The Eclipse <tt>QVTRelation</tt> Model resolves the following errors
and anomalies in the OMG QVT Rose Model.
<p>
<br><tt>nsURI</tt> for <tt>QVTRelation</tt> is <tt>http://schema.omg.org/spec/QVT/1.0/qvtrelation.xml</tt> rather than <tt>http:///qvtrelation.ecore</tt>
<br><tt>nsPrefix</tt> for <tt>QVTRelation</tt> is <tt>qvtr</tt> rather than <tt>qvtrelation</tt>
<br><tt>name</tt> for <tt>QVTRelation</tt> is <tt>QVTRelation</tt> rather than <tt>qvtrelation</tt>
<br><tt>lowerBound</tt> for <tt>RelationCallExp.argument</tt> is <tt>2</tt> rather than <tt>0</tt>
<br><tt>lowerBound</tt> for <tt>RelationCallExp.referredRelation</tt> is <tt>1</tt> rather than <tt>0</tt>
<br><tt>OppositePropertyCallExp</tt> is defined
<br><tt>lowerBound</tt> for <tt>Key.part</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>Key.oppositePart</tt> is defined
<br>Unnavigable <tt>opposite</tt> of <tt>Key.oppositePart</tt> is modelled
<h2>EMOF-based Model Compliance with respect to the OMG Ecore Model</h2>
The OMG Ecore Models are notionally generated from the OMG QVT Rose Model.
<p>
The Eclipse <tt>QVTRelation</tt> Model resolves the following errors and anomalies in the corresponding OMG Ecore Model.
<p>
<br><tt>nsURI</tt> for <tt>QVTRelation</tt> is <tt>http://schema.omg.org/spec/QVT/1.0/qvtrelation.xml</tt> rather than <tt>http://www.schema.omg.org/spec/QVT/1.0/qvtrelation</tt>
<br><tt>nsPrefix</tt> for <tt>QVTRelation</tt> is <tt>qvtr</tt> rather than <tt>qvtrelation</tt>
<br><tt>name</tt> for <tt>QVTRelation</tt> is <tt>QVTRelation</tt> rather than <tt>qvtrelation</tt>
<br><tt>lowerBound</tt> for <tt>RelationCallExp.argument</tt> is <tt>2</tt> rather than <tt>0</tt>
<br><tt>lowerBound</tt> for <tt>RelationCallExp.referredRelation</tt> is <tt>1</tt> rather than <tt>0</tt>
<br><tt>containment</tt> for <tt>Relation.operationalImpl</tt> is <tt>true</tt> rather than <tt>false</tt>
<br><tt>transient</tt> for <tt>RelationImplementation.relation</tt> is <tt>true</tt> rather than <tt>false</tt>
<br><tt>ordered</tt> for <tt>Key.part</tt> is <tt>false</tt> rather than <tt>true</tt>
<br><tt>ordered</tt> for <tt>Relation.operationalImpl</tt> is <tt>false</tt> rather than <tt>true</tt>
<br><tt>ordered</tt> for <tt>Relation.variable</tt> is <tt>false</tt> rather than <tt>true</tt>
<br><tt>ordered</tt> for <tt>RelationDomain.defaultAssignment</tt> is <tt>false</tt> rather than <tt>true</tt>
<br><tt>ordered</tt> for <tt>RelationalTransformation.ownedKey</tt> is <tt>false</tt> rather than <tt>true</tt>
<br>Unnavigable <tt>opposite</tt> of <tt>Relation.when</tt> is modelled
<br>Unnavigable <tt>opposite</tt> of <tt>Relation.where</tt> is modelled
<br>Unnavigable <tt>opposite</tt> of <tt>RelationDomain.defaultAssignment</tt> is modelled
<br>Unnavigable <tt>opposite</tt> of <tt>RelationDomainAssignment.valueExp</tt> is modelled
<br>Unnavigable <tt>opposite</tt> of <tt>RelationDomainAssignment.variable</tt> is modelled
<br><tt>OppositePropertyCallExp</tt> is defined
<br><tt>lowerBound</tt> for <tt>Key.part</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>Key.oppositePart</tt> is defined
<br>Unnavigable <tt>opposite</tt> of <tt>Key.oppositePart</tt> is modelled
<h2>EMOF-based Model Compliance with respect to the OMG EMOF Model</h2>
The OMG EMOF Model is notionally generated from the OMG QVT Rose Model.
<p>
The Eclipse <tt>QVTRelation</tt> Model resolves the following errors and anomalies in the corresponding OMG EMOF Model.
<p>
<br>The model namespace is <tt>http://schema.omg.org/spec/MOF/2.0/emof.xml</tt> rather than <tt>http://www.schema.omg.org/spec/MOF/2.0/emof.xml</tt>
<br><tt>xmi:type</tt> of <tt>Boolean</tt> is <tt>emof:PrimitiveType</tt> rather than <tt>emof:Class</tt>
<br><tt>xmi:type</tt> of <tt>Integer</tt> is <tt>emof:PrimitiveType</tt> rather than <tt>emof:Class</tt>
<br><tt>xmi:type</tt> of <tt>String</tt> is <tt>emof:PrimitiveType</tt> rather than <tt>emof:Class</tt>
<br><tt>xmi:type</tt> of <tt>UnlimitedNatural</tt> is <tt>emof:PrimitiveType</tt> rather than <tt>emof:Class</tt>
<br><tt>package</tt> of <tt>Boolean</tt> is <tt>emof</tt> rather than <tt>primitivetypes</tt>
<br><tt>package</tt> of <tt>Integer</tt> is <tt>emof</tt> rather than <tt>primitivetypes</tt>
<br><tt>package</tt> of <tt>String</tt> is <tt>emof</tt> rather than <tt>primitivetypes</tt>
<br><tt>package</tt> of <tt>UnlimitedNatural</tt> is <tt>emof</tt> rather than <tt>primitivetypes</tt>
<p>
<br><tt>uri</tt> for <tt>QVTRelation</tt> is defined
<br><tt>name</tt> for <tt>QVTRelation</tt> is <tt>QVTRelation</tt> rather than <tt>qvtrelation</tt>
<br><tt>containment</tt> for <tt>Relation.operationalImpl</tt> is <tt>true</tt> rather than <tt>false</tt>
<br><tt>transient</tt> for <tt>Key.transformation</tt> is <tt>true</tt> rather than <tt>false</tt>
<br><tt>transient</tt> for <tt>RelationImplementation.relation</tt> is <tt>true</tt> rather than <tt>false</tt>
<br><tt>lowerBound</tt> for <tt>DomainPattern.templateExpression</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>lowerBound</tt> for <tt>Key.transformation</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>lowerBound</tt> for <tt>Relation.isTopLevel</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>lowerBound</tt> for <tt>Relation.operationalImpl</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>lowerBound</tt> for <tt>Relation.variable</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>lowerBound</tt> for <tt>Relation.when</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>lowerBound</tt> for <tt>Relation.where</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>lowerBound</tt> for <tt>RelationCallExp.argument</tt> is <tt>2</tt> rather than <tt>1</tt>
<br><tt>lowerBound</tt> for <tt>RelationDomain.defaultAssignment</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>lowerBound</tt> for <tt>RelationDomain.pattern</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>lowerBound</tt> for <tt>RelationImplementation.relation</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>lowerBound</tt> for <tt>RelationalTransformation.ownedKey</tt> is <tt>0</tt> rather than <tt>1</tt>
<br>Unnavigable <tt>opposite</tt> of <tt>Relation.when</tt> is modelled
<br>Unnavigable <tt>opposite</tt> of <tt>Relation.where</tt> is modelled
<br>Unnavigable <tt>opposite</tt> of <tt>RelationDomain.defaultAssignment</tt> is modelled
<br>Unnavigable <tt>opposite</tt> of <tt>RelationDomainAssignment.valueExp</tt> is modelled
<br>Unnavigable <tt>opposite</tt> of <tt>RelationDomainAssignment.variable</tt> is modelled
<br><tt>OppositePropertyCallExp</tt> is defined
<br><tt>lowerBound</tt> for <tt>Key.part</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>Key.oppositePart</tt> is defined
<br>Unnavigable <tt>opposite</tt> of <tt>Key.oppositePart</tt> is modelled
<h2>EMOF-based Model Compliance with respect to the Eclipse QVT Rose Model</h2>
The Eclipse QVT Rose Model provides the definition for all models; it resolves numerous errors in the OMG QVT Rose Model.
<p>
The EMOF-based <tt>QVTRelation</tt> Model exhibits the following differences with respect to the Eclipse QVT Rose Model.
<p>
<br><tt>nsPrefix</tt> for <tt>QVTRelation</tt> is <tt>qvtr</tt> rather than <tt>qvtrelation</tt>
<h2>Ecore-based Model Compliance with respect to the EMOF-based Model</h2>
The Ecore-based <tt>QVTRelation</tt> model exhibits the following differences with respect to its EMOF-based counterpart.
<p>
<br><tt>nsURI</tt> for <tt>QVTRelation</tt> is <tt>http://www.eclipse.org/qvt/1.0/QVTRelation</tt> rather than <tt>http://schema.omg.org/spec/QVT/1.0/qvtrelation.xml</tt>
<br><tt>nsPrefix</tt> for <tt>QVTRelation</tt> is <tt>eqvtr</tt> rather than <tt>qvtr</tt>
<br><tt>eType</tt> for <tt>Key.oppositePart</tt> is <tt>EReference</tt> rather than <tt>Property</tt>
<br><tt>RelationalTransformation.getRelation(name)</tt> is defined
<br><tt>Relation.getRelationalTransformation()</tt> is defined
</body>
</html>
