QVTCore Model Compliance

This document describes clarifications and fixes to

realised by the Ecore-based and EMOF-based QVTCore models.

The EMOF-based QVTCore 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.

The Ecore-based QVTCore model is intended to provide identical behaviour subject to the replacement of

The Ecore-based model should be used within tools, where the power of Ecore and its associated tooling is important.

EMOF-based Model Compliance with respect to the OMG QVT Rose Model

The OMG QVT Rose Model is the source of all diagrams in the QVT specification and the notional source of all other generated models.

The Eclipse QVTCore Model resolves the following errors and anomalies in the OMG QVT Rose Model.


nsURI for QVTCore is http://schema.omg.org/spec/QVT/1.0/qvtcore.xml rather than http:///qvtcore.ecore
nsPrefix for QVTCore is qvtc rather than qvtcore
name for QVTCore is QVTCore rather than qvtcore
eSuperTypes for Assignment is Element rather than nothing
eSuperTypes for EnforcementOperation is Element rather than nothing
abstract for Assignment is true rather than false
containment for EnforcementOperation.operationCallExp is true rather than false
Assignment.slotExpression is undefined
PropertyAssignment.slotExpression is defined
Unnavigable opposite of PropertyAssignment.slotExpression is modelled
CorePattern.variable is defined
Mapping.refinement is defined
Mapping.refinement is the opposite of Mapping.specification

EMOF-based Model Compliance with respect to the OMG Ecore Model

The OMG Ecore Models are notionally generated from the OMG QVT Rose Model.

The Eclipse QVTCore Model resolves the following errors and anomalies in the corresponding OMG Ecore Model.


nsURI for QVTCore is http://schema.omg.org/spec/QVT/1.0/qvtcore.xml rather than http://www.schema.omg.org/spec/QVT/1.0/qvtcore
nsPrefix for QVTCore is qvtc rather than qvtcore
name for QVTCore is QVTCore rather than qvtcore
eSuperTypes for Assignment is Element rather than nothing
eSuperTypes for EnforcementOperation is Element rather than nothing
abstract for Assignment is true rather than false
containment for EnforcementOperation.operationCallExp is true rather than false
containment for Mapping.local is true rather than false
transient for Mapping.context is true rather than false
Assignment.slotExpression is undefined
PropertyAssignment.slotExpression is defined
CorePattern.variable is defined
Mapping.refinement is defined
Mapping.refinement is the opposite of Mapping.specification
ordered for BottomPattern.assignment is false rather than true
ordered for BottomPattern.enforcementOperation is false rather than true
ordered for BottomPattern.realizedVariable is false rather than true
ordered for Mapping.local is false rather than true
ordered for Mapping.specification is false rather than true
Unnavigable opposite of Assignment.value is modelled
Unnavigable opposite of PropertyAssignment.targetProperty is modelled
Unnavigable opposite of VariableAssignment.targetVariable is modelled

EMOF-based Model Compliance with respect to the OMG EMOF Model

The OMG EMOF Model is notionally generated from the OMG QVT Rose Model.

The Eclipse QVTCore Model resolves the following errors and anomalies in the corresponding OMG EMOF Model.


The model namespace is http://schema.omg.org/spec/MOF/2.0/emof.xml rather than http://www.schema.omg.org/spec/MOF/2.0/emof.xml
xmi:type of Boolean is emof:PrimitiveType rather than emof:Class
xmi:type of Integer is emof:PrimitiveType rather than emof:Class
xmi:type of String is emof:PrimitiveType rather than emof:Class
xmi:type of UnlimitedNatural is emof:PrimitiveType rather than emof:Class
package of Boolean is emof rather than primitivetypes
package of Integer is emof rather than primitivetypes
package of String is emof rather than primitivetypes
package of UnlimitedNatural is emof rather than primitivetypes


uri for QVTCore is defined
name for QVTCore is QVTCore rather than qvtcore
eSuperTypes for Assignment is Element rather than nothing
eSuperTypes for EnforcementOperation is Element rather than nothing
abstract for Assignment is true rather than false
containment for EnforcementOperation.operationCallExp is true rather than false
containment for Mapping.local is true rather than false
transient for Assignment.bottomPattern is true rather than false
transient for BottomPattern.area is true rather than false
transient for GuardPattern.area is true rather than false
transient for EnforcementOperation.bottomPattern is true rather than false
transient for Mapping.context is true rather than false
Assignment.slotExpression is undefined
PropertyAssignment.slotExpression is defined
CorePattern.variable is defined
Mapping.refinement is defined
Mapping.refinement is the opposite of Mapping.specification
EnforcementMode::Creation is defined
EnforcementMode::Deletion is defined
lowerBound for Assignment.isDefault is 0 rather than 1
lowerBound for BottomPattern.assignment is 0 rather than 1
lowerBound for BottomPattern.enforcementOperation is 0 rather than 1
lowerBound for BottomPattern.realizedVariable is 0 rather than 1
lowerBound for EnforcementOperation.bottomPattern is 0 rather than 1
lowerBound for EnforcementOperation.enforcementMode is 0 rather than 1
lowerBound for Mapping.context is 0 rather than 1
lowerBound for Mapping.local is 0 rather than 1
lowerBound for Mapping.specification is 0 rather than 1
Unnavigable opposite of Assignment.value is modelled
Unnavigable opposite of PropertyAssignment.targetProperty is modelled
Unnavigable opposite of VariableAssignment.targetVariable is modelled

EMOF-based Model Compliance with respect to the Eclipse QVT Rose Model

The Eclipse QVT Rose Model provides the definition for all models; it resolves numerous errors in the OMG QVT Rose Model.

The EMOF-based QVTCore Model exhibits the following differences with respect to the Eclipse QVT Rose Model.


nsPrefix for QVTCore is qvtc rather than qvtcore

Ecore-based Model Compliance with respect to the EMOF-based Model

The Ecore-based QVTCore model exhibits the following differences with respect to its EMOF-based counterpart.


nsURI for QVTCore is http://www.eclipse.org/qvt/1.0/QVTCore rather than http://schema.omg.org/spec/QVT/1.0/qvtcore.xml
nsPrefix for QVTCore is eqvtc rather than qvtc
interface for Area is true rather than false
Area.getAllVariables() is defined
CorePattern.getAllVariables() is defined
CorePattern.getArea() is defined
Mapping.getAllMappings() is defined