eclipse / mmt / org.eclipse.qvtd / 47eeb0d59204b844b99dd07afbcf92fc6aa9136a / . / archive / org.eclipse.qvt.declarative.ecore.qvtcore / QVTCoreCompliance.html

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