blob: 13444a75a9841533894f0cacc0f263709d6a071d [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2023 Willink Transformations and others.
This program and the accompanying materials
are made available under the terms of the Eclipse Public License 2.0
which accompanies this distribution, and is available at
https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
E.D.Willink - initial API and implementation
-->
<emof:Package xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:emof="http://schema.omg.org/spec/MOF/2.0/emof.xml" xmi:id="EssentialOCL"
name="EssentialOCL" uri="http://schema.omg.org/spec/QVT/1.1/essentialocl.xml">
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.AnyType" name="AnyType">
<superClass href="EMOF.xml#EMOF.Type"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.BagType" name="BagType" superClass="EssentialOCL.CollectionType"/>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.BooleanLiteralExp" name="BooleanLiteralExp"
superClass="EssentialOCL.PrimitiveLiteralExp">
<ownedAttribute xmi:id="EssentialOCL.BooleanLiteralExp.booleanSymbol" name="booleanSymbol"
isOrdered="true" lower="0">
<type xmi:type="emof:PrimitiveType" href="PrimitiveTypes.xml#PrimitiveTypes.Boolean"/>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.CallExp" name="CallExp" isAbstract="true"
superClass="EssentialOCL.OclExpression">
<ownedAttribute xmi:id="EssentialOCL.CallExp.source" name="source" isOrdered="true"
lower="0" type="EssentialOCL.OclExpression" isComposite="true">
<ownedComment body="appliedElement">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.CollectionItem" name="CollectionItem"
superClass="EssentialOCL.CollectionLiteralPart">
<ownedAttribute xmi:id="EssentialOCL.CollectionItem.item" name="item" isOrdered="true"
type="EssentialOCL.OclExpression" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Enumeration" xmi:id="EssentialOCL.CollectionKind" name="CollectionKind">
<ownedLiteral xmi:id="EssentialOCL.CollectionKind.Set" name="Set"/>
<ownedLiteral xmi:id="EssentialOCL.CollectionKind.OrderedSet" name="OrderedSet">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<value>1</value>
</xmi:Extension>
</ownedLiteral>
<ownedLiteral xmi:id="EssentialOCL.CollectionKind.Bag" name="Bag">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<value>2</value>
</xmi:Extension>
</ownedLiteral>
<ownedLiteral xmi:id="EssentialOCL.CollectionKind.Sequence" name="Sequence">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<value>3</value>
</xmi:Extension>
</ownedLiteral>
<ownedLiteral xmi:id="EssentialOCL.CollectionKind.Collection" name="Collection">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<value>4</value>
</xmi:Extension>
</ownedLiteral>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.CollectionLiteralExp" name="CollectionLiteralExp"
superClass="EssentialOCL.LiteralExp">
<ownedAttribute xmi:id="EssentialOCL.CollectionLiteralExp.kind" name="kind" isOrdered="true"
lower="0" type="EssentialOCL.CollectionKind"/>
<ownedAttribute xmi:id="EssentialOCL.CollectionLiteralExp.part" name="part" lower="0"
upper="*" type="EssentialOCL.CollectionLiteralPart" isComposite="true" opposite="EssentialOCL.CollectionLiteralPart.collectionLiteralExp">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.CollectionLiteralPart" name="CollectionLiteralPart"
isAbstract="true">
<superClass href="EMOF.xml#EMOF.TypedElement"/>
<ownedAttribute xmi:id="EssentialOCL.CollectionLiteralPart.collectionLiteralExp"
name="collectionLiteralExp" isOrdered="true" type="EssentialOCL.CollectionLiteralExp"
opposite="EssentialOCL.CollectionLiteralExp.part">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.CollectionRange" name="CollectionRange"
superClass="EssentialOCL.CollectionLiteralPart">
<ownedAttribute xmi:id="EssentialOCL.CollectionRange.first" name="first" isOrdered="true"
type="EssentialOCL.OclExpression" isComposite="true">
<ownedComment body="firstOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="EssentialOCL.CollectionRange.last" name="last" isOrdered="true"
type="EssentialOCL.OclExpression" isComposite="true">
<ownedComment body="lastOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.CollectionType" name="CollectionType">
<superClass href="EMOF.xml#EMOF.DataType"/>
<ownedAttribute xmi:id="EssentialOCL.CollectionType.elementType" name="elementType"
isOrdered="true">
<type xmi:type="emof:Class" href="EMOF.xml#EMOF.Type"/>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.EnumLiteralExp" name="EnumLiteralExp"
superClass="EssentialOCL.LiteralExp">
<ownedAttribute xmi:id="EssentialOCL.EnumLiteralExp.referredEnumLiteral" name="referredEnumLiteral"
isOrdered="true" lower="0">
<ownedComment body="literalExp">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<type xmi:type="emof:Class" href="EMOF.xml#EMOF.EnumerationLiteral"/>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.ExpressionInOcl" name="ExpressionInOcl">
<superClass href="EMOF.xml#EMOF.TypedElement"/>
<ownedAttribute xmi:id="EssentialOCL.ExpressionInOcl.bodyExpression" name="bodyExpression"
isOrdered="true" type="EssentialOCL.OclExpression" isComposite="true">
<ownedComment body="topExpression">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="EssentialOCL.ExpressionInOcl.contextVariable" name="contextVariable"
isOrdered="true" lower="0" type="EssentialOCL.Variable" isComposite="true">
<ownedComment body="selfOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="EssentialOCL.ExpressionInOcl.generatedType" name="generatedType"
lower="0" upper="*" isComposite="true">
<ownedComment body="owningExpression">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<type xmi:type="emof:Class" href="EMOF.xml#EMOF.Type"/>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="EssentialOCL.ExpressionInOcl.parameterVariable" name="parameterVariable"
lower="0" upper="*" type="EssentialOCL.Variable" isComposite="true">
<ownedComment body="varOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="EssentialOCL.ExpressionInOcl.resultVariable" name="resultVariable"
isOrdered="true" lower="0" type="EssentialOCL.Variable" isComposite="true">
<ownedComment body="resultOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.FeatureCallExp" name="FeatureCallExp"
isAbstract="true" superClass="EssentialOCL.CallExp"/>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.IfExp" name="IfExp" superClass="EssentialOCL.OclExpression">
<ownedAttribute xmi:id="EssentialOCL.IfExp.condition" name="condition" isOrdered="true"
type="EssentialOCL.OclExpression" isComposite="true">
<ownedComment body="ifOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="EssentialOCL.IfExp.elseExpression" name="elseExpression"
isOrdered="true" type="EssentialOCL.OclExpression" isComposite="true">
<ownedComment body="elseOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="EssentialOCL.IfExp.thenExpression" name="thenExpression"
isOrdered="true" type="EssentialOCL.OclExpression" isComposite="true">
<ownedComment body="thenOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.IntegerLiteralExp" name="IntegerLiteralExp"
superClass="EssentialOCL.NumericLiteralExp">
<ownedAttribute xmi:id="EssentialOCL.IntegerLiteralExp.integerSymbol" name="integerSymbol"
isOrdered="true" lower="0">
<type xmi:type="emof:PrimitiveType" href="PrimitiveTypes.xml#PrimitiveTypes.Integer"/>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.InvalidLiteralExp" name="InvalidLiteralExp"
superClass="EssentialOCL.LiteralExp"/>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.InvalidType" name="InvalidType">
<superClass href="EMOF.xml#EMOF.Type"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.IterateExp" name="IterateExp"
superClass="EssentialOCL.LoopExp">
<ownedAttribute xmi:id="EssentialOCL.IterateExp.result" name="result" isOrdered="true"
lower="0" type="EssentialOCL.Variable" isComposite="true">
<ownedComment body="baseExp">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.IteratorExp" name="IteratorExp"
superClass="EssentialOCL.LoopExp"/>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.LetExp" name="LetExp" superClass="EssentialOCL.OclExpression">
<ownedAttribute xmi:id="EssentialOCL.LetExp.in" name="in" isOrdered="true" type="EssentialOCL.OclExpression"
isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="EssentialOCL.LetExp.variable" name="variable" isOrdered="true"
type="EssentialOCL.Variable" isComposite="true" opposite="EssentialOCL.Variable.letExp">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.LiteralExp" name="LiteralExp"
isAbstract="true" superClass="EssentialOCL.OclExpression"/>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.LoopExp" name="LoopExp" isAbstract="true"
superClass="EssentialOCL.CallExp EssentialOCL.OclExpression">
<ownedAttribute xmi:id="EssentialOCL.LoopExp.body" name="body" isOrdered="true"
type="EssentialOCL.OclExpression" isComposite="true">
<ownedComment body="loopBodyOwner">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="EssentialOCL.LoopExp.iterator" name="iterator" isOrdered="true"
lower="0" upper="*" type="EssentialOCL.Variable" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.NavigationCallExp" name="NavigationCallExp"
superClass="EssentialOCL.FeatureCallExp"/>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.NullLiteralExp" name="NullLiteralExp"
superClass="EssentialOCL.LiteralExp"/>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.NumericLiteralExp" name="NumericLiteralExp"
isAbstract="true" superClass="EssentialOCL.PrimitiveLiteralExp"/>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.OclExpression" name="OclExpression"
isAbstract="true">
<superClass href="EMOF.xml#EMOF.TypedElement"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.OperationCallExp" name="OperationCallExp"
superClass="EssentialOCL.FeatureCallExp">
<ownedAttribute xmi:id="EssentialOCL.OperationCallExp.argument" name="argument"
isOrdered="true" lower="0" upper="*" type="EssentialOCL.OclExpression" isComposite="true">
<ownedComment body="parentCall">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="EssentialOCL.OperationCallExp.referredOperation" name="referredOperation"
isOrdered="true" lower="0">
<ownedComment body="referringExp">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<type xmi:type="emof:Class" href="EMOF.xml#EMOF.Operation"/>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.OrderedSetType" name="OrderedSetType"
superClass="EssentialOCL.CollectionType"/>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.PrimitiveLiteralExp" name="PrimitiveLiteralExp"
isAbstract="true" superClass="EssentialOCL.LiteralExp"/>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.PropertyCallExp" name="PropertyCallExp"
superClass="EssentialOCL.NavigationCallExp">
<ownedAttribute xmi:id="EssentialOCL.PropertyCallExp.referredProperty" name="referredProperty"
isOrdered="true" lower="0">
<ownedComment body="referringExp">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<type xmi:type="emof:Class" href="EMOF.xml#EMOF.Property"/>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.RealLiteralExp" name="RealLiteralExp"
superClass="EssentialOCL.NumericLiteralExp">
<ownedAttribute xmi:id="EssentialOCL.RealLiteralExp.realSymbol" name="realSymbol"
isOrdered="true" lower="0">
<type xmi:type="emof:PrimitiveType" href="PrimitiveTypes.xml#PrimitiveTypes.Real"/>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.SequenceType" name="SequenceType"
superClass="EssentialOCL.CollectionType"/>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.SetType" name="SetType" superClass="EssentialOCL.CollectionType"/>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.StringLiteralExp" name="StringLiteralExp"
superClass="EssentialOCL.PrimitiveLiteralExp">
<ownedAttribute xmi:id="EssentialOCL.StringLiteralExp.stringSymbol" name="stringSymbol"
isOrdered="true" lower="0">
<type xmi:type="emof:PrimitiveType" href="PrimitiveTypes.xml#PrimitiveTypes.String"/>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.TemplateParameterType" name="TemplateParameterType">
<superClass href="EMOF.xml#EMOF.Type"/>
<ownedAttribute xmi:id="EssentialOCL.TemplateParameterType.specification" name="specification"
isOrdered="true" lower="0">
<type xmi:type="emof:PrimitiveType" href="PrimitiveTypes.xml#PrimitiveTypes.String"/>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.TupleLiteralExp" name="TupleLiteralExp"
superClass="EssentialOCL.LiteralExp">
<ownedAttribute xmi:id="EssentialOCL.TupleLiteralExp.part" name="part" lower="0"
upper="*" type="EssentialOCL.TupleLiteralPart" isComposite="true" opposite="EssentialOCL.TupleLiteralPart.tupleLiteralExp">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.TupleLiteralPart" name="TupleLiteralPart">
<superClass href="EMOF.xml#EMOF.TypedElement"/>
<ownedAttribute xmi:id="EssentialOCL.TupleLiteralPart.attribute" name="attribute"
isOrdered="true" lower="0">
<type xmi:type="emof:Class" href="EMOF.xml#EMOF.Property"/>
</ownedAttribute>
<ownedAttribute xmi:id="EssentialOCL.TupleLiteralPart.tupleLiteralExp" name="tupleLiteralExp"
isOrdered="true" lower="0" type="EssentialOCL.TupleLiteralExp" opposite="EssentialOCL.TupleLiteralExp.part">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="EssentialOCL.TupleLiteralPart.value" name="value" isOrdered="true"
type="EssentialOCL.OclExpression" isComposite="true">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.TupleType" name="TupleType">
<superClass href="EMOF.xml#EMOF.Class"/>
<superClass href="EMOF.xml#EMOF.DataType"/>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.TypeExp" name="TypeExp" superClass="EssentialOCL.OclExpression">
<ownedAttribute xmi:id="EssentialOCL.TypeExp.referredType" name="referredType"
isOrdered="true" lower="0">
<type xmi:type="emof:Class" href="EMOF.xml#EMOF.Type"/>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.UnlimitedNaturalExp" name="UnlimitedNaturalExp"
superClass="EssentialOCL.NumericLiteralExp">
<ownedAttribute xmi:id="EssentialOCL.UnlimitedNaturalExp.symbol" name="symbol"
isOrdered="true" lower="0">
<type xmi:type="emof:PrimitiveType" href="PrimitiveTypes.xml#PrimitiveTypes.UnlimitedNatural"/>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.Variable" name="Variable">
<superClass href="EMOF.xml#EMOF.TypedElement"/>
<ownedAttribute xmi:id="EssentialOCL.Variable.initExpression" name="initExpression"
isOrdered="true" lower="0" type="EssentialOCL.OclExpression" isComposite="true">
<ownedComment body="initializedElement">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="EssentialOCL.Variable.letExp" name="letExp" isOrdered="true"
lower="0" type="EssentialOCL.LetExp" opposite="EssentialOCL.LetExp.variable">
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<transient>true</transient>
<resolveProxies>false</resolveProxies>
</xmi:Extension>
</ownedAttribute>
<ownedAttribute xmi:id="EssentialOCL.Variable.representedParameter" name="representedParameter"
isOrdered="true" lower="0">
<type xmi:type="emof:Class" href="EMOF.xml#EMOF.Parameter"/>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.VariableExp" name="VariableExp"
superClass="EssentialOCL.OclExpression">
<ownedAttribute xmi:id="EssentialOCL.VariableExp.referredVariable" name="referredVariable"
isOrdered="true" lower="0" type="EssentialOCL.Variable">
<ownedComment body="referringExp">
<ownedComment body="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"/>
</ownedComment>
</ownedAttribute>
</ownedType>
<ownedType xmi:type="emof:Class" xmi:id="EssentialOCL.VoidType" name="VoidType">
<superClass href="EMOF.xml#EMOF.Type"/>
</ownedType>
<xmi:Extension extender="http://www.eclipse.org/emf/2002/Ecore">
<nsPrefix>essentialocl</nsPrefix>
</xmi:Extension>
</emof:Package>