Per UML2.4.1, a
In 12.4, constraint [8] currently reads:
An EMOF metamodel is restricted to use the following concrete metaclasses from UML’s Kernel:
Class
Comment
DataType
Enumeration
EnumerationLiteral
Generalization
InstanceValue
LiteralBoolean
LiteralInteger
LiteralNull
LiteralReal
LiteralString
LiteralUnlimitedNatural
Operation
Package
Parameter
PrimitiveType
Property
The list includes InstanceValue but incorrectly omits InstanceSpecification.
InstanceSpecification must be included in the list because an InstanceValue requires an InstanceSpecification;
see UML2.4.1, 7.3.23:
instance: InstanceSpecification [1]
The instance that is the specified value.
Since the list includes Class and a Class can have Property features, an InstanceSpecification that is the value of an InstanceValue in EMOF may have to specify values for the instantiated Class' Property features. Therefore, the list should also include UML2.4.1's Slot as well.
The list should be corrected as follows:
Class
Comment
DataType
Enumeration
EnumerationLiteral
Generalization
InstanceSpecification
InstanceValue
LiteralBoolean
LiteralInteger
LiteralNull
LiteralReal
LiteralString
LiteralUnlimitedNatural
Operation
Package
Parameter
PrimitiveType
Property
In 14.4, constraint [10] currently reads:
A CMOF metamodel is restricted to use the following concrete metaclasses from UML’s Kernel:
Association
Class
Comment
Constraint
DataType
ElementImport
Enumeration
EnumerationLiteral
Generalization
InstanceValue
LiteralBoolean
LiteralInteger
LiteralNull
LiteralReal
LiteralString
LiteralUnlimitedNatural
OpaqueExpression
Operation
Package
PackageImport
PackageMerge
Parameter
PrimitiveType
Property
The list includes InstanceValue but incorrectly omits InstanceSpecification.
InstanceSpecification must be included in the list because an InstanceValue requires an InstanceSpecification;
see UML2.4.1, 7.3.23:
instance: InstanceSpecification [1]
The instance that is the specified value.
Since the list includes Class and DataType, both of which can have Property features, an InstanceSpecification that is the value of an InstanceValue in CMOF may have to specify values for the instantiated Class' or DataType's Property features. Therefore, the list should also include UML2.4.1's Slot as well.
The list should be corrected as follows:
Association
Class
Comment
Constraint
DataType
ElementImport
Enumeration
EnumerationLiteral
Generalization
InstanceSpecification
InstanceValue
LiteralBoolean
LiteralInteger
LiteralNull
LiteralReal
LiteralString
LiteralUnlimitedNatural
OpaqueExpression
Operation
Package
PackageImport
PackageMerge
Parameter
PrimitiveType
Property
Slot