This document describes clarifications and fixes to
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 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
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
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
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
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