<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<!-- This file was autogenerated on Wed Jun 11 08:56:44 BST 2008 by the org.eclipse.qvt.declarative.test.emof.qvtcore.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>
