<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<!-- This file was autogenerated on Fri Jun 06 17:52:18 BST 2008 by the org.eclipse.gmt.umlx.eqvtc.tests.QVTCoreConsistencyTest.testQVTCoreConsistency() JUnit test -->
<html>
<head>
<title>QVTCore Model Compliance</title>
<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
</head>
<body lang="EN-US">
<h1>QVTCore 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 QVTCore models.
<p>
The EMOF-based <tt>QVTCore</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>QVTCore</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>QVTCore</tt> Model resolves the following errors
and anomalies in the OMG QVT Rose Model.
<p>
<br><tt>nsURI</tt> for <tt>QVTCore</tt> is <tt>http://schema.omg.org/spec/QVT/1.0/qvtcore.xml</tt> rather than <tt>http:///qvtcore.ecore</tt>
<br><tt>nsPrefix</tt> for <tt>QVTCore</tt> is <tt>qvtc</tt> rather than <tt>qvtcore</tt>
<br><tt>name</tt> for <tt>QVTCore</tt> is <tt>QVTCore</tt> rather than <tt>qvtcore</tt>
<br><tt>eSuperTypes</tt> for <tt>Assignment</tt> is <tt>Element</tt> rather than nothing
<br><tt>eSuperTypes</tt> for <tt>EnforcementOperation</tt> is <tt>Element</tt> rather than nothing
<br><tt>abstract</tt> for <tt>Assignment</tt> is <tt>true</tt> rather than <tt>false</tt>
<br><tt>containment</tt> for <tt>EnforcementOperation.operationCallExp</tt> is <tt>true</tt> rather than <tt>false</tt>
<br><tt>Assignment.slotExpression</tt> is undefined
<br><tt>PropertyAssignment.slotExpression</tt> is defined
<br>Unnavigable <tt>opposite</tt> of <tt>PropertyAssignment.slotExpression</tt> is modelled
<br><tt>CorePattern.variable</tt> is defined
<br><tt>Mapping.refinement</tt> is defined
<br><tt>Mapping.refinement</tt> is the <tt>opposite</tt> of <tt>Mapping.specification</tt>
<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>QVTCore</tt> Model resolves the following errors and anomalies in the corresponding OMG Ecore Model.
<p>
<br><tt>nsURI</tt> for <tt>QVTCore</tt> is <tt>http://schema.omg.org/spec/QVT/1.0/qvtcore.xml</tt> rather than <tt>http://www.schema.omg.org/spec/QVT/1.0/qvtcore</tt>
<br><tt>nsPrefix</tt> for <tt>QVTCore</tt> is <tt>qvtc</tt> rather than <tt>qvtcore</tt>
<br><tt>name</tt> for <tt>QVTCore</tt> is <tt>QVTCore</tt> rather than <tt>qvtcore</tt>
<br><tt>eSuperTypes</tt> for <tt>Assignment</tt> is <tt>Element</tt> rather than nothing
<br><tt>eSuperTypes</tt> for <tt>EnforcementOperation</tt> is <tt>Element</tt> rather than nothing
<br><tt>abstract</tt> for <tt>Assignment</tt> is <tt>true</tt> rather than <tt>false</tt>
<br><tt>containment</tt> for <tt>EnforcementOperation.operationCallExp</tt> is <tt>true</tt> rather than <tt>false</tt>
<br><tt>containment</tt> for <tt>Mapping.local</tt> is <tt>true</tt> rather than <tt>false</tt>
<br><tt>transient</tt> for <tt>Mapping.context</tt> is <tt>true</tt> rather than <tt>false</tt>
<br><tt>Assignment.slotExpression</tt> is undefined
<br><tt>PropertyAssignment.slotExpression</tt> is defined
<br><tt>CorePattern.variable</tt> is defined
<br><tt>Mapping.refinement</tt> is defined
<br><tt>Mapping.refinement</tt> is the <tt>opposite</tt> of <tt>Mapping.specification</tt>
<br><tt>ordered</tt> for <tt>BottomPattern.assignment</tt> is <tt>false</tt> rather than <tt>true</tt>
<br><tt>ordered</tt> for <tt>BottomPattern.enforcementOperation</tt> is <tt>false</tt> rather than <tt>true</tt>
<br><tt>ordered</tt> for <tt>BottomPattern.realizedVariable</tt> is <tt>false</tt> rather than <tt>true</tt>
<br><tt>ordered</tt> for <tt>Mapping.local</tt> is <tt>false</tt> rather than <tt>true</tt>
<br><tt>ordered</tt> for <tt>Mapping.specification</tt> is <tt>false</tt> rather than <tt>true</tt>
<br>Unnavigable <tt>opposite</tt> of <tt>Assignment.value</tt> is modelled
<br>Unnavigable <tt>opposite</tt> of <tt>PropertyAssignment.targetProperty</tt> is modelled
<br>Unnavigable <tt>opposite</tt> of <tt>VariableAssignment.targetVariable</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>QVTCore</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>QVTCore</tt> is defined
<br><tt>name</tt> for <tt>QVTCore</tt> is <tt>QVTCore</tt> rather than <tt>qvtcore</tt>
<br><tt>eSuperTypes</tt> for <tt>Assignment</tt> is <tt>Element</tt> rather than nothing
<br><tt>eSuperTypes</tt> for <tt>EnforcementOperation</tt> is <tt>Element</tt> rather than nothing
<br><tt>abstract</tt> for <tt>Assignment</tt> is <tt>true</tt> rather than <tt>false</tt>
<br><tt>containment</tt> for <tt>EnforcementOperation.operationCallExp</tt> is <tt>true</tt> rather than <tt>false</tt>
<br><tt>containment</tt> for <tt>Mapping.local</tt> is <tt>true</tt> rather than <tt>false</tt>
<br><tt>transient</tt> for <tt>Assignment.bottomPattern</tt> is <tt>true</tt> rather than <tt>false</tt>
<br><tt>transient</tt> for <tt>BottomPattern.area</tt> is <tt>true</tt> rather than <tt>false</tt>
<br><tt>transient</tt> for <tt>GuardPattern.area</tt> is <tt>true</tt> rather than <tt>false</tt>
<br><tt>transient</tt> for <tt>EnforcementOperation.bottomPattern</tt> is <tt>true</tt> rather than <tt>false</tt>
<br><tt>transient</tt> for <tt>Mapping.context</tt> is <tt>true</tt> rather than <tt>false</tt>
<br><tt>Assignment.slotExpression</tt> is undefined
<br><tt>PropertyAssignment.slotExpression</tt> is defined
<br><tt>CorePattern.variable</tt> is defined
<br><tt>Mapping.refinement</tt> is defined
<br><tt>Mapping.refinement</tt> is the <tt>opposite</tt> of <tt>Mapping.specification</tt>
<br><tt>EnforcementMode::Creation</tt> is defined
<br><tt>EnforcementMode::Deletion</tt> is defined
<br><tt>lowerBound</tt> for <tt>Assignment.isDefault</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>lowerBound</tt> for <tt>BottomPattern.assignment</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>lowerBound</tt> for <tt>BottomPattern.enforcementOperation</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>lowerBound</tt> for <tt>BottomPattern.realizedVariable</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>lowerBound</tt> for <tt>EnforcementOperation.bottomPattern</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>lowerBound</tt> for <tt>EnforcementOperation.enforcementMode</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>lowerBound</tt> for <tt>Mapping.context</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>lowerBound</tt> for <tt>Mapping.local</tt> is <tt>0</tt> rather than <tt>1</tt>
<br><tt>lowerBound</tt> for <tt>Mapping.specification</tt> is <tt>0</tt> rather than <tt>1</tt>
<br>Unnavigable <tt>opposite</tt> of <tt>Assignment.value</tt> is modelled
<br>Unnavigable <tt>opposite</tt> of <tt>PropertyAssignment.targetProperty</tt> is modelled
<br>Unnavigable <tt>opposite</tt> of <tt>VariableAssignment.targetVariable</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>QVTCore</tt> Model exhibits the following differences with respect to the Eclipse QVT Rose Model.
<p>
<br><tt>nsPrefix</tt> for <tt>QVTCore</tt> is <tt>qvtc</tt> rather than <tt>qvtcore</tt>
<h2>Ecore-based Model Compliance with respect to the EMOF-based Model</h2>
The Ecore-based <tt>QVTCore</tt> model exhibits the following differences with respect to its EMOF-based counterpart.
<p>
<br><tt>nsURI</tt> for <tt>QVTCore</tt> is <tt>http://www.eclipse.org/qvt/1.0/QVTCore</tt> rather than <tt>http://schema.omg.org/spec/QVT/1.0/qvtcore.xml</tt>
<br><tt>nsPrefix</tt> for <tt>QVTCore</tt> is <tt>eqvtc</tt> rather than <tt>qvtc</tt>
<br><tt>interface</tt> for <tt>Area</tt> is <tt>true</tt> rather than <tt>false</tt>
<br><tt>Area.getAllVariables()</tt> is defined
<br><tt>CorePattern.getAllVariables()</tt> is defined
<br><tt>CorePattern.getArea()</tt> is defined
<br><tt>Mapping.getAllMappings()</tt> is defined
</body>
</html>
