Commit 94344783 authored by Philip Makedonski's avatar Philip Makedonski
Browse files

+ metamodel implementation refinements and compatibility changes

+ extension for simple data types
+ data element use proposal
parent bade0494
Loading
Loading
Loading
Loading
+38 −28
Original line number Diff line number Diff line
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ecore:EPackage [
<!ENTITY _0 "http://www.eclipse.org/emf/2002/Ecore">
]>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="tdl" nsURI="http://www.etsi.org/spec/TDL/1.4.1" nsPrefix="tdl">
  <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
@@ -24,15 +21,15 @@
        eType="#//Comment" containment="true" eOpposite="#//Comment/commentedElement"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="annotation" upperBound="-1"
        eType="#//Annotation" containment="true" eOpposite="#//Annotation/annotatedElement"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType &_0;#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Comment" eSuperTypes="#//Element">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1" eType="ecore:EDataType &_0;#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="commentedElement" lowerBound="1"
        eType="#//Element" eOpposite="#//Element/comment"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Annotation" eSuperTypes="#//Element">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType &_0;#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="key" lowerBound="1" eType="#//AnnotationType"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="annotatedElement" lowerBound="1"
        eType="#//Element" eOpposite="#//Element/annotation"/>
@@ -43,7 +40,7 @@
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="PackageableElement" abstract="true"
      eSuperTypes="#//NamedElement">
    <eOperations name="conformsTo" eType="ecore:EDataType &_0;#//EBooleanObject">
    <eOperations name="conformsTo" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBooleanObject">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="body" value="&#xA;&#x9;&#x9;&#x9;if (self.oclIsKindOf(AnnotationType)) then&#xA;&#x9;&#x9;&#x9;&#x9;self.oclAsType(AnnotationType).extension.extending(e)&#xA;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;&#x9;if (self.oclIsKindOf(ComponentType)) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;self.oclAsType(AnnotationType).extension.extending(e)&#xA;&#x9;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if (self.oclIsKindOf(GateType)) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;self.oclAsType(GateType).extension.extending(e)&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if (self.oclIsKindOf(GateType)) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;self.oclAsType(StructuredDataType).extension.extending(e)&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;false&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
@@ -52,8 +49,8 @@
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" eSuperTypes="#//Element">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedName" lowerBound="1"
        eType="ecore:EDataType &_0;#//EString" changeable="false" volatile="true"
        transient="true" derived="true">
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" changeable="false"
        volatile="true" transient="true" derived="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="derivation" value="&#xA;            if (self.name.oclIsUndefined()) then&#xA;                ''&#xA;            else&#xA;                if (not self.oclContainer().oclIsUndefined()) then&#xA;                    if (self.oclContainer().oclIsKindOf(NamedElement)) then&#xA;                        self.oclContainer().oclAsType(NamedElement).qualifiedName + '::' + self.name&#xA;                    else&#xA;                        self.oclContainer().oclAsType(ocl::OclElement)->closure(oclContainer())&#xA;                        ->select(c | c.oclIsKindOf(NamedElement))&#xA;                        ->asOrderedSet()&#xA;                        ->first().oclAsType(NamedElement).qualifiedName + '::' + self.name&#xA;                    endif&#xA;                else&#xA;                    self.name&#xA;                endif&#xA;            endif"/>
      </eAnnotations>
@@ -75,8 +72,8 @@
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="TestObjective" eSuperTypes="#//PackageableElement">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="objectiveURI" ordered="false"
        unique="false" upperBound="-1" eType="ecore:EDataType &_0;#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType &_0;#//EString"/>
        unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DataInstance" abstract="true" eSuperTypes="#//MappableDataElement">
    <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" lowerBound="1"
@@ -93,19 +90,19 @@
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DataResourceMapping" eSuperTypes="#//PackageableElement">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="resourceURI" eType="ecore:EDataType &_0;#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="resourceURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DataElementMapping" eSuperTypes="#//PackageableElement">
    <eStructuralFeatures xsi:type="ecore:EReference" name="mappableDataElement" lowerBound="1"
        eType="#//MappableDataElement"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementURI" eType="ecore:EDataType &_0;#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="dataResourceMapping" lowerBound="1"
        eType="#//DataResourceMapping"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="parameterMapping" ordered="false"
        upperBound="-1" eType="#//ParameterMapping" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ParameterMapping" eSuperTypes="#//Element">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="parameterURI" eType="ecore:EDataType &_0;#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="parameterURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" lowerBound="1"
        eType="#//Parameter"/>
  </eClassifiers>
@@ -113,7 +110,10 @@
    <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" lowerBound="1"
        eType="#//DataType"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SimpleDataType" eSuperTypes="#//DataType"/>
  <eClassifiers xsi:type="ecore:EClass" name="SimpleDataType" eSuperTypes="#//DataType">
    <eStructuralFeatures xsi:type="ecore:EReference" name="extension" eType="#//Extension"
        containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SimpleDataInstance" eSuperTypes="#//DataInstance"/>
  <eClassifiers xsi:type="ecore:EClass" name="StructuredDataType" eSuperTypes="#//DataType">
    <eOperations name="allMembers" upperBound="-1" eType="#//Member">
@@ -131,7 +131,7 @@
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Member" eSuperTypes="#//Parameter">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOptional" lowerBound="1"
        eType="ecore:EDataType &_0;#//EBoolean" defaultValueLiteral="false"/>
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="constraint" upperBound="-1"
        eType="#//Constraint" containment="true">
      <eAnnotations source="http://www.eclipse.org/OCL/Collection">
@@ -148,7 +148,7 @@
    <eStructuralFeatures xsi:type="ecore:EReference" name="member" lowerBound="1"
        eType="#//Member"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="memberSpec" lowerBound="1"
        eType="#//StaticDataUse" containment="true"/>
        eType="#//DataUse" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="StaticDataUse" abstract="true" eSuperTypes="#//DataUse"/>
  <eClassifiers xsi:type="ecore:EClass" name="DataUse" abstract="true" eSuperTypes="#//Element">
@@ -174,7 +174,7 @@
    <eLiterals name="AnyValueOrOmit" value="2"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Action" eSuperTypes="#//MappableDataElement">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="ecore:EDataType &_0;#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="formalParameter" upperBound="-1"
        eType="#//FormalParameter" containment="true"/>
  </eClassifiers>
@@ -300,7 +300,7 @@
    <eStructuralFeatures xsi:type="ecore:EReference" name="dataInstance" eType="#//DataInstance"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="unassignedMember" eType="#//UnassignedMemberTreatment"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//DataType"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="item" upperBound="-1" eType="#//StaticDataUse"
    <eStructuralFeatures xsi:type="ecore:EReference" name="item" upperBound="-1" eType="#//DataUse"
        containment="true">
      <eAnnotations source="http://www.eclipse.org/OCL/Collection">
        <details key="nullFree" value="false"/>
@@ -337,7 +337,7 @@
        containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Behaviour" abstract="true" eSuperTypes="#//Element">
    <eOperations name="isTesterInputEvent" eType="ecore:EDataType &_0;#//EBooleanObject">
    <eOperations name="isTesterInputEvent" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBooleanObject">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="body" value="&#xA;&#x9;&#x9;&#x9;&#x9;if (self.oclIsKindOf(TimeOut) or &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;self.oclIsKindOf(Quiescence) or&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;(self.oclIsKindOf(Interaction) and&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;self.oclAsType(Interaction).sourceGate.component.role = ComponentInstanceRole::SUT and&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;self.oclAsType(Interaction).target->exists(t | t.targetGate.component.role = ComponentInstanceRole::Tester)&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;)&#xA;&#x9;&#x9;&#x9;&#x9;) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;true&#xA;&#x9;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;false&#xA;&#x9;&#x9;&#x9;&#x9;endif"/>
      </eAnnotations>
@@ -424,7 +424,7 @@
    <eStructuralFeatures xsi:type="ecore:EReference" name="testObjective" ordered="false"
        upperBound="-1" eType="#//TestObjective"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isLocallyOrdered" lowerBound="1"
        eType="ecore:EDataType &_0;#//EBoolean" defaultValueLiteral="false"/>
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="BehaviourDescription" eSuperTypes="#//Element">
    <eStructuralFeatures xsi:type="ecore:EReference" name="behaviour" lowerBound="1"
@@ -565,7 +565,7 @@
    <eStructuralFeatures xsi:type="ecore:EReference" name="componentInstance" eType="#//ComponentInstance"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="InlineAction" eSuperTypes="#//ActionBehaviour">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1" eType="ecore:EDataType &_0;#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ActionReference" eSuperTypes="#//ActionBehaviour">
    <eStructuralFeatures xsi:type="ecore:EReference" name="action" lowerBound="1"
@@ -611,7 +611,7 @@
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Message" eSuperTypes="#//Interaction">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isTrigger" lowerBound="1"
        eType="ecore:EDataType &_0;#//EBoolean" defaultValueLiteral="false"/>
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="argument" lowerBound="1"
        eType="#//DataUse" containment="true"/>
  </eClassifiers>
@@ -680,7 +680,7 @@
        eType="#//DataType"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="CollectionDataInstance" eSuperTypes="#//DataInstance">
    <eStructuralFeatures xsi:type="ecore:EReference" name="item" upperBound="-1" eType="#//StaticDataUse"
    <eStructuralFeatures xsi:type="ecore:EReference" name="item" upperBound="-1" eType="#//DataUse"
        containment="true">
      <eAnnotations source="http://www.eclipse.org/OCL/Collection">
        <details key="nullFree" value="false"/>
@@ -693,7 +693,7 @@
        <details key="body" value="&#xA;&#x9;&#x9;&#x9;&#x9;if (self.extending.oclIsKindOf(AnnotationType)) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;self.extending.oclAsType(AnnotationType).extension&#xA;&#x9;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if (self.extending.oclIsKindOf(ComponentType)) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;self.extending.oclAsType(AnnotationType).extension&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if (self.extending.oclIsKindOf(GateType)) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;self.extending.oclAsType(GateType).extension&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if (self.extending.oclIsKindOf(GateType)) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;self.extending.oclAsType(StructuredDataType).extension&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;null&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
    </eOperations>
    <eOperations name="extending" eType="ecore:EDataType &_0;#//EBooleanObject">
    <eOperations name="extending" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBooleanObject">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="body" value="&#xA;&#x9;&#x9;&#x9;&#x9;if (self.extending = e) then&#xA;&#x9;&#x9;&#x9;&#x9;    true&#xA;&#x9;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if (self->closure(transitiveExtending())->includes(e)) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;true&#xA;&#x9;            &#x9;else&#xA;&#x9;            &#x9;&#x9;false&#xA;&#x9;            &#x9;endif &#xA;&#x9;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;&#x9;"/>
      </eAnnotations>
@@ -703,9 +703,9 @@
        eType="#//PackageableElement"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="LiteralValueUse" eSuperTypes="#//StaticDataUse">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType &_0;#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="intValue" eType="ecore:EDataType &_0;#//EBigInteger"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="boolValue" eType="ecore:EDataType &_0;#//EBooleanObject"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="intValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="boolValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBooleanObject"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//DataType"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ConstraintType" eSuperTypes="#//PackageableElement"/>
@@ -722,4 +722,14 @@
    <eStructuralFeatures xsi:type="ecore:EReference" name="value" upperBound="-1"
        eType="#//SimpleDataInstance" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DataElementUse" eSuperTypes="#//DataUse">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="unassignedMember" eType="#//UnassignedMemberTreatment"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="dataElement" eType="#//NamedElement"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="item" upperBound="-1" eType="#//DataUse"
        containment="true">
      <eAnnotations source="http://www.eclipse.org/OCL/Collection">
        <details key="nullFree" value="false"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
</ecore:EPackage>
+8 −1
Original line number Diff line number Diff line
@@ -216,7 +216,9 @@
    <genClasses image="false" ecoreClass="tdl.ecore#//Parameter">
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference tdl.ecore#//Parameter/dataType"/>
    </genClasses>
    <genClasses ecoreClass="tdl.ecore#//SimpleDataType"/>
    <genClasses ecoreClass="tdl.ecore#//SimpleDataType">
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tdl.ecore#//SimpleDataType/extension"/>
    </genClasses>
    <genClasses ecoreClass="tdl.ecore#//SimpleDataInstance"/>
    <genClasses ecoreClass="tdl.ecore#//StructuredDataType">
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tdl.ecore#//StructuredDataType/extension"/>
@@ -514,5 +516,10 @@
    <genClasses ecoreClass="tdl.ecore#//EnumDataType">
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tdl.ecore#//EnumDataType/value"/>
    </genClasses>
    <genClasses ecoreClass="tdl.ecore#//DataElementUse">
      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute tdl.ecore#//DataElementUse/unassignedMember"/>
      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference tdl.ecore#//DataElementUse/dataElement"/>
      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference tdl.ecore#//DataElementUse/item"/>
    </genClasses>
  </genPackages>
</genmodel:GenModel>