diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/plugin.properties b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/plugin.properties
index b96d357053792b3bdaca278dcc025df8588a7c45..e5bdd099346d322ae1099965631997a088e43e67 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/plugin.properties
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/plugin.properties
@@ -512,3 +512,48 @@ _UI_Enumeration_refersToBaseEnumeration_feature = Refers To Base Enumeration
 _UI_Enumeration_referredByEnumerationAsBase_feature = Referred By Enumeration As Base
 _UI_BasicType_referredByDataAttribute_feature = Referred By Data Attribute
 _UI_DataAttribute_refersToBasicType_feature = Refers To Basic Type
+_UI_AppliesToType_parentServiceNsUsage_feature = Parent Service Ns Usage
+_UI_DependsOn_parentNS_feature = Parent NS
+_UI_ServiceType_parentApplicableServices_feature = Parent Applicable Services
+_UI_Abbreviation_parentAbbreviations_feature = Parent Abbreviations
+_UI_Abbreviations_parentNS_feature = Parent NS
+_UI_Abbreviations_parentServiceNS_feature = Parent Service NS
+_UI_AbstractLNClass_parentLNClasses_feature = Parent LN Classes
+_UI_ApplicableServices_parentFunctionalConstraint_feature = Parent Functional Constraint
+_UI_BasicType_parentBasicTypes_feature = Parent Basic Types
+_UI_BasicTypes_parentNS_feature = Parent NS
+_UI_CDC_parentCDCs_feature = Parent CD Cs
+_UI_CDCs_parentNS_feature = Parent NS
+_UI_Changes_parentNS_feature = Parent NS
+_UI_Changes_parentServiceNS_feature = Parent Service NS
+_UI_ConstructedAttribute_parentConstructedAttributes_feature = Parent Constructed Attributes
+_UI_ConstructedAttribute_parentServiceTypeRealizations_feature = Parent Service Type Realizations
+_UI_ConstructedAttributes_parentNS_feature = Parent NS
+_UI_CopyrightNotice_parentCopyrighted_feature = Parent Copyrighted
+_UI_DataAttribute_parentCDC_feature = Parent CDC
+_UI_DataObject_parentAnyLNClass_feature = Parent Any LN Class
+_UI_DataSetMemberOf_parentApplicableServices_feature = Parent Applicable Services
+_UI_Doc_parentNSDoc_feature = Parent NS Doc
+_UI_Enumeration_parentEnumerations_feature = Parent Enumerations
+_UI_Enumerations_parentNS_feature = Parent NS
+_UI_FunctionalConstraint_parentFunctionalConstraints_feature = Parent Functional Constraints
+_UI_FunctionalConstraints_parentNS_feature = Parent NS
+_UI_FunctionalConstraints_parentServiceNS_feature = Parent Service NS
+_UI_License_parentCopyrightNotice_feature = Parent Copyright Notice
+_UI_Literal_parentEnumeration_feature = Parent Enumeration
+_UI_LNClass_parentLNClasses_feature = Parent LN Classes
+_UI_LNClasses_parentNS_feature = Parent NS
+_UI_Notice_parentCopyrightNotice_feature = Parent Copyright Notice
+_UI_PresenceCondition_parentPresenceConditions_feature = Parent Presence Conditions
+_UI_PresenceConditions_parentNS_feature = Parent NS
+_UI_PresenceConditions_parentServiceNS_feature = Parent Service NS
+_UI_ServiceCDC_parentServiceCDCs_feature = Parent Service CD Cs
+_UI_ServiceCDCs_parentServiceNS_feature = Parent Service NS
+_UI_ServiceConstructedAttribute_parentServiceConstructedAttributes_feature = Parent Service Constructed Attributes
+_UI_ServiceConstructedAttributes_parentServiceNS_feature = Parent Service NS
+_UI_ServiceDataAttribute_parentServiceCDC_feature = Parent Service CDC
+_UI_ServiceNsUsage_parentApplicableServiceNS_feature = Parent Applicable Service NS
+_UI_ServiceParameter_parentCDC_feature = Parent CDC
+_UI_ServiceTypeRealizations_parentServiceNS_feature = Parent Service NS
+_UI_SubDataAttribute_parentConstructedAttribute_feature = Parent Constructed Attribute
+_UI_SubDataObject_parentCDC_feature = Parent CDC
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.aird b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.aird
index aea7afa39e8495ab1fc2ae9f0a27a3fc22ff0d17..b23cef9e10a202d2fce2666f872ae9a4a7122659 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.aird
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.aird
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style">
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:filter="http://www.eclipse.org/sirius/diagram/description/filter/1.1.0" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/filter/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/filter http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style">
   <viewpoint:DAnalysis uid="_p_8B4Ck6Eem-J7NZSmLltA" selectedViews="_qBT64Ck6Eem-J7NZSmLltA _qBYzYCk6Eem-J7NZSmLltA _qBYzYSk6Eem-J7NZSmLltA _qBbPoCk6Eem-J7NZSmLltA" version="14.1.0.201810161215">
     <semanticResources>nsd.ecore</semanticResources>
     <semanticResources>http://www.eclipse.org/emf/2002/Ecore</semanticResources>
@@ -11,6 +11,10 @@
         <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
         <target xmi:type="ecore:EPackage" href="nsd.ecore#/"/>
       </ownedRepresentationDescriptors>
+      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_-I8a4GtOEemKou4M8gs38g" name="Data" repPath="#_-IhkIGtOEemKou4M8gs38g">
+        <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+        <target xmi:type="ecore:EPackage" href="nsd.ecore#/"/>
+      </ownedRepresentationDescriptors>
     </ownedViews>
     <ownedViews xmi:type="viewpoint:DView" uid="_qBYzYCk6Eem-J7NZSmLltA">
       <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Review']"/>
@@ -594,6 +598,10 @@
               <styles xmi:type="notation:FontStyle" xmi:id="_Ea5rVyuMEemVaIUXQnl20A" fontName=".AppleSystemUIFont" fontHeight="8"/>
               <layoutConstraint xmi:type="notation:Location" xmi:id="_Ea5rWCuMEemVaIUXQnl20A"/>
             </children>
+            <children xmi:type="notation:Node" xmi:id="_xxNCIGtOEemKou4M8gs38g" type="3010" element="_xu1DkWtOEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_xxNCIWtOEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_xxNCImtOEemKou4M8gs38g"/>
+            </children>
             <styles xmi:type="notation:SortingStyle" xmi:id="_sCH8GSk6Eem-J7NZSmLltA"/>
             <styles xmi:type="notation:FilteringStyle" xmi:id="_sCH8Gik6Eem-J7NZSmLltA"/>
           </children>
@@ -684,7 +692,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_sCJKRyk6Eem-J7NZSmLltA"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_sCJKQik6Eem-J7NZSmLltA" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sCJKQyk6Eem-J7NZSmLltA" x="3587" y="624"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sCJKQyk6Eem-J7NZSmLltA" x="3616" y="624"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_sCJxQCk6Eem-J7NZSmLltA" type="2003" element="_r_-nASk6Eem-J7NZSmLltA">
           <children xmi:type="notation:Node" xmi:id="_sCJxQyk6Eem-J7NZSmLltA" type="5007"/>
@@ -1054,17 +1062,17 @@
         </edges>
         <edges xmi:type="notation:Edge" xmi:id="_sCuZGik6Eem-J7NZSmLltA" type="4001" element="_sB22ZCk6Eem-J7NZSmLltA" source="_sCJKQSk6Eem-J7NZSmLltA" target="_sCDqpCk6Eem-J7NZSmLltA">
           <children xmi:type="notation:Node" xmi:id="_sCuZHik6Eem-J7NZSmLltA" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sCuZHyk6Eem-J7NZSmLltA" x="50" y="-10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sCuZHyk6Eem-J7NZSmLltA" x="115" y="-10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_sCvAECk6Eem-J7NZSmLltA" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sCvAESk6Eem-J7NZSmLltA" x="83" y="54"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sCvAESk6Eem-J7NZSmLltA" x="-26" y="178"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_sCvAEik6Eem-J7NZSmLltA" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sCvAEyk6Eem-J7NZSmLltA" x="-159" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sCvAEyk6Eem-J7NZSmLltA" x="-152" y="10"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_sCuZGyk6Eem-J7NZSmLltA" routing="Tree"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_sCuZHCk6Eem-J7NZSmLltA" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sCuZHSk6Eem-J7NZSmLltA" points="[0, 5, 1101, -209]$[0, 335, 1101, 121]$[-1132, 335, -31, 121]$[-1132, 214, -31, 0]"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sCuZHSk6Eem-J7NZSmLltA" points="[0, 3, 1122, -209]$[0, 245, 1122, 33]$[-1153, 245, -31, 33]$[-1153, 212, -31, 0]"/>
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sCvAFCk6Eem-J7NZSmLltA" id="(0.9166666666666666,0.97)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sCvAFSk6Eem-J7NZSmLltA" id="(0.5,1.0)"/>
         </edges>
@@ -1164,38 +1172,6 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sCw1Rik6Eem-J7NZSmLltA" id="(0.5,0.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sCw1Ryk6Eem-J7NZSmLltA" id="(0.496551724137931,1.0)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3MxHgCpWEem2soT2TDjIcQ" type="4001" element="_3MNG0CpWEem2soT2TDjIcQ" source="_sCHVCyk6Eem-J7NZSmLltA" target="_sCH8FCk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3MxHhCpWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MxHhSpWEem2soT2TDjIcQ" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3MxHhipWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MxHhypWEem2soT2TDjIcQ" x="187" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3MxHiCpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MxHiSpWEem2soT2TDjIcQ" x="13" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3MxHgSpWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3MxHgipWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MxHgypWEem2soT2TDjIcQ" points="[21, -49, 2617, 90]$[21, -193, 2617, -54]$[-2346, -193, 250, -54]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MxukCpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MxukSpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3MxukipWEem2soT2TDjIcQ" type="4001" element="_3MNt6SpWEem2soT2TDjIcQ" source="_sCH8Iik6Eem-J7NZSmLltA" target="_sCIjJik6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3MxulipWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MxulypWEem2soT2TDjIcQ" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3MxumCpWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MxumSpWEem2soT2TDjIcQ" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3MxumipWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MxumypWEem2soT2TDjIcQ" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3MxukypWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3MxulCpWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MxulSpWEem2soT2TDjIcQ" points="[0, 0, 44, 152]$[-44, -152, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MyVoCpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MyVoSpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_3MyVoipWEem2soT2TDjIcQ" type="4001" element="_3MOU9ipWEem2soT2TDjIcQ" source="_sCJKMyk6Eem-J7NZSmLltA" target="_sCJxRyk6Eem-J7NZSmLltA">
           <children xmi:type="notation:Node" xmi:id="_3MyVpipWEem2soT2TDjIcQ" type="6001">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MyVpypWEem2soT2TDjIcQ" x="-239" y="-10"/>
@@ -1230,109 +1206,29 @@
         </edges>
         <edges xmi:type="notation:Edge" xmi:id="_3My8vipWEem2soT2TDjIcQ" type="4001" element="_3MPjFipWEem2soT2TDjIcQ" source="_sCH8FCk6Eem-J7NZSmLltA" target="_sCIjJik6Eem-J7NZSmLltA">
           <children xmi:type="notation:Node" xmi:id="_3My8wipWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3My8wypWEem2soT2TDjIcQ" y="-10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3My8wypWEem2soT2TDjIcQ" x="-31" y="-10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_3MzjwCpWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MzjwSpWEem2soT2TDjIcQ" x="-5" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MzjwSpWEem2soT2TDjIcQ" x="-15" y="10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_3MzjwipWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MzjwypWEem2soT2TDjIcQ" x="-114" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MzjwypWEem2soT2TDjIcQ" x="-167" y="10"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_3My8vypWEem2soT2TDjIcQ" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_3My8wCpWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3My8wSpWEem2soT2TDjIcQ" points="[80, 0, -1451, -107]$[1532, 0, 1, -107]$[1532, 58, 1, -49]"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3My8wSpWEem2soT2TDjIcQ" points="[250, -62, -1111, -169]$[1400, -62, 39, -169]$[1400, 58, 39, -49]"/>
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MzjxCpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3MzjxSpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3MzjxipWEem2soT2TDjIcQ" type="4001" element="_3MQKJipWEem2soT2TDjIcQ" source="_sCJKQSk6Eem-J7NZSmLltA" target="_sCJxQCk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3MzjyipWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MzjyypWEem2soT2TDjIcQ" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3MzjzCpWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MzjzSpWEem2soT2TDjIcQ" x="-2" y="74"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3MzjzipWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3MzjzypWEem2soT2TDjIcQ" x="7" y="-80"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3MzjxypWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3MzjyCpWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3MzjySpWEem2soT2TDjIcQ" points="[-17, 49, 0, -160]$[-17, 160, 0, -49]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Mzj0CpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Mzj0SpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M0K0CpWEem2soT2TDjIcQ" type="4001" element="_3MQxNipWEem2soT2TDjIcQ" source="_sCFf3ik6Eem-J7NZSmLltA" target="_sCFf5Sk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M0K1CpWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M0K1SpWEem2soT2TDjIcQ" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M0K1ipWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M0K1ypWEem2soT2TDjIcQ" x="1" y="-45"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M0K2CpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M0K2SpWEem2soT2TDjIcQ" y="-55"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M0K0SpWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M0K0ipWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M0K0ypWEem2soT2TDjIcQ" points="[0, 0, 36, 161]$[-36, -161, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M0K2ipWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M0K2ypWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M0K3CpWEem2soT2TDjIcQ" type="4001" element="_3MRYQypWEem2soT2TDjIcQ" source="_sCHVBCk6Eem-J7NZSmLltA" target="_sCHVCyk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M0K4CpWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M0K4SpWEem2soT2TDjIcQ" x="-10" y="2"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M0K4ipWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M0K4ypWEem2soT2TDjIcQ" x="-2" y="-38"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M0K5CpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M0K5SpWEem2soT2TDjIcQ" x="-1" y="-40"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M0K3SpWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M0K3ipWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M0K3ypWEem2soT2TDjIcQ" points="[-54, -49, 30, 88]$[-54, -88, 30, 49]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M0x4CpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M0x4SpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M0x4ipWEem2soT2TDjIcQ" type="4001" element="_3MR_VipWEem2soT2TDjIcQ" source="_sCDqqyk6Eem-J7NZSmLltA" target="_sCH8FCk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M0x5ipWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M0x5ypWEem2soT2TDjIcQ" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M0x6CpWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M0x6SpWEem2soT2TDjIcQ" x="143" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M0x6ipWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M0x6ypWEem2soT2TDjIcQ" x="9" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M0x4ypWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M0x5CpWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M0x5SpWEem2soT2TDjIcQ" points="[1, -49, 2144, 58]$[1, -141, 2144, -34]$[-2063, -141, 80, -34]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M0x7CpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M0x7SpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M0x7ipWEem2soT2TDjIcQ" type="4001" element="_3MSmYCpWEem2soT2TDjIcQ" source="_sCGG6yk6Eem-J7NZSmLltA" target="_sCH8FCk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M0x8ipWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M0x8ypWEem2soT2TDjIcQ" x="1" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M1Y8CpWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M1Y8SpWEem2soT2TDjIcQ" x="112" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M1Y8ipWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M1Y8ypWEem2soT2TDjIcQ" x="4" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M0x7ypWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M0x8CpWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M0x8SpWEem2soT2TDjIcQ" points="[1, -49, 940, 66]$[1, -105, 940, 10]$[-859, -105, 80, 10]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M1Y9CpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M1Y9SpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_3M1Y9ipWEem2soT2TDjIcQ" type="4001" element="_3MSmZypWEem2soT2TDjIcQ" source="_sCERtCk6Eem-J7NZSmLltA" target="_sCGG8ik6Eem-J7NZSmLltA">
           <children xmi:type="notation:Node" xmi:id="_3M1Y-ipWEem2soT2TDjIcQ" type="6001">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M1Y-ypWEem2soT2TDjIcQ" y="-10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_3M1Y_CpWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M1Y_SpWEem2soT2TDjIcQ" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M1Y_SpWEem2soT2TDjIcQ" x="2" y="69"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_3M1Y_ipWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M1Y_ypWEem2soT2TDjIcQ" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M1Y_ypWEem2soT2TDjIcQ" x="1" y="47"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M1Y9ypWEem2soT2TDjIcQ" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_3M1Y-CpWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
@@ -1340,22 +1236,6 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M1ZACpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M1ZASpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M2AACpWEem2soT2TDjIcQ" type="4001" element="_3MTNdipWEem2soT2TDjIcQ" source="_sCB1cyk6Eem-J7NZSmLltA" target="_sCH8FCk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M2ABCpWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M2ABSpWEem2soT2TDjIcQ" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M2ABipWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M2ABypWEem2soT2TDjIcQ" x="122" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M2ACCpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M2ACSpWEem2soT2TDjIcQ" x="6" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M2AASpWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M2AAipWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M2AAypWEem2soT2TDjIcQ" points="[1, -49, 1764, 58]$[1, -117, 1764, -10]$[-1683, -117, 80, -10]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M2ACipWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M2ACypWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_3M2ADCpWEem2soT2TDjIcQ" type="4001" element="_3MT0hipWEem2soT2TDjIcQ" source="_sCB1jyk6Eem-J7NZSmLltA" target="_sCERwik6Eem-J7NZSmLltA">
           <children xmi:type="notation:Node" xmi:id="_3M2AECpWEem2soT2TDjIcQ" type="6001">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M2AESpWEem2soT2TDjIcQ" x="-15" y="-10"/>
@@ -1372,38 +1252,6 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M2nEipWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M2nEypWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M2nFCpWEem2soT2TDjIcQ" type="4001" element="_3MUbkypWEem2soT2TDjIcQ" source="_sCCciyk6Eem-J7NZSmLltA" target="_sCGG5Ck6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M2nGCpWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M2nGSpWEem2soT2TDjIcQ" x="-19" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M2nGipWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M2nGypWEem2soT2TDjIcQ" x="30" y="-12"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M2nHCpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M2nHSpWEem2soT2TDjIcQ" x="-29" y="8"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M2nFSpWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M2nFipWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M2nFypWEem2soT2TDjIcQ" points="[-59, 3, 184, 28]$[-121, 3, 122, 28]$[-121, -29, 122, -4]$[-182, -29, 61, -4]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M3OICpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M3OISpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M3OIipWEem2soT2TDjIcQ" type="4001" element="_3MVCoCpWEem2soT2TDjIcQ" source="_sCJKMyk6Eem-J7NZSmLltA" target="_sCJKOik6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M31MCpWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M31MSpWEem2soT2TDjIcQ" x="10" y="-3"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M4cQCpWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M4cQSpWEem2soT2TDjIcQ" x="-10" y="-42"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M4cQipWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M4cQypWEem2soT2TDjIcQ" x="4" y="-53"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M3OIypWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M3OJCpWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M3OJSpWEem2soT2TDjIcQ" points="[2, 49, 2, -160]$[2, 160, 2, -49]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M4cRCpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M4cRSpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_3M4cRipWEem2soT2TDjIcQ" type="4001" element="_3MVpsCpWEem2soT2TDjIcQ" source="_sCDDoik6Eem-J7NZSmLltA" target="_sCERuyk6Eem-J7NZSmLltA">
           <children xmi:type="notation:Node" xmi:id="_3M4cSipWEem2soT2TDjIcQ" type="6001">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M5DUCpWEem2soT2TDjIcQ" x="-215" y="-10"/>
@@ -1420,111 +1268,15 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M5DVSpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M5DVipWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M5DVypWEem2soT2TDjIcQ" type="4001" element="_3MVptypWEem2soT2TDjIcQ" source="_sCIjJik6Eem-J7NZSmLltA" target="_sCJxTik6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M5DWypWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M5DXCpWEem2soT2TDjIcQ" x="-22" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M5DXSpWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M5DXipWEem2soT2TDjIcQ" x="226" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M5DXypWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M5DYCpWEem2soT2TDjIcQ" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M5DWCpWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M5DWSpWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M5DWipWEem2soT2TDjIcQ" points="[-39, 49, 1556, -200]$[-39, 255, 1556, 6]$[-1515, 255, 80, 6]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M5DYSpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M5DYipWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M5DYypWEem2soT2TDjIcQ" type="4001" element="_3MWQxipWEem2soT2TDjIcQ" source="_sCJxQCk6Eem-J7NZSmLltA" target="_sCJxTik6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M5DZypWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M5DaCpWEem2soT2TDjIcQ" x="-38" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M5DaSpWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M5DaipWEem2soT2TDjIcQ" x="128" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M5qYCpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M5qYSpWEem2soT2TDjIcQ" x="-51" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M5DZCpWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M5DZSpWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M5DZipWEem2soT2TDjIcQ" points="[-10, 49, 3288, -26]$[-10, 138, 3288, 63]$[-3297, 138, 1, 63]$[-3297, 124, 1, 49]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M5qYipWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M5qYypWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M5qZCpWEem2soT2TDjIcQ" type="4001" element="_3MW31ipWEem2soT2TDjIcQ" source="_sCDDsCk6Eem-J7NZSmLltA" target="_sCJxTik6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M5qaCpWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M5qaSpWEem2soT2TDjIcQ" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M5qaipWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M5qaypWEem2soT2TDjIcQ" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M5qbCpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M5qbSpWEem2soT2TDjIcQ" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M5qZSpWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M5qZipWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M5qZypWEem2soT2TDjIcQ" points="[0, 0, 384, -156]$[-384, 156, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M5qbipWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M5qbypWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M5qcCpWEem2soT2TDjIcQ" type="4001" element="_3MXe4CpWEem2soT2TDjIcQ" source="_sCDqpCk6Eem-J7NZSmLltA" target="_sCDqqyk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M5qdCpWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M5qdSpWEem2soT2TDjIcQ" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M5qdipWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M5qdypWEem2soT2TDjIcQ" x="1" y="-65"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M5qeCpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M5qeSpWEem2soT2TDjIcQ" x="8" y="-64"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M5qcSpWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M5qcipWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M5qcypWEem2soT2TDjIcQ" points="[0, 0, 44, 161]$[-44, -161, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M5qeipWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M5qeypWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M5qfCpWEem2soT2TDjIcQ" type="4001" element="_3MXe5ypWEem2soT2TDjIcQ" source="_sCFf5Sk6Eem-J7NZSmLltA" target="_sCH8FCk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M6RcCpWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M6RcSpWEem2soT2TDjIcQ" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M6RcipWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M6RcypWEem2soT2TDjIcQ" x="132" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M6RdCpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M6RdSpWEem2soT2TDjIcQ" x="8" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M5qfSpWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M5qfipWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M5qfypWEem2soT2TDjIcQ" points="[1, -49, 1940, 58]$[1, -129, 1940, -22]$[-1859, -129, 80, -22]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M6RdipWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M6RdypWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M6ReCpWEem2soT2TDjIcQ" type="4001" element="_3MYF9ipWEem2soT2TDjIcQ" source="_sCBOeSk6Eem-J7NZSmLltA" target="_sCB1cyk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M6RfCpWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M6RfSpWEem2soT2TDjIcQ" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M6RfipWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M6RfypWEem2soT2TDjIcQ" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M6RgCpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M6RgSpWEem2soT2TDjIcQ" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M6ReSpWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M6ReipWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M6ReypWEem2soT2TDjIcQ" points="[0, 0, 48, 161]$[-48, -161, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M6RgipWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M6RgypWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_3M6RhCpWEem2soT2TDjIcQ" type="4001" element="_3MYtAypWEem2soT2TDjIcQ" source="_sCCchCk6Eem-J7NZSmLltA" target="_sCKYUCk6Eem-J7NZSmLltA">
           <children xmi:type="notation:Node" xmi:id="_3M6RiCpWEem2soT2TDjIcQ" type="6001">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M6RiSpWEem2soT2TDjIcQ" x="10" y="-3"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_3M6RiipWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M6RiypWEem2soT2TDjIcQ" x="1" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M6RiypWEem2soT2TDjIcQ" x="44" y="-15"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_3M6RjCpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M6RjSpWEem2soT2TDjIcQ" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M6RjSpWEem2soT2TDjIcQ" x="-30" y="13"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M6RhSpWEem2soT2TDjIcQ" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_3M6RhipWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
@@ -1548,70 +1300,6 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M64iypWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M64jCpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M64jSpWEem2soT2TDjIcQ" type="4001" element="_3MZ7JipWEem2soT2TDjIcQ" source="_sCB1eik6Eem-J7NZSmLltA" target="_sCHVCyk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M64kSpWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M64kipWEem2soT2TDjIcQ" x="45" y="-2"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M64kypWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M64lCpWEem2soT2TDjIcQ" x="-21" y="-43"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M64lSpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M64lipWEem2soT2TDjIcQ" x="-2" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M64jipWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M64jypWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M64kCpWEem2soT2TDjIcQ" points="[-34, -49, 243, 88]$[-34, -94, 243, 43]$[-218, -94, 59, 43]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M64lypWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M64mCpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M64mSpWEem2soT2TDjIcQ" type="4001" element="_3MaiNipWEem2soT2TDjIcQ" source="_sCDDoik6Eem-J7NZSmLltA" target="_sCDDqSk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M64nSpWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M64nipWEem2soT2TDjIcQ" x="-35" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M7fkCpWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M7fkSpWEem2soT2TDjIcQ" x="-11" y="-33"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M7fkipWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M7fkypWEem2soT2TDjIcQ" x="-3" y="-38"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M64mipWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M64mypWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M64nCpWEem2soT2TDjIcQ" points="[-59, -54, 13, 123]$[-59, -75, 13, 102]$[-107, -75, -35, 102]$[-107, -128, -35, 49]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M7flCpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M7flSpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M7flipWEem2soT2TDjIcQ" type="4001" element="_3MbJQypWEem2soT2TDjIcQ" source="_sCGG6yk6Eem-J7NZSmLltA" target="_sCJxTik6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M7fmipWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M7fmypWEem2soT2TDjIcQ" x="-20" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M7fnCpWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M7fnSpWEem2soT2TDjIcQ" x="16" y="177"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M7fnipWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M7fnypWEem2soT2TDjIcQ" x="-1" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M7flypWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M7fmCpWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M7fmSpWEem2soT2TDjIcQ" points="[-43, 49, 960, -192]$[-43, 235, 960, -6]$[-923, 235, 80, -6]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M7foCpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M7foSpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M7foipWEem2soT2TDjIcQ" type="4001" element="_3MbwUCpWEem2soT2TDjIcQ" source="_sCCcmSk6Eem-J7NZSmLltA" target="_sCCcoCk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M7fpipWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M7fpypWEem2soT2TDjIcQ" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M7fqCpWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M7fqSpWEem2soT2TDjIcQ" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M7fqipWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M7fqypWEem2soT2TDjIcQ" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M7foypWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M7fpCpWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M7fpSpWEem2soT2TDjIcQ" points="[0, 0, 0, 144]$[0, -144, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M7frCpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M7frSpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_3M8GoCpWEem2soT2TDjIcQ" type="4001" element="_3MbwVypWEem2soT2TDjIcQ" source="_sCJxTik6Eem-J7NZSmLltA" target="_sCK_YCk6Eem-J7NZSmLltA">
           <children xmi:type="notation:Node" xmi:id="_3M8GpCpWEem2soT2TDjIcQ" type="6001">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M8GpSpWEem2soT2TDjIcQ" x="-22" y="-10"/>
@@ -1628,22 +1316,6 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M8GqipWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M8GqypWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M8GrCpWEem2soT2TDjIcQ" type="4001" element="_3McXZipWEem2soT2TDjIcQ" source="_sCJKOik6Eem-J7NZSmLltA" target="_sCJxTik6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M8GsCpWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M8GsSpWEem2soT2TDjIcQ" x="10" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M8GsipWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M8GsypWEem2soT2TDjIcQ" x="154" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M8GtCpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M8GtSpWEem2soT2TDjIcQ" x="12" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M8GrSpWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M8GripWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M8GrypWEem2soT2TDjIcQ" points="[1, 49, 3552, -39]$[1, 142, 3552, 54]$[-3471, 142, 80, 54]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M8GtipWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M8GtypWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_3M8GuCpWEem2soT2TDjIcQ" type="4001" element="_3Mc-dipWEem2soT2TDjIcQ" source="_sCDDoik6Eem-J7NZSmLltA" target="_sCK_bik6Eem-J7NZSmLltA">
           <children xmi:type="notation:Node" xmi:id="_3M8GvCpWEem2soT2TDjIcQ" type="6001">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M8GvSpWEem2soT2TDjIcQ" x="-7" y="-10"/>
@@ -1660,22 +1332,6 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M8tsCpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M8tsSpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M8tsipWEem2soT2TDjIcQ" type="4001" element="_3MdlgSpWEem2soT2TDjIcQ" source="_sCDqpCk6Eem-J7NZSmLltA" target="_sCK_YCk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M8ttipWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M8ttypWEem2soT2TDjIcQ" x="-13" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M8tuCpWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M8tuSpWEem2soT2TDjIcQ" x="-10" y="61"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M8tuipWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M8tuypWEem2soT2TDjIcQ" x="7" y="-29"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M8tsypWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M8ttCpWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M8ttSpWEem2soT2TDjIcQ" points="[48, -49, -104, 129]$[48, -77, -104, 101]$[103, -77, -49, 101]$[103, -129, -49, 49]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M8tvCpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M8tvSpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_3M8tvipWEem2soT2TDjIcQ" type="4001" element="_3MdliCpWEem2soT2TDjIcQ" source="_sCFf3ik6Eem-J7NZSmLltA" target="_sCGuAik6Eem-J7NZSmLltA">
           <children xmi:type="notation:Node" xmi:id="_3M8twipWEem2soT2TDjIcQ" type="6001">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M8twypWEem2soT2TDjIcQ" x="110" y="-10"/>
@@ -1692,95 +1348,15 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M8tyCpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M8tySpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M8tyipWEem2soT2TDjIcQ" type="4001" element="_3MeMlipWEem2soT2TDjIcQ" source="_sCCcoCk6Eem-J7NZSmLltA" target="_sCH8FCk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M9UwCpWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M9UwSpWEem2soT2TDjIcQ" x="2" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M9UwipWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M9UwypWEem2soT2TDjIcQ" x="105" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M9UxCpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M9UxSpWEem2soT2TDjIcQ" x="2" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M8tyypWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M8tzCpWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M8tzSpWEem2soT2TDjIcQ" points="[1, -49, 715, 66]$[1, -97, 715, 18]$[-634, -97, 80, 18]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M9UxipWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M9UxypWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M9UyCpWEem2soT2TDjIcQ" type="4001" element="_3MezpipWEem2soT2TDjIcQ" source="_sCDDqSk6Eem-J7NZSmLltA" target="_sCH8FCk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M9UzCpWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M9UzSpWEem2soT2TDjIcQ" x="-34" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M9UzipWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M9UzypWEem2soT2TDjIcQ" x="111" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M9U0CpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M9U0SpWEem2soT2TDjIcQ" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M9UySpWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M9UyipWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M9UyypWEem2soT2TDjIcQ" points="[28, -49, 2341, 49]$[28, -140, 2341, -42]$[-2063, -140, 250, -42]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M970CpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M970SpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M970ipWEem2soT2TDjIcQ" type="4001" element="_3MfasypWEem2soT2TDjIcQ" source="_sCFf0Ck6Eem-J7NZSmLltA" target="_sCH8Gyk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M971ipWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M971ypWEem2soT2TDjIcQ" x="10" y="-3"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M972CpWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M972SpWEem2soT2TDjIcQ" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M972ipWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M972ypWEem2soT2TDjIcQ" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M970ypWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M971CpWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M971SpWEem2soT2TDjIcQ" points="[-68, -2, 344, -2]$[-353, -2, 59, -2]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M973CpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M973SpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M973ipWEem2soT2TDjIcQ" type="4001" element="_3MgBwCpWEem2soT2TDjIcQ" source="_sCAnUCk6Eem-J7NZSmLltA" target="_sCKYUCk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M974ipWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M974ypWEem2soT2TDjIcQ" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M975CpWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M975SpWEem2soT2TDjIcQ" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M-i4CpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M-i4SpWEem2soT2TDjIcQ" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M973ypWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M974CpWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M974SpWEem2soT2TDjIcQ" points="[-80, -8, 272, -8]$[-272, -8, 80, -8]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M-i4ipWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M-i4ypWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M-i5CpWEem2soT2TDjIcQ" type="4001" element="_3MgBxypWEem2soT2TDjIcQ" source="_sCB1cyk6Eem-J7NZSmLltA" target="_sCJxTik6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M-i6CpWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M-i6SpWEem2soT2TDjIcQ" x="-7" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M-i6ipWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M-i6ypWEem2soT2TDjIcQ" x="244" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M-i7CpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M-i7SpWEem2soT2TDjIcQ" x="2" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M-i5SpWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M-i5ipWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M-i5ypWEem2soT2TDjIcQ" points="[-31, 49, 1796, -200]$[-31, 267, 1796, 18]$[-1747, 267, 80, 18]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M_J8CpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M_J8SpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_3M_J8ipWEem2soT2TDjIcQ" type="4001" element="_3Mgo1ipWEem2soT2TDjIcQ" source="_sCCciyk6Eem-J7NZSmLltA" target="_sCE4wCk6Eem-J7NZSmLltA">
           <children xmi:type="notation:Node" xmi:id="_3M_J9ipWEem2soT2TDjIcQ" type="6001">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M_J9ypWEem2soT2TDjIcQ" x="-7" y="-16"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_3M_J-CpWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M_J-SpWEem2soT2TDjIcQ" x="-6" y="-57"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M_J-SpWEem2soT2TDjIcQ" x="-6" y="-72"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_3M_J-ipWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M_J-ypWEem2soT2TDjIcQ" x="13" y="-55"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M_J-ypWEem2soT2TDjIcQ" x="5" y="-51"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M_J8ypWEem2soT2TDjIcQ" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_3M_J9CpWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
@@ -1788,28 +1364,12 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M_J_CpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M_J_SpWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M_J_ipWEem2soT2TDjIcQ" type="4001" element="_3MhP5ipWEem2soT2TDjIcQ" source="_sCGG5Ck6Eem-J7NZSmLltA" target="_sCGG6yk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3M_xACpWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M_xASpWEem2soT2TDjIcQ" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M_xAipWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M_xAypWEem2soT2TDjIcQ" x="2" y="57"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3M_xBCpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M_xBSpWEem2soT2TDjIcQ" x="-3" y="72"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M_J_ypWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M_KACpWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M_KASpWEem2soT2TDjIcQ" points="[0, 0, 48, 144]$[-48, -144, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M_xBipWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M_xBypWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_3M_xCCpWEem2soT2TDjIcQ" type="4001" element="_3Mh28CpWEem2soT2TDjIcQ" source="_sCDqsik6Eem-J7NZSmLltA" target="_sCERtCk6Eem-J7NZSmLltA">
           <children xmi:type="notation:Node" xmi:id="_3M_xDCpWEem2soT2TDjIcQ" type="6001">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M_xDSpWEem2soT2TDjIcQ" y="-10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_3M_xDipWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M_xDypWEem2soT2TDjIcQ" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M_xDypWEem2soT2TDjIcQ" x="14" y="-13"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_3M_xECpWEem2soT2TDjIcQ" type="6003">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3M_xESpWEem2soT2TDjIcQ" y="10"/>
@@ -1820,47 +1380,15 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M_xEipWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3M_xEypWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3M_xFCpWEem2soT2TDjIcQ" type="4001" element="_3Mh29ypWEem2soT2TDjIcQ" source="_sCBOcik6Eem-J7NZSmLltA" target="_sCCciyk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3NAYECpWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3NAYESpWEem2soT2TDjIcQ" y="-9"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3NAYEipWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3NAYEypWEem2soT2TDjIcQ" x="-3" y="-36"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3NAYFCpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3NAYFSpWEem2soT2TDjIcQ" x="4" y="-60"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3M_xFSpWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3M_xFipWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3M_xFypWEem2soT2TDjIcQ" points="[-24, 49, 42, -128]$[-24, 69, 42, -108]$[-43, 69, 23, -108]$[-43, 128, 23, -49]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3NAYFipWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3NAYFypWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_3NAYGCpWEem2soT2TDjIcQ" type="4001" element="_3MieBipWEem2soT2TDjIcQ" source="_sCDDsCk6Eem-J7NZSmLltA" target="_sCH8FCk6Eem-J7NZSmLltA">
-          <children xmi:type="notation:Node" xmi:id="_3NAYHCpWEem2soT2TDjIcQ" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3NAYHSpWEem2soT2TDjIcQ" x="-6" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3NAYHipWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3NAYHypWEem2soT2TDjIcQ" x="-2" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_3NAYICpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3NAYISpWEem2soT2TDjIcQ" x="2" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_3NAYGSpWEem2soT2TDjIcQ" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_3NAYGipWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3NAYGypWEem2soT2TDjIcQ" points="[-59, -35, 240, 152]$[-139, -35, 160, 152]$[-139, -140, 160, 47]$[-219, -140, 80, 47]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3NAYIipWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3NAYIypWEem2soT2TDjIcQ" id="(0.5,0.5)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_3NAYJCpWEem2soT2TDjIcQ" type="4001" element="_3MjFEypWEem2soT2TDjIcQ" source="_sCERtCk6Eem-J7NZSmLltA" target="_sCHVEik6Eem-J7NZSmLltA">
           <children xmi:type="notation:Node" xmi:id="_3NAYKCpWEem2soT2TDjIcQ" type="6001">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3NAYKSpWEem2soT2TDjIcQ" y="-10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_3NAYKipWEem2soT2TDjIcQ" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3NAYKypWEem2soT2TDjIcQ" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3NAYKypWEem2soT2TDjIcQ" x="-9" y="-70"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_3NAYLCpWEem2soT2TDjIcQ" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3NAYLSpWEem2soT2TDjIcQ" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3NAYLSpWEem2soT2TDjIcQ" x="1" y="-48"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_3NAYJSpWEem2soT2TDjIcQ" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_3NAYJipWEem2soT2TDjIcQ" fontName=".AppleSystemUIFont" fontHeight="8"/>
@@ -1873,10 +1401,10 @@
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EbSF0SuMEemVaIUXQnl20A"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_EbSs4CuMEemVaIUXQnl20A" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EbSs4SuMEemVaIUXQnl20A" x="-8" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EbSs4SuMEemVaIUXQnl20A" x="-9" y="69"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_EbTT8CuMEemVaIUXQnl20A" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EbTT8SuMEemVaIUXQnl20A" x="-31" y="-67"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EbTT8SuMEemVaIUXQnl20A" x="-36" y="21"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_EbObcSuMEemVaIUXQnl20A" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_EbObciuMEemVaIUXQnl20A" fontName=".AppleSystemUIFont" fontHeight="8"/>
@@ -2081,10 +1609,10 @@
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EbsVhSuMEemVaIUXQnl20A" x="10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_EbsVhiuMEemVaIUXQnl20A" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EbsVhyuMEemVaIUXQnl20A" x="73" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EbsVhyuMEemVaIUXQnl20A" x="-47" y="5"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_EbsViCuMEemVaIUXQnl20A" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EbsViSuMEemVaIUXQnl20A" x="-595" y="22"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EbsViSuMEemVaIUXQnl20A" x="82" y="30"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_EbsVgSuMEemVaIUXQnl20A" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_EbsVgiuMEemVaIUXQnl20A" fontName=".AppleSystemUIFont" fontHeight="8"/>
@@ -2092,9 +1620,505 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EbsViiuMEemVaIUXQnl20A" id="(0.5,0.5)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EbsViyuMEemVaIUXQnl20A" id="(0.5,0.5)"/>
         </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_xxxp4GtOEemKou4M8gs38g" type="4001" element="_xwt59mtOEemKou4M8gs38g" source="_sCCcmSk6Eem-J7NZSmLltA" target="_sCERuyk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_xx3JcGtOEemKou4M8gs38g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xx3JcWtOEemKou4M8gs38g" x="167" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_xx4XkGtOEemKou4M8gs38g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xx4XkWtOEemKou4M8gs38g" x="114" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_xx4-oGtOEemKou4M8gs38g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xx4-oWtOEemKou4M8gs38g" x="50" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_xxxp4WtOEemKou4M8gs38g" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_xxxp4mtOEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xxxp42tOEemKou4M8gs38g" points="[1, 49, -2636, 686]$[1, 155, -2636, 792]$[1318, 155, -1319, 792]$[1318, -623, -1319, 14]$[2578, -623, -59, 14]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xyOV0GtOEemKou4M8gs38g" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xyOV0WtOEemKou4M8gs38g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9SsnwGvwEemZzsuQ__68gg" type="4001" element="_9RJIlGvwEemZzsuQ__68gg" source="_sCJKOik6Eem-J7NZSmLltA" target="_sCJxTik6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9S2YwGvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9S2YwWvwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9S74UGvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9S74UWvwEemZzsuQ__68gg" x="-425" y="37"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9S8fYGvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9S8fYWvwEemZzsuQ__68gg" x="7" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9SsnwWvwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9SsnwmvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9Ssnw2vwEemZzsuQ__68gg" points="[1, 49, 3573, -26]$[1, 106, 3573, 31]$[-3513, 106, 59, 31]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TPaUGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TPaUWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TPaUmvwEemZzsuQ__68gg" type="4001" element="_9RLk0GvwEemZzsuQ__68gg" source="_sCDDsCk6Eem-J7NZSmLltA" target="_sCJxTik6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TQBYGvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TQBYWvwEemZzsuQ__68gg" x="7" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TQBYmvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TQBY2vwEemZzsuQ__68gg" x="2" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TQBZGvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TQBZWvwEemZzsuQ__68gg" x="-2" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9TPaU2vwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TPaVGvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9TPaVWvwEemZzsuQ__68gg" points="[-70, 25, 325, -118]$[-203, 25, 192, -118]$[-203, 107, 192, -36]$[-336, 107, 59, -36]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TQocGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TQocWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TQocmvwEemZzsuQ__68gg" type="4001" element="_9RMy82vwEemZzsuQ__68gg" source="_sCH8Iik6Eem-J7NZSmLltA" target="_sCIjJik6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TQodmvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TQod2vwEemZzsuQ__68gg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TRPgGvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TRPgWvwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TRPgmvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TRPg2vwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9TQoc2vwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TQodGvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9TQodWvwEemZzsuQ__68gg" points="[0, 0, 44, 152]$[-44, -152, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TR2kGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TR2kWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TR2kmvwEemZzsuQ__68gg" type="4001" element="_9ROBE2vwEemZzsuQ__68gg" source="_sCGG6yk6Eem-J7NZSmLltA" target="_sCJxTik6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TSdoGvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TSdoWvwEemZzsuQ__68gg" x="-6" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TSdomvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TSdo2vwEemZzsuQ__68gg" x="72" y="122"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TSdpGvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TSdpWvwEemZzsuQ__68gg" x="1" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9TR2k2vwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TR2lGvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9TR2lWvwEemZzsuQ__68gg" points="[-59, 1, 965, -227]$[-103, 1, 921, -227]$[-103, 206, 921, -22]$[-965, 206, 59, -22]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TTEsGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TTEsWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TTEsmvwEemZzsuQ__68gg" type="4001" element="_9RP2QGvwEemZzsuQ__68gg" source="_sCDDqSk6Eem-J7NZSmLltA" target="_sCH8FCk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TTrwGvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TTrwWvwEemZzsuQ__68gg" x="-31" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TTrwmvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TTrw2vwEemZzsuQ__68gg" x="-9" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TUS0GvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TUS0WvwEemZzsuQ__68gg" x="9" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9TTEs2vwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TTEtGvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9TTEtWvwEemZzsuQ__68gg" points="[-59, -3, 2254, 87]$[-1061, -3, 1252, 87]$[-1061, -140, 1252, -50]$[-2063, -140, 250, -50]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TU54GvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TU54WvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TU54mvwEemZzsuQ__68gg" type="4001" element="_9RRrcGvwEemZzsuQ__68gg" source="_sCGG6yk6Eem-J7NZSmLltA" target="_sCH8FCk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TU55mvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TU552vwEemZzsuQ__68gg" x="52" y="-1"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TVg8GvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TVg8WvwEemZzsuQ__68gg" x="82" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TVg8mvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TVg82vwEemZzsuQ__68gg" x="3" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9TU542vwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TU55GvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9TU55WvwEemZzsuQ__68gg" points="[1, -49, 770, 66]$[1, -74, 770, 41]$[-519, -74, 250, 41]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TWIAGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TWIAWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TWIAmvwEemZzsuQ__68gg" type="4001" element="_9RSShmvwEemZzsuQ__68gg" source="_sCDqpCk6Eem-J7NZSmLltA" target="_sCK_YCk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TWIBmvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TWIB2vwEemZzsuQ__68gg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TWICGvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TWICWvwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TWICmvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TWIC2vwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9TWIA2vwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TWIBGvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9TWIBWvwEemZzsuQ__68gg" points="[0, 0, -152, 178]$[152, -178, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TWvEGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TWvEWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TXWIGvwEemZzsuQ__68gg" type="4001" element="_9RTgo2vwEemZzsuQ__68gg" source="_sCCcoCk6Eem-J7NZSmLltA" target="_sCH8FCk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TXWJGvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TXWJWvwEemZzsuQ__68gg" x="6" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TXWJmvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TXWJ2vwEemZzsuQ__68gg" x="2" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TXWKGvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TXWKWvwEemZzsuQ__68gg" x="-2" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9TXWIWvwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TXWImvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9TXWI2vwEemZzsuQ__68gg" points="[-59, -13, 485, 102]$[-177, -13, 367, 102]$[-177, -49, 367, 66]$[-294, -49, 250, 66]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TYkQGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TYkQWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TYkQmvwEemZzsuQ__68gg" type="4001" element="_9RUuw2vwEemZzsuQ__68gg" source="_sCDqqyk6Eem-J7NZSmLltA" target="_sCH8FCk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TZLUGvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TZLUWvwEemZzsuQ__68gg" x="-16" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TZLUmvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TZLU2vwEemZzsuQ__68gg" x="-5" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TZLVGvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TZLVWvwEemZzsuQ__68gg" x="5" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9TYkQ2vwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TYkRGvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9TYkRWvwEemZzsuQ__68gg" points="[-59, -4, 1914, 103]$[-891, -4, 1082, 103]$[-891, -125, 1082, -18]$[-1723, -125, 250, -18]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TZyYGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TZyYWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TaZcGvwEemZzsuQ__68gg" type="4001" element="_9RV842vwEemZzsuQ__68gg" source="_sCBOeSk6Eem-J7NZSmLltA" target="_sCB1cyk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TaZdGvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TaZdWvwEemZzsuQ__68gg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TaZdmvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TaZd2vwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TaZeGvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TaZeWvwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9TaZcWvwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TaZcmvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9TaZc2vwEemZzsuQ__68gg" points="[0, 0, 48, 161]$[-48, -161, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TbAgGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TbAgWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TbAgmvwEemZzsuQ__68gg" type="4001" element="_9RXLA2vwEemZzsuQ__68gg" source="_sCDDoik6Eem-J7NZSmLltA" target="_sCDDqSk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TbAhmvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TbAh2vwEemZzsuQ__68gg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TbAiGvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TbAiWvwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TbnkGvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TbnkWvwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9TbAg2vwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TbAhGvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9TbAhWvwEemZzsuQ__68gg" points="[0, 0, 36, 172]$[-36, -172, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TbnkmvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Tbnk2vwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TbnlGvwEemZzsuQ__68gg" type="4001" element="_9RYZI2vwEemZzsuQ__68gg" source="_sCFf0Ck6Eem-J7NZSmLltA" target="_sCH8Gyk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TcOoGvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TcOoWvwEemZzsuQ__68gg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TcOomvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TcOo2vwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TcOpGvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TcOpWvwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9TbnlWvwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TbnlmvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9Tbnl2vwEemZzsuQ__68gg" points="[0, 0, 403, 0]$[-403, 0, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TcOpmvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TcOp2vwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9Tc1sGvwEemZzsuQ__68gg" type="4001" element="_9RaOUGvwEemZzsuQ__68gg" source="_sCCcmSk6Eem-J7NZSmLltA" target="_sCCcoCk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9Tc1tGvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Tc1tWvwEemZzsuQ__68gg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9Tc1tmvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Tc1t2vwEemZzsuQ__68gg" x="2" y="-47"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9Tc1uGvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Tc1uWvwEemZzsuQ__68gg" x="-4" y="-54"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9Tc1sWvwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9Tc1smvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9Tc1s2vwEemZzsuQ__68gg" points="[0, 0, 0, 144]$[0, -144, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TdcwGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TdcwWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TdcwmvwEemZzsuQ__68gg" type="4001" element="_9RbccGvwEemZzsuQ__68gg" source="_sCDDsCk6Eem-J7NZSmLltA" target="_sCH8FCk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TeD0GvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TeD0WvwEemZzsuQ__68gg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TeD0mvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TeD02vwEemZzsuQ__68gg" x="-6" y="42"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TeD1GvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TeD1WvwEemZzsuQ__68gg" x="5" y="44"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9Tdcw2vwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TdcxGvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9TdcxWvwEemZzsuQ__68gg" points="[0, 0, 320, 208]$[-320, -208, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Teq4GvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Teq4WvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9Teq4mvwEemZzsuQ__68gg" type="4001" element="_9RcqkGvwEemZzsuQ__68gg" source="_sCHVCyk6Eem-J7NZSmLltA" target="_sCH8FCk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TfR8GvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TfR8WvwEemZzsuQ__68gg" x="-22" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TfR8mvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TfR82vwEemZzsuQ__68gg" x="-7" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TfR9GvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TfR9WvwEemZzsuQ__68gg" x="7" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9Teq42vwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9Teq5GvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9Teq5WvwEemZzsuQ__68gg" points="[-59, -3, 2537, 128]$[-1203, -3, 1393, 128]$[-1203, -161, 1393, -30]$[-2346, -161, 250, -30]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Tf5AGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Tf5AWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9ThHIGvwEemZzsuQ__68gg" type="4001" element="_9Rd4s2vwEemZzsuQ__68gg" source="_sCFf5Sk6Eem-J7NZSmLltA" target="_sCH8FCk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TiVQGvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TiVQWvwEemZzsuQ__68gg" x="-8" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9Ti8UGvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Ti8UWvwEemZzsuQ__68gg" x="-2" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TjjYGvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TjjYWvwEemZzsuQ__68gg" x="2" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9ThHIWvwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9ThHImvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9ThHI2vwEemZzsuQ__68gg" points="[-59, -4, 1710, 103]$[-789, -4, 980, 103]$[-789, -107, 980, 0]$[-1519, -107, 250, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TkKcGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TkKcWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TkxgGvwEemZzsuQ__68gg" type="4001" element="_9RfG02vwEemZzsuQ__68gg" source="_sCB1cyk6Eem-J7NZSmLltA" target="_sCH8FCk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TkxhGvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TkxhWvwEemZzsuQ__68gg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TlYkGvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TlYkWvwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TlYkmvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TlYk2vwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9TkxgWvwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TkxgmvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9Tkxg2vwEemZzsuQ__68gg" points="[0, 0, 1784, 128]$[-1784, -128, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Tl_oGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Tl_oWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9Tl_omvwEemZzsuQ__68gg" type="4001" element="_9RgU8GvwEemZzsuQ__68gg" source="_sCBOcik6Eem-J7NZSmLltA" target="_sCCciyk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9Tl_pmvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Tl_p2vwEemZzsuQ__68gg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TmmsGvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TmmsWvwEemZzsuQ__68gg" x="-4" y="-36"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TmmsmvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Tmms2vwEemZzsuQ__68gg" x="5" y="-86"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9Tl_o2vwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9Tl_pGvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9Tl_pWvwEemZzsuQ__68gg" points="[0, 0, 36, -177]$[-36, 177, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TnNwGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TnNwWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TnNwmvwEemZzsuQ__68gg" type="4001" element="_9RiKI2vwEemZzsuQ__68gg" source="_sCFf3ik6Eem-J7NZSmLltA" target="_sCFf5Sk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TnNxmvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TnNx2vwEemZzsuQ__68gg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TnNyGvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TnNyWvwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9Tn00GvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Tn00WvwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9TnNw2vwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TnNxGvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9TnNxWvwEemZzsuQ__68gg" points="[0, 0, 36, 161]$[-36, -161, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Tn00mvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Tob4GvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9Tob4WvwEemZzsuQ__68gg" type="4001" element="_9RjYQ2vwEemZzsuQ__68gg" source="_sCGG5Ck6Eem-J7NZSmLltA" target="_sCGG6yk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9Tob5WvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Tob5mvwEemZzsuQ__68gg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9Tob52vwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Tob6GvwEemZzsuQ__68gg" y="-58"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9Tob6WvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Tob6mvwEemZzsuQ__68gg" x="-2" y="-74"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9Tob4mvwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9Tob42vwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9Tob5GvwEemZzsuQ__68gg" points="[0, 0, 48, 144]$[-48, -144, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TpC8GvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TpC8WvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TpC8mvwEemZzsuQ__68gg" type="4001" element="_9RkmY2vwEemZzsuQ__68gg" source="_sCAnUCk6Eem-J7NZSmLltA" target="_sCKYUCk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TpqAGvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TpqAWvwEemZzsuQ__68gg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TpqAmvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TpqA2vwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TpqBGvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TpqBWvwEemZzsuQ__68gg" x="-40" y="20"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9TpC82vwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TpC9GvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9TpC9WvwEemZzsuQ__68gg" points="[0, 0, 352, 0]$[-352, 0, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TqREGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TqREWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TqREmvwEemZzsuQ__68gg" type="4001" element="_9Rl0gGvwEemZzsuQ__68gg" source="_sCB1cyk6Eem-J7NZSmLltA" target="_sCJxTik6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9Tq4IGvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Tq4IWvwEemZzsuQ__68gg" x="93" y="8"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9Tq4ImvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Tq4I2vwEemZzsuQ__68gg" x="209" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9Tq4JGvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Tq4JWvwEemZzsuQ__68gg" x="-3" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9TqRE2vwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TqRFGvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9TqRFWvwEemZzsuQ__68gg" points="[-43, 49, 1805, -187]$[-43, 239, 1805, 3]$[-1789, 239, 59, 3]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TrfMGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TrfMWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TrfMmvwEemZzsuQ__68gg" type="4001" element="_9RnCoGvwEemZzsuQ__68gg" source="_sCJxQCk6Eem-J7NZSmLltA" target="_sCJxTik6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TsGQGvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TsGQWvwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TsGQmvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TsGQ2vwEemZzsuQ__68gg" x="105" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TsGRGvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TsGRWvwEemZzsuQ__68gg" x="6" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9TrfM2vwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TrfNGvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9TrfNWvwEemZzsuQ__68gg" points="[1, 49, 3299, -26]$[1, 90, 3299, 15]$[-3239, 90, 59, 15]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TstUGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TstUWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TstUmvwEemZzsuQ__68gg" type="4001" element="_9RoQwGvwEemZzsuQ__68gg" source="_sCDqpCk6Eem-J7NZSmLltA" target="_sCDqqyk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TtUYGvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TtUYWvwEemZzsuQ__68gg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TtUYmvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TtUY2vwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TtUZGvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TtUZWvwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9TstU2vwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TstVGvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9TstVWvwEemZzsuQ__68gg" points="[0, 0, 44, 161]$[-44, -161, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Tt7cGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Tt7cWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9Tt7cmvwEemZzsuQ__68gg" type="4001" element="_9Rpe4GvwEemZzsuQ__68gg" source="_sCJKMyk6Eem-J7NZSmLltA" target="_sCJKOik6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9Tt7dmvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Tt7d2vwEemZzsuQ__68gg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TuigGvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TuigWvwEemZzsuQ__68gg" x="2" y="44"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TuigmvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Tuig2vwEemZzsuQ__68gg" x="-1" y="-64"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9Tt7c2vwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9Tt7dGvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9Tt7dWvwEemZzsuQ__68gg" points="[0, 0, 0, -209]$[0, 209, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TvJkGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TvJkWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TvJkmvwEemZzsuQ__68gg" type="4001" element="_9RqtAGvwEemZzsuQ__68gg" source="_sCCciyk6Eem-J7NZSmLltA" target="_sCGG5Ck6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TvJlmvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TvJl2vwEemZzsuQ__68gg" x="10" y="-6"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TvwoGvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TvwoWvwEemZzsuQ__68gg" x="25" y="15"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TvwomvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Tvwo2vwEemZzsuQ__68gg" x="2" y="-52"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9TvJk2vwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TvJlGvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9TvJlWvwEemZzsuQ__68gg" points="[-59, -10, 185, 15]$[-185, -10, 59, 15]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TvwpGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TvwpWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TwXsGvwEemZzsuQ__68gg" type="4001" element="_9Rr7I2vwEemZzsuQ__68gg" source="_sCIjJik6Eem-J7NZSmLltA" target="_sCJxTik6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9TwXtGvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TwXtWvwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TwXtmvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TwXt2vwEemZzsuQ__68gg" x="234" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9TwXuGvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9TwXuWvwEemZzsuQ__68gg" x="2" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9TwXsWvwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TwXsmvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9TwXs2vwEemZzsuQ__68gg" points="[1, 49, 1617, -187]$[1, 225, 1617, -11]$[-1557, 225, 59, -11]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Tw-wGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Tw-wWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9Tw-wmvwEemZzsuQ__68gg" type="4001" element="_9RtJQ2vwEemZzsuQ__68gg" source="_sCJKQSk6Eem-J7NZSmLltA" target="_sCJxQCk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9Txl0GvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Txl0WvwEemZzsuQ__68gg" x="14" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9Txl0mvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Txl02vwEemZzsuQ__68gg" x="-11" y="-81"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9Txl1GvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Txl1WvwEemZzsuQ__68gg" x="9" y="-95"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9Tw-w2vwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9Tw-xGvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9Tw-xWvwEemZzsuQ__68gg" points="[-4, 49, 42, -160]$[-4, 104, 42, -105]$[-42, 104, 4, -105]$[-42, 160, 4, -49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TyM4GvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TyM4WvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9TyM4mvwEemZzsuQ__68gg" type="4001" element="_9Ru-cGvwEemZzsuQ__68gg" source="_sCHVBCk6Eem-J7NZSmLltA" target="_sCHVCyk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_9Tyz8GvwEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Tyz8WvwEemZzsuQ__68gg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9Tyz8mvwEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Tyz82vwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9Tyz9GvwEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Tyz9WvwEemZzsuQ__68gg" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9TyM42vwEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9TyM5GvwEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9TyM5WvwEemZzsuQ__68gg" points="[0, 0, 69, 137]$[-69, -137, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TzbAGvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9TzbAWvwEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_mPmDEGvxEemZzsuQ__68gg" type="4001" element="_mPU9UGvxEemZzsuQ__68gg" source="_sCB1eik6Eem-J7NZSmLltA" target="_sCHVCyk6Eem-J7NZSmLltA">
+          <children xmi:type="notation:Node" xmi:id="_mPmqIGvxEemZzsuQ__68gg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mPmqIWvxEemZzsuQ__68gg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_mPmqImvxEemZzsuQ__68gg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mPmqI2vxEemZzsuQ__68gg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_mPmqJGvxEemZzsuQ__68gg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mPmqJWvxEemZzsuQ__68gg" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_mPmDEWvxEemZzsuQ__68gg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_mPmDEmvxEemZzsuQ__68gg" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mPmDE2vxEemZzsuQ__68gg" points="[0, 0, 277, 137]$[-277, -137, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mPnRMGvxEemZzsuQ__68gg" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mPn4QGvxEemZzsuQ__68gg" id="(0.5,0.5)"/>
+        </edges>
       </data>
     </ownedAnnotationEntries>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_OZECk6Eem-J7NZSmLltA" name="AppliesToType" tooltipText="" outgoingEdges="_3MgBwCpWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_OZECk6Eem-J7NZSmLltA" name="AppliesToType" tooltipText="" outgoingEdges="_9RkmY2vwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//AppliesToType"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//AppliesToType"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2140,7 +2164,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_UfsCk6Eem-J7NZSmLltA" name="ServiceType" tooltipText="" outgoingEdges="_3Mh29ypWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_UfsCk6Eem-J7NZSmLltA" name="ServiceType" tooltipText="" outgoingEdges="_9RgU8GvwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//ServiceType"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//ServiceType"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2159,7 +2183,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_VGwSk6Eem-J7NZSmLltA" name="Abbreviation" tooltipText="" outgoingEdges="_3MYF9ipWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_VGwSk6Eem-J7NZSmLltA" name="Abbreviation" tooltipText="" outgoingEdges="_9RV842vwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//Abbreviation"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//Abbreviation"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2186,7 +2210,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_Vt0ik6Eem-J7NZSmLltA" name="Abbreviations" tooltipText="" outgoingEdges="_3MTNdipWEem2soT2TDjIcQ _3MgBxypWEem2soT2TDjIcQ" incomingEdges="_3MYF9ipWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_Vt0ik6Eem-J7NZSmLltA" name="Abbreviations" tooltipText="" outgoingEdges="_9RfG02vwEemZzsuQ__68gg _9Rl0gGvwEemZzsuQ__68gg" incomingEdges="_9RV842vwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//Abbreviations"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//Abbreviations"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2197,7 +2221,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_W78Ck6Eem-J7NZSmLltA" name="AbstractLNClass" tooltipText="" outgoingEdges="_sB0aEyk6Eem-J7NZSmLltA _3MZ7JipWEem2soT2TDjIcQ _EaWRsCuMEemVaIUXQnl20A" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_W78Ck6Eem-J7NZSmLltA" name="AbstractLNClass" tooltipText="" outgoingEdges="_sB0aEyk6Eem-J7NZSmLltA _EaWRsCuMEemVaIUXQnl20A _mPU9UGvxEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//AbstractLNClass"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//AbstractLNClass"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2222,7 +2246,7 @@
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
       <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
       <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_r_ZYMCk6Eem-J7NZSmLltA" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_1ulWEGvwEemZzsuQ__68gg" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
         <labelFormat>italic</labelFormat>
         <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
       </ownedStyle>
@@ -2279,7 +2303,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_bNYCk6Eem-J7NZSmLltA" name="ApplicableServices" tooltipText="" outgoingEdges="_3MUbkypWEem2soT2TDjIcQ _3Mgo1ipWEem2soT2TDjIcQ" incomingEdges="_3Mh29ypWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_bNYCk6Eem-J7NZSmLltA" name="ApplicableServices" tooltipText="" outgoingEdges="_3Mgo1ipWEem2soT2TDjIcQ _9RqtAGvwEemZzsuQ__68gg" incomingEdges="_9RgU8GvwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//ApplicableServices"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//ApplicableServices"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2290,7 +2314,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_cbgSk6Eem-J7NZSmLltA" name="BasicType" tooltipText="" outgoingEdges="_3MbwUCpWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_cbgSk6Eem-J7NZSmLltA" name="BasicType" tooltipText="" outgoingEdges="_xwt59mtOEemKou4M8gs38g _9RaOUGvwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//BasicType"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//BasicType"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2317,7 +2341,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_dpoCk6Eem-J7NZSmLltA" name="BasicTypes" tooltipText="" outgoingEdges="_3MeMlipWEem2soT2TDjIcQ" incomingEdges="_3MbwUCpWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_dpoCk6Eem-J7NZSmLltA" name="BasicTypes" tooltipText="" outgoingEdges="_9RTgo2vwEemZzsuQ__68gg" incomingEdges="_9RaOUGvwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//BasicTypes"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//BasicTypes"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2328,7 +2352,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_fe0Ck6Eem-J7NZSmLltA" name="CDC" tooltipText="" outgoingEdges="_sB1BJik6Eem-J7NZSmLltA _3MVpsCpWEem2soT2TDjIcQ _3MZUFipWEem2soT2TDjIcQ _3MaiNipWEem2soT2TDjIcQ _3Mc-dipWEem2soT2TDjIcQ _EaYG5yuMEemVaIUXQnl20A _Eac_YCuMEemVaIUXQnl20A" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_fe0Ck6Eem-J7NZSmLltA" name="CDC" tooltipText="" outgoingEdges="_sB1BJik6Eem-J7NZSmLltA _3MVpsCpWEem2soT2TDjIcQ _3MZUFipWEem2soT2TDjIcQ _3Mc-dipWEem2soT2TDjIcQ _EaYG5yuMEemVaIUXQnl20A _Eac_YCuMEemVaIUXQnl20A _9RXLA2vwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//CDC"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//CDC"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2379,7 +2403,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_gs8ik6Eem-J7NZSmLltA" name="CDCs" tooltipText="" outgoingEdges="_3MezpipWEem2soT2TDjIcQ" incomingEdges="_3MaiNipWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_gs8ik6Eem-J7NZSmLltA" name="CDCs" tooltipText="" outgoingEdges="_9RP2QGvwEemZzsuQ__68gg" incomingEdges="_9RXLA2vwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//CDCs"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//CDCs"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2390,7 +2414,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_h7ESk6Eem-J7NZSmLltA" name="Changes" tooltipText="" outgoingEdges="_3MW31ipWEem2soT2TDjIcQ _3MieBipWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_h7ESk6Eem-J7NZSmLltA" name="Changes" tooltipText="" outgoingEdges="_9RLk0GvwEemZzsuQ__68gg _9RbccGvwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//Changes"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//Changes"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2449,7 +2473,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_jJMSk6Eem-J7NZSmLltA" name="ConstructedAttribute" tooltipText="" outgoingEdges="_sB1BNCk6Eem-J7NZSmLltA _3MO8CSpWEem2soT2TDjIcQ _3MXe4CpWEem2soT2TDjIcQ _3MdlgSpWEem2soT2TDjIcQ" incomingEdges="_sB22ZCk6Eem-J7NZSmLltA" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_jJMSk6Eem-J7NZSmLltA" name="ConstructedAttribute" tooltipText="" outgoingEdges="_sB1BNCk6Eem-J7NZSmLltA _3MO8CSpWEem2soT2TDjIcQ _9RSShmvwEemZzsuQ__68gg _9RoQwGvwEemZzsuQ__68gg" incomingEdges="_sB22ZCk6Eem-J7NZSmLltA" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//ConstructedAttribute"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//ConstructedAttribute"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2468,7 +2492,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_jwQik6Eem-J7NZSmLltA" name="ConstructedAttributes" tooltipText="" outgoingEdges="_3MR_VipWEem2soT2TDjIcQ" incomingEdges="_3MXe4CpWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_jwQik6Eem-J7NZSmLltA" name="ConstructedAttributes" tooltipText="" outgoingEdges="_9RUuw2vwEemZzsuQ__68gg" incomingEdges="_9RoQwGvwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//ConstructedAttributes"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//ConstructedAttributes"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2501,7 +2525,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_mMgCk6Eem-J7NZSmLltA" name="DataAttribute" tooltipText="" outgoingEdges="_sB1oNik6Eem-J7NZSmLltA _EaW4wyuMEemVaIUXQnl20A _EaXf0yuMEemVaIUXQnl20A _EaYG4CuMEemVaIUXQnl20A _EaZVBiuMEemVaIUXQnl20A _EaajJiuMEemVaIUXQnl20A _EabxRiuMEemVaIUXQnl20A" incomingEdges="_3MVpsCpWEem2soT2TDjIcQ _EaW4wyuMEemVaIUXQnl20A _EaYG4CuMEemVaIUXQnl20A" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_mMgCk6Eem-J7NZSmLltA" name="DataAttribute" tooltipText="" outgoingEdges="_sB1oNik6Eem-J7NZSmLltA _EaW4wyuMEemVaIUXQnl20A _EaXf0yuMEemVaIUXQnl20A _EaYG4CuMEemVaIUXQnl20A _EaZVBiuMEemVaIUXQnl20A _EaajJiuMEemVaIUXQnl20A _EabxRiuMEemVaIUXQnl20A" incomingEdges="_3MVpsCpWEem2soT2TDjIcQ _EaW4wyuMEemVaIUXQnl20A _EaYG4CuMEemVaIUXQnl20A _xwt59mtOEemKou4M8gs38g" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//DataAttribute"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//DataAttribute"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2582,7 +2606,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_rsEik6Eem-J7NZSmLltA" name="Doc" tooltipText="" outgoingEdges="_3MfasypWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_rsEik6Eem-J7NZSmLltA" name="Doc" tooltipText="" outgoingEdges="_9RYZI2vwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//Doc"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//Doc"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2656,7 +2680,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_thQik6Eem-J7NZSmLltA" name="Enumeration" tooltipText="" outgoingEdges="_sB1oRCk6Eem-J7NZSmLltA _3MQxNipWEem2soT2TDjIcQ _3MdliCpWEem2soT2TDjIcQ _EabKNiuMEemVaIUXQnl20A" incomingEdges="_EabKNiuMEemVaIUXQnl20A" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_thQik6Eem-J7NZSmLltA" name="Enumeration" tooltipText="" outgoingEdges="_sB1oRCk6Eem-J7NZSmLltA _3MdliCpWEem2soT2TDjIcQ _EabKNiuMEemVaIUXQnl20A _9RiKI2vwEemZzsuQ__68gg" incomingEdges="_EabKNiuMEemVaIUXQnl20A" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//Enumeration"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//Enumeration"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2683,7 +2707,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_uvYik6Eem-J7NZSmLltA" name="Enumerations" tooltipText="" outgoingEdges="_3MXe5ypWEem2soT2TDjIcQ" incomingEdges="_3MQxNipWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_uvYik6Eem-J7NZSmLltA" name="Enumerations" tooltipText="" outgoingEdges="_9Rd4s2vwEemZzsuQ__68gg" incomingEdges="_9RiKI2vwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//Enumerations"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//Enumerations"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2694,7 +2718,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_vWcik6Eem-J7NZSmLltA" name="FunctionalConstraint" tooltipText="" outgoingEdges="_3MhP5ipWEem2soT2TDjIcQ" incomingEdges="_3MUbkypWEem2soT2TDjIcQ _EaZVBiuMEemVaIUXQnl20A" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_vWcik6Eem-J7NZSmLltA" name="FunctionalConstraint" tooltipText="" outgoingEdges="_9RjYQ2vwEemZzsuQ__68gg" incomingEdges="_EaZVBiuMEemVaIUXQnl20A _9RqtAGvwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//FunctionalConstraint"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//FunctionalConstraint"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2729,7 +2753,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_xLoCk6Eem-J7NZSmLltA" name="FunctionalConstraints" tooltipText="" outgoingEdges="_3MSmYCpWEem2soT2TDjIcQ _3MbJQypWEem2soT2TDjIcQ" incomingEdges="_3MhP5ipWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_xLoCk6Eem-J7NZSmLltA" name="FunctionalConstraints" tooltipText="" outgoingEdges="_9ROBE2vwEemZzsuQ__68gg _9RRrcGvwEemZzsuQ__68gg" incomingEdges="_9RjYQ2vwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//FunctionalConstraints"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//FunctionalConstraints"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2802,7 +2826,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_0O8ik6Eem-J7NZSmLltA" name="LNClass" tooltipText="" outgoingEdges="_sB2PSik6Eem-J7NZSmLltA _3MRYQypWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_0O8ik6Eem-J7NZSmLltA" name="LNClass" tooltipText="" outgoingEdges="_sB2PSik6Eem-J7NZSmLltA _9Ru-cGvwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//LNClass"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//LNClass"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2837,7 +2861,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_1dECk6Eem-J7NZSmLltA" name="LNClasses" tooltipText="" outgoingEdges="_3MNG0CpWEem2soT2TDjIcQ" incomingEdges="_3MRYQypWEem2soT2TDjIcQ _3MZ7JipWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_1dECk6Eem-J7NZSmLltA" name="LNClasses" tooltipText="" outgoingEdges="_9RcqkGvwEemZzsuQ__68gg" incomingEdges="_9Ru-cGvwEemZzsuQ__68gg _mPU9UGvxEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//LNClasses"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//LNClasses"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2867,7 +2891,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_2rMik6Eem-J7NZSmLltA" name="NS" tooltipText="" outgoingEdges="_sB2PUSk6Eem-J7NZSmLltA _3MPjFipWEem2soT2TDjIcQ" incomingEdges="_sBbYhik6Eem-J7NZSmLltA _3MNG0CpWEem2soT2TDjIcQ _3MR_VipWEem2soT2TDjIcQ _3MSmYCpWEem2soT2TDjIcQ _3MTNdipWEem2soT2TDjIcQ _3MXe5ypWEem2soT2TDjIcQ _3MeMlipWEem2soT2TDjIcQ _3MezpipWEem2soT2TDjIcQ _3MieBipWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_2rMik6Eem-J7NZSmLltA" name="NS" tooltipText="" outgoingEdges="_sB2PUSk6Eem-J7NZSmLltA _3MPjFipWEem2soT2TDjIcQ" incomingEdges="_sBbYhik6Eem-J7NZSmLltA _9RP2QGvwEemZzsuQ__68gg _9RRrcGvwEemZzsuQ__68gg _9RTgo2vwEemZzsuQ__68gg _9RUuw2vwEemZzsuQ__68gg _9RbccGvwEemZzsuQ__68gg _9RcqkGvwEemZzsuQ__68gg _9Rd4s2vwEemZzsuQ__68gg _9RfG02vwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//NS"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//NS"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2933,8 +2957,18 @@
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
       </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_xu1DkWtOEemKou4M8gs38g" name="findBasicType(basicTypeName EString, console IRiseClipseConsole) : BasicType" tooltipText="findBasicType(basicTypeName, console) : BasicType">
+        <target xmi:type="ecore:EOperation" href="nsd.ecore#//NS/findBasicType"/>
+        <semanticElements xmi:type="ecore:EOperation" href="nsd.ecore#//NS/findBasicType"/>
+        <semanticElements xmi:type="ecore:EParameter" href="nsd.ecore#//NS/findBasicType/basicTypeName"/>
+        <semanticElements xmi:type="ecore:EParameter" href="nsd.ecore#//NS/findBasicType/console"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_xu24wGtOEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+      </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_5HcCk6Eem-J7NZSmLltA" name="NSDoc" tooltipText="" outgoingEdges="_sB22Vik6Eem-J7NZSmLltA" incomingEdges="_sBb_lik6Eem-J7NZSmLltA _3MfasypWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_5HcCk6Eem-J7NZSmLltA" name="NSDoc" tooltipText="" outgoingEdges="_sB22Vik6Eem-J7NZSmLltA" incomingEdges="_sBb_lik6Eem-J7NZSmLltA _9RYZI2vwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//NSDoc"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//NSDoc"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2953,7 +2987,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_5ugik6Eem-J7NZSmLltA" name="PresenceCondition" tooltipText="" outgoingEdges="_3MNt6SpWEem2soT2TDjIcQ _EaYt9iuMEemVaIUXQnl20A _EaZ8EyuMEemVaIUXQnl20A" incomingEdges="_EaXf0yuMEemVaIUXQnl20A _EaZ8GiuMEemVaIUXQnl20A _EacYUCuMEemVaIUXQnl20A" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_5ugik6Eem-J7NZSmLltA" name="PresenceCondition" tooltipText="" outgoingEdges="_EaYt9iuMEemVaIUXQnl20A _EaZ8EyuMEemVaIUXQnl20A _9RMy82vwEemZzsuQ__68gg" incomingEdges="_EaXf0yuMEemVaIUXQnl20A _EaZ8GiuMEemVaIUXQnl20A _EacYUCuMEemVaIUXQnl20A" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//PresenceCondition"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//PresenceCondition"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2996,7 +3030,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_68oSk6Eem-J7NZSmLltA" name="PresenceConditions" tooltipText="" outgoingEdges="_3MVptypWEem2soT2TDjIcQ" incomingEdges="_3MNt6SpWEem2soT2TDjIcQ _3MPjFipWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_68oSk6Eem-J7NZSmLltA" name="PresenceConditions" tooltipText="" outgoingEdges="_9Rr7I2vwEemZzsuQ__68gg" incomingEdges="_3MPjFipWEem2soT2TDjIcQ _9RMy82vwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//PresenceConditions"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//PresenceConditions"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -3007,7 +3041,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_8KxCk6Eem-J7NZSmLltA" name="ServiceCDC" tooltipText="" outgoingEdges="_3MOU9ipWEem2soT2TDjIcQ _3MVCoCpWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_8KxCk6Eem-J7NZSmLltA" name="ServiceCDC" tooltipText="" outgoingEdges="_3MOU9ipWEem2soT2TDjIcQ _9Rpe4GvwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//ServiceCDC"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//ServiceCDC"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -3034,7 +3068,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_9Y4Ck6Eem-J7NZSmLltA" name="ServiceCDCs" tooltipText="" outgoingEdges="_3McXZipWEem2soT2TDjIcQ" incomingEdges="_3MVCoCpWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_9Y4Ck6Eem-J7NZSmLltA" name="ServiceCDCs" tooltipText="" outgoingEdges="_9RJIlGvwEemZzsuQ__68gg" incomingEdges="_9Rpe4GvwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//ServiceCDCs"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//ServiceCDCs"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -3045,7 +3079,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_9_8Ck6Eem-J7NZSmLltA" name="ServiceConstructedAttribute" tooltipText="" outgoingEdges="_sB22ZCk6Eem-J7NZSmLltA _3MQKJipWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_9_8Ck6Eem-J7NZSmLltA" name="ServiceConstructedAttribute" tooltipText="" outgoingEdges="_sB22ZCk6Eem-J7NZSmLltA _9RtJQ2vwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//ServiceConstructedAttribute"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//ServiceConstructedAttribute"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -3064,7 +3098,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_-nASk6Eem-J7NZSmLltA" name="ServiceConstructedAttributes" tooltipText="" outgoingEdges="_3MWQxipWEem2soT2TDjIcQ" incomingEdges="_3MQKJipWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_r_-nASk6Eem-J7NZSmLltA" name="ServiceConstructedAttributes" tooltipText="" outgoingEdges="_9RnCoGvwEemZzsuQ__68gg" incomingEdges="_9RtJQ2vwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//ServiceConstructedAttributes"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//ServiceConstructedAttributes"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -3102,7 +3136,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_sAAcMSk6Eem-J7NZSmLltA" name="ServiceNS" tooltipText="" outgoingEdges="_sB3dbSk6Eem-J7NZSmLltA _3MbwVypWEem2soT2TDjIcQ" incomingEdges="_sBcmpik6Eem-J7NZSmLltA _3MVptypWEem2soT2TDjIcQ _3MWQxipWEem2soT2TDjIcQ _3MW31ipWEem2soT2TDjIcQ _3MbJQypWEem2soT2TDjIcQ _3McXZipWEem2soT2TDjIcQ _3MgBxypWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_sAAcMSk6Eem-J7NZSmLltA" name="ServiceNS" tooltipText="" outgoingEdges="_sB3dbSk6Eem-J7NZSmLltA _3MbwVypWEem2soT2TDjIcQ" incomingEdges="_sBcmpik6Eem-J7NZSmLltA _9RJIlGvwEemZzsuQ__68gg _9RLk0GvwEemZzsuQ__68gg _9ROBE2vwEemZzsuQ__68gg _9Rl0gGvwEemZzsuQ__68gg _9RnCoGvwEemZzsuQ__68gg _9Rr7I2vwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//ServiceNS"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//ServiceNS"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -3113,7 +3147,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_sACRYik6Eem-J7NZSmLltA" name="ServiceNsUsage" tooltipText="" incomingEdges="_3MYtAypWEem2soT2TDjIcQ _3MgBwCpWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_sACRYik6Eem-J7NZSmLltA" name="ServiceNsUsage" tooltipText="" incomingEdges="_3MYtAypWEem2soT2TDjIcQ _9RkmY2vwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//ServiceNsUsage"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//ServiceNsUsage"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -3143,7 +3177,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_sAF7wSk6Eem-J7NZSmLltA" name="ServiceTypeRealizations" tooltipText="" incomingEdges="_3MbwVypWEem2soT2TDjIcQ _3MdlgSpWEem2soT2TDjIcQ" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_sAF7wSk6Eem-J7NZSmLltA" name="ServiceTypeRealizations" tooltipText="" incomingEdges="_3MbwVypWEem2soT2TDjIcQ _9RSShmvwEemZzsuQ__68gg" width="12" height="10">
       <target xmi:type="ecore:EClass" href="nsd.ecore#//ServiceTypeRealizations"/>
       <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//ServiceTypeRealizations"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -3499,29 +3533,9 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MNG0CpWEem2soT2TDjIcQ" sourceNode="_r_1dECk6Eem-J7NZSmLltA" targetNode="_r_2rMik6Eem-J7NZSmLltA" beginLabel="[0..1] lNClasses" endLabel="[0..1] nS">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//LNClasses/nS"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/lNClasses"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//LNClasses/nS"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MNt4ypWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MNt5CpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MNt5SpWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MNt6SpWEem2soT2TDjIcQ" sourceNode="_r_5ugik6Eem-J7NZSmLltA" targetNode="_r_68oSk6Eem-J7NZSmLltA" beginLabel="[0..*] presenceCondition" endLabel="[0..1] presenceConditions">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//PresenceCondition/presenceConditions"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//PresenceConditions/presenceCondition"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//PresenceCondition/presenceConditions"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MOU8CpWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MOU8SpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MOU8ipWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MOU9ipWEem2soT2TDjIcQ" sourceNode="_r_8KxCk6Eem-J7NZSmLltA" targetNode="_r__OESk6Eem-J7NZSmLltA" beginLabel="[0..1] serviceCDC" endLabel="[0..*] serviceDataAttribute">
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MOU9ipWEem2soT2TDjIcQ" sourceNode="_r_8KxCk6Eem-J7NZSmLltA" targetNode="_r__OESk6Eem-J7NZSmLltA" beginLabel="[0..1] parentServiceCDC" endLabel="[0..*] serviceDataAttribute">
       <target xmi:type="ecore:EReference" href="nsd.ecore#//ServiceCDC/serviceDataAttribute"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceDataAttribute/serviceCDC"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceDataAttribute/parentServiceCDC"/>
       <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceCDC/serviceDataAttribute"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MO8AypWEem2soT2TDjIcQ" description="_3MO8ACpWEem2soT2TDjIcQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
         <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MO8BCpWEem2soT2TDjIcQ" showIcon="false"/>
@@ -3529,9 +3543,9 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MO8CSpWEem2soT2TDjIcQ" sourceNode="_r_jJMSk6Eem-J7NZSmLltA" targetNode="_sAGi0ik6Eem-J7NZSmLltA" beginLabel="[0..1] constructedAttribute" endLabel="[0..*] subDataAttribute">
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MO8CSpWEem2soT2TDjIcQ" sourceNode="_r_jJMSk6Eem-J7NZSmLltA" targetNode="_sAGi0ik6Eem-J7NZSmLltA" beginLabel="[0..1] parentConstructedAttribute" endLabel="[0..*] subDataAttribute">
       <target xmi:type="ecore:EReference" href="nsd.ecore#//ConstructedAttribute/subDataAttribute"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//SubDataAttribute/constructedAttribute"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//SubDataAttribute/parentConstructedAttribute"/>
       <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ConstructedAttribute/subDataAttribute"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MPjECpWEem2soT2TDjIcQ" description="_3MO8ACpWEem2soT2TDjIcQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
         <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MPjESpWEem2soT2TDjIcQ" showIcon="false"/>
@@ -3539,9 +3553,9 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MPjFipWEem2soT2TDjIcQ" sourceNode="_r_2rMik6Eem-J7NZSmLltA" targetNode="_r_68oSk6Eem-J7NZSmLltA" beginLabel="[0..1] nS" endLabel="[0..1] presenceConditions">
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MPjFipWEem2soT2TDjIcQ" sourceNode="_r_2rMik6Eem-J7NZSmLltA" targetNode="_r_68oSk6Eem-J7NZSmLltA" beginLabel="[0..1] parentNS" endLabel="[0..1] presenceConditions">
       <target xmi:type="ecore:EReference" href="nsd.ecore#//NS/presenceConditions"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//PresenceConditions/nS"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//PresenceConditions/parentNS"/>
       <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/presenceConditions"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MQKICpWEem2soT2TDjIcQ" description="_3MO8ACpWEem2soT2TDjIcQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
         <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MQKISpWEem2soT2TDjIcQ" showIcon="false"/>
@@ -3549,179 +3563,39 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MQKJipWEem2soT2TDjIcQ" sourceNode="_r_9_8Ck6Eem-J7NZSmLltA" targetNode="_r_-nASk6Eem-J7NZSmLltA" beginLabel="[0..*] serviceConstructedAttribute" endLabel="[0..1] serviceConstructedAttribute">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//ServiceConstructedAttribute/serviceConstructedAttribute"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceConstructedAttribute/serviceConstructedAttribute"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceConstructedAttributes/serviceConstructedAttribute"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MQxMCpWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MQxMSpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MQxMipWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MQxNipWEem2soT2TDjIcQ" sourceNode="_r_thQik6Eem-J7NZSmLltA" targetNode="_r_uvYik6Eem-J7NZSmLltA" beginLabel="[0..*] enumeration" endLabel="[0..1] enumerations">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//Enumeration/enumerations"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Enumerations/enumeration"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Enumeration/enumerations"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MQxNypWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MQxOCpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MQxOSpWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MRYQypWEem2soT2TDjIcQ" sourceNode="_r_0O8ik6Eem-J7NZSmLltA" targetNode="_r_1dECk6Eem-J7NZSmLltA" beginLabel="[0..*] lNClass" endLabel="[0..1] lNClasses">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//LNClass/lNClasses"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//LNClasses/lNClass"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//LNClass/lNClasses"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MR_UCpWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MR_USpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MR_UipWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MR_VipWEem2soT2TDjIcQ" sourceNode="_r_jwQik6Eem-J7NZSmLltA" targetNode="_r_2rMik6Eem-J7NZSmLltA" beginLabel="[0..1] constructedAttributes" endLabel="[0..1] nS">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//ConstructedAttributes/nS"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/constructedAttributes"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ConstructedAttributes/nS"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MR_VypWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MR_WCpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MR_WSpWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MSmYCpWEem2soT2TDjIcQ" sourceNode="_r_xLoCk6Eem-J7NZSmLltA" targetNode="_r_2rMik6Eem-J7NZSmLltA" beginLabel="[0..1] functionalConstraints" endLabel="[0..1] nS">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//FunctionalConstraints/nS"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/functionalConstraints"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//FunctionalConstraints/nS"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MSmYSpWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MSmYipWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MSmYypWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MSmZypWEem2soT2TDjIcQ" sourceNode="_r_k-Yik6Eem-J7NZSmLltA" targetNode="_r_xysCk6Eem-J7NZSmLltA" beginLabel="[0..1] copyrightNotice" endLabel="[0..1] license">
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MSmZypWEem2soT2TDjIcQ" sourceNode="_r_k-Yik6Eem-J7NZSmLltA" targetNode="_r_xysCk6Eem-J7NZSmLltA" beginLabel="[0..1] parentCopyrightNotice" endLabel="[0..1] license">
       <target xmi:type="ecore:EReference" href="nsd.ecore#//CopyrightNotice/license"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//License/copyrightNotice"/>
       <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CopyrightNotice/license"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//License/parentCopyrightNotice"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MTNcCpWEem2soT2TDjIcQ" description="_3MO8ACpWEem2soT2TDjIcQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
         <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MTNcSpWEem2soT2TDjIcQ" showIcon="false"/>
         <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MTNcipWEem2soT2TDjIcQ" showIcon="false"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MTNdipWEem2soT2TDjIcQ" sourceNode="_r_Vt0ik6Eem-J7NZSmLltA" targetNode="_r_2rMik6Eem-J7NZSmLltA" beginLabel="[0..1] abbreviations" endLabel="[0..1] nS">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//Abbreviations/nS"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/abbreviations"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Abbreviations/nS"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MT0gCpWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MT0gSpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MT0gipWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MT0hipWEem2soT2TDjIcQ" sourceNode="_r_YxISk6Eem-J7NZSmLltA" targetNode="_r_oowSk6Eem-J7NZSmLltA" beginLabel="[0..1] anyLNClass" endLabel="[0..*] dataObject">
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MT0hipWEem2soT2TDjIcQ" sourceNode="_r_YxISk6Eem-J7NZSmLltA" targetNode="_r_oowSk6Eem-J7NZSmLltA" beginLabel="[0..1] parentAnyLNClass" endLabel="[0..*] dataObject">
       <target xmi:type="ecore:EReference" href="nsd.ecore#//AnyLNClass/dataObject"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataObject/anyLNClass"/>
       <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//AnyLNClass/dataObject"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataObject/parentAnyLNClass"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MT0hypWEem2soT2TDjIcQ" description="_3MO8ACpWEem2soT2TDjIcQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
         <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MT0iCpWEem2soT2TDjIcQ" showIcon="false"/>
         <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MT0iSpWEem2soT2TDjIcQ" showIcon="false"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MUbkypWEem2soT2TDjIcQ" sourceNode="_r_bNYCk6Eem-J7NZSmLltA" targetNode="_r_vWcik6Eem-J7NZSmLltA" beginLabel="[0..1] applicableServices" endLabel="[0..1] functionalConstraint">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//ApplicableServices/functionalConstraint"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//FunctionalConstraint/applicableServices"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ApplicableServices/functionalConstraint"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MUblCpWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MUblSpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MUblipWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MVCoCpWEem2soT2TDjIcQ" sourceNode="_r_8KxCk6Eem-J7NZSmLltA" targetNode="_r_9Y4Ck6Eem-J7NZSmLltA" beginLabel="[0..*] serviceCDC" endLabel="[0..1] serviceCDCs">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//ServiceCDC/serviceCDCs"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceCDCs/serviceCDC"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceCDC/serviceCDCs"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MVCoSpWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MVCoipWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MVCoypWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MVpsCpWEem2soT2TDjIcQ" sourceNode="_r_fe0Ck6Eem-J7NZSmLltA" targetNode="_r_mMgCk6Eem-J7NZSmLltA" beginLabel="[0..1] cDC" endLabel="[0..*] dataAttribute">
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MVpsCpWEem2soT2TDjIcQ" sourceNode="_r_fe0Ck6Eem-J7NZSmLltA" targetNode="_r_mMgCk6Eem-J7NZSmLltA" beginLabel="[0..1] parentCDC" endLabel="[0..*] dataAttribute">
       <target xmi:type="ecore:EReference" href="nsd.ecore#//CDC/dataAttribute"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataAttribute/cDC"/>
       <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CDC/dataAttribute"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataAttribute/parentCDC"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MVpsSpWEem2soT2TDjIcQ" description="_3MO8ACpWEem2soT2TDjIcQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
         <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MVpsipWEem2soT2TDjIcQ" showIcon="false"/>
         <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MVpsypWEem2soT2TDjIcQ" showIcon="false"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MVptypWEem2soT2TDjIcQ" sourceNode="_r_68oSk6Eem-J7NZSmLltA" targetNode="_sAAcMSk6Eem-J7NZSmLltA" beginLabel="[0..1] presenceConditions" endLabel="[0..1] serviceNS">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//PresenceConditions/serviceNS"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceNS/presenceConditions"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//PresenceConditions/serviceNS"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MWQwCpWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MWQwSpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MWQwipWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MWQxipWEem2soT2TDjIcQ" sourceNode="_r_-nASk6Eem-J7NZSmLltA" targetNode="_sAAcMSk6Eem-J7NZSmLltA" beginLabel="[0..1] serviceConstructedAttributes" endLabel="[0..1] serviceNS">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//ServiceConstructedAttributes/serviceNS"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceNS/serviceConstructedAttributes"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceConstructedAttributes/serviceNS"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MW30CpWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MW30SpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MW30ipWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MW31ipWEem2soT2TDjIcQ" sourceNode="_r_h7ESk6Eem-J7NZSmLltA" targetNode="_sAAcMSk6Eem-J7NZSmLltA" beginLabel="[0..1] changes" endLabel="[0..1] serviceNS">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//Changes/serviceNS"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceNS/changes"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Changes/serviceNS"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MW31ypWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MW32CpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MW32SpWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MXe4CpWEem2soT2TDjIcQ" sourceNode="_r_jJMSk6Eem-J7NZSmLltA" targetNode="_r_jwQik6Eem-J7NZSmLltA" beginLabel="[0..*] constructedAttribute" endLabel="[0..1] constructedAttributes">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//ConstructedAttribute/constructedAttributes"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ConstructedAttributes/constructedAttribute"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ConstructedAttribute/constructedAttributes"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MXe4SpWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MXe4ipWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MXe4ypWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MXe5ypWEem2soT2TDjIcQ" sourceNode="_r_uvYik6Eem-J7NZSmLltA" targetNode="_r_2rMik6Eem-J7NZSmLltA" beginLabel="[0..1] enumerations" endLabel="[0..1] nS">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//Enumerations/nS"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/enumerations"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Enumerations/nS"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MYF8CpWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MYF8SpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MYF8ipWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MYF9ipWEem2soT2TDjIcQ" sourceNode="_r_VGwSk6Eem-J7NZSmLltA" targetNode="_r_Vt0ik6Eem-J7NZSmLltA" beginLabel="[0..*] abbreviation" endLabel="[0..1] abbreviations">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//Abbreviation/abbreviations"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Abbreviations/abbreviation"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Abbreviation/abbreviations"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MYF9ypWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MYF-CpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MYF-SpWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MYtAypWEem2soT2TDjIcQ" sourceNode="_r_Z_QCk6Eem-J7NZSmLltA" targetNode="_sACRYik6Eem-J7NZSmLltA" beginLabel="[0..1] applicableServiceNS" endLabel="[0..*] serviceNsUsage">
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MYtAypWEem2soT2TDjIcQ" sourceNode="_r_Z_QCk6Eem-J7NZSmLltA" targetNode="_sACRYik6Eem-J7NZSmLltA" beginLabel="[0..1] parentApplicableServiceNS" endLabel="[0..*] serviceNsUsage">
       <target xmi:type="ecore:EReference" href="nsd.ecore#//ApplicableServiceNS/serviceNsUsage"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceNsUsage/applicableServiceNS"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceNsUsage/parentApplicableServiceNS"/>
       <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ApplicableServiceNS/serviceNsUsage"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MZUECpWEem2soT2TDjIcQ" description="_3MO8ACpWEem2soT2TDjIcQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
         <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MZUESpWEem2soT2TDjIcQ" showIcon="false"/>
@@ -3729,9 +3603,9 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MZUFipWEem2soT2TDjIcQ" sourceNode="_r_fe0Ck6Eem-J7NZSmLltA" targetNode="_sADfgSk6Eem-J7NZSmLltA" beginLabel="[0..1] cDC" endLabel="[0..1] serviceParameter">
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MZUFipWEem2soT2TDjIcQ" sourceNode="_r_fe0Ck6Eem-J7NZSmLltA" targetNode="_sADfgSk6Eem-J7NZSmLltA" beginLabel="[0..1] parentCDC" endLabel="[0..1] serviceParameter">
       <target xmi:type="ecore:EReference" href="nsd.ecore#//CDC/serviceParameter"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceParameter/cDC"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceParameter/parentCDC"/>
       <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CDC/serviceParameter"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MZ7ICpWEem2soT2TDjIcQ" description="_3MO8ACpWEem2soT2TDjIcQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
         <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MZ7ISpWEem2soT2TDjIcQ" showIcon="false"/>
@@ -3739,49 +3613,9 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MZ7JipWEem2soT2TDjIcQ" sourceNode="_r_W78Ck6Eem-J7NZSmLltA" targetNode="_r_1dECk6Eem-J7NZSmLltA" beginLabel="[0..*] abstractLNClass" endLabel="[0..1] lNClasses">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//AbstractLNClass/lNClasses"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//LNClasses/abstractLNClass"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//AbstractLNClass/lNClasses"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MaiMCpWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MaiMSpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MaiMipWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MaiNipWEem2soT2TDjIcQ" sourceNode="_r_fe0Ck6Eem-J7NZSmLltA" targetNode="_r_gs8ik6Eem-J7NZSmLltA" beginLabel="[0..*] cDC" endLabel="[0..1] cDCs">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//CDC/cDCs"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CDCs/cDC"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CDC/cDCs"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MaiNypWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MaiOCpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MaiOSpWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MbJQypWEem2soT2TDjIcQ" sourceNode="_r_xLoCk6Eem-J7NZSmLltA" targetNode="_sAAcMSk6Eem-J7NZSmLltA" beginLabel="[0..1] functionalConstraints" endLabel="[0..1] serviceNS">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//FunctionalConstraints/serviceNS"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceNS/functionalConstraints"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//FunctionalConstraints/serviceNS"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MbJRCpWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MbJRSpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MbJRipWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MbwUCpWEem2soT2TDjIcQ" sourceNode="_r_cbgSk6Eem-J7NZSmLltA" targetNode="_r_dpoCk6Eem-J7NZSmLltA" beginLabel="[0..*] basicType" endLabel="[0..1] basicTypes">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//BasicType/basicTypes"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//BasicTypes/basicType"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//BasicType/basicTypes"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MbwUSpWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MbwUipWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MbwUypWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MbwVypWEem2soT2TDjIcQ" sourceNode="_sAAcMSk6Eem-J7NZSmLltA" targetNode="_sAF7wSk6Eem-J7NZSmLltA" beginLabel="[0..1] serviceNS" endLabel="[0..1] serviceTypeRealizations">
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MbwVypWEem2soT2TDjIcQ" sourceNode="_sAAcMSk6Eem-J7NZSmLltA" targetNode="_sAF7wSk6Eem-J7NZSmLltA" beginLabel="[0..1] parentServiceNS" endLabel="[0..1] serviceTypeRealizations">
       <target xmi:type="ecore:EReference" href="nsd.ecore#//ServiceNS/serviceTypeRealizations"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceTypeRealizations/serviceNS"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceTypeRealizations/parentServiceNS"/>
       <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceNS/serviceTypeRealizations"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3McXYCpWEem2soT2TDjIcQ" description="_3MO8ACpWEem2soT2TDjIcQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
         <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3McXYSpWEem2soT2TDjIcQ" showIcon="false"/>
@@ -3789,19 +3623,9 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3McXZipWEem2soT2TDjIcQ" sourceNode="_r_9Y4Ck6Eem-J7NZSmLltA" targetNode="_sAAcMSk6Eem-J7NZSmLltA" beginLabel="[0..1] serviceCDCs" endLabel="[0..1] serviceNS">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//ServiceCDCs/serviceNS"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceNS/serviceCDCs"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceCDCs/serviceNS"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3Mc-cCpWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3Mc-cSpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3Mc-cipWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3Mc-dipWEem2soT2TDjIcQ" sourceNode="_r_fe0Ck6Eem-J7NZSmLltA" targetNode="_sAIYASk6Eem-J7NZSmLltA" beginLabel="[0..1] cDC" endLabel="[0..*] subDataObject">
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3Mc-dipWEem2soT2TDjIcQ" sourceNode="_r_fe0Ck6Eem-J7NZSmLltA" targetNode="_sAIYASk6Eem-J7NZSmLltA" beginLabel="[0..1] parentCDC" endLabel="[0..*] subDataObject">
       <target xmi:type="ecore:EReference" href="nsd.ecore#//CDC/subDataObject"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//SubDataObject/cDC"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//SubDataObject/parentCDC"/>
       <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CDC/subDataObject"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3Mc-dypWEem2soT2TDjIcQ" description="_3MO8ACpWEem2soT2TDjIcQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
         <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3Mc-eCpWEem2soT2TDjIcQ" showIcon="false"/>
@@ -3809,130 +3633,40 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MdlgSpWEem2soT2TDjIcQ" sourceNode="_r_jJMSk6Eem-J7NZSmLltA" targetNode="_sAF7wSk6Eem-J7NZSmLltA" beginLabel="[0..*] serviceTypeRealization" endLabel="[0..1] serviceTypeRealizations">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//ConstructedAttribute/serviceTypeRealizations"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceTypeRealizations/serviceTypeRealization"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ConstructedAttribute/serviceTypeRealizations"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MdlgipWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MdlgypWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MdlhCpWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MdliCpWEem2soT2TDjIcQ" sourceNode="_r_thQik6Eem-J7NZSmLltA" targetNode="_r_zn4Sk6Eem-J7NZSmLltA" beginLabel="[0..1] enumeration" endLabel="[0..*] literal">
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MdliCpWEem2soT2TDjIcQ" sourceNode="_r_thQik6Eem-J7NZSmLltA" targetNode="_r_zn4Sk6Eem-J7NZSmLltA" beginLabel="[0..1] parentEnumeration" endLabel="[0..*] literal">
       <target xmi:type="ecore:EReference" href="nsd.ecore#//Enumeration/literal"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Literal/enumeration"/>
       <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Enumeration/literal"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Literal/parentEnumeration"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MeMkCpWEem2soT2TDjIcQ" description="_3MO8ACpWEem2soT2TDjIcQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
         <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MeMkSpWEem2soT2TDjIcQ" showIcon="false"/>
         <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MeMkipWEem2soT2TDjIcQ" showIcon="false"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MeMlipWEem2soT2TDjIcQ" sourceNode="_r_dpoCk6Eem-J7NZSmLltA" targetNode="_r_2rMik6Eem-J7NZSmLltA" beginLabel="[0..1] basicTypes" endLabel="[0..1] nS">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//BasicTypes/nS"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/basicTypes"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//BasicTypes/nS"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MezoCpWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MezoSpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MezoipWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MezpipWEem2soT2TDjIcQ" sourceNode="_r_gs8ik6Eem-J7NZSmLltA" targetNode="_r_2rMik6Eem-J7NZSmLltA" beginLabel="[0..1] cDCs" endLabel="[0..1] nS">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//CDCs/nS"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/cDCs"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CDCs/nS"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MezpypWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MezqCpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MezqSpWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MfasypWEem2soT2TDjIcQ" sourceNode="_r_rsEik6Eem-J7NZSmLltA" targetNode="_r_5HcCk6Eem-J7NZSmLltA" beginLabel="[0..*] doc" endLabel="[0..1] nSDoc">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//Doc/nSDoc"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NSDoc/doc"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Doc/nSDoc"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MfatCpWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MfatSpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MfatipWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MgBwCpWEem2soT2TDjIcQ" sourceNode="_r_OZECk6Eem-J7NZSmLltA" targetNode="_sACRYik6Eem-J7NZSmLltA" beginLabel="[0..*] appliesTo" endLabel="[0..1] serviceNsUsage">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//AppliesToType/serviceNsUsage"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceNsUsage/appliesTo"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//AppliesToType/serviceNsUsage"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MgBwSpWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MgBwipWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MgBwypWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MgBxypWEem2soT2TDjIcQ" sourceNode="_r_Vt0ik6Eem-J7NZSmLltA" targetNode="_sAAcMSk6Eem-J7NZSmLltA" beginLabel="[0..1] abbreviations" endLabel="[0..1] serviceNS">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//Abbreviations/serviceNS"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceNS/abbreviations"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Abbreviations/serviceNS"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3Mgo0CpWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3Mgo0SpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3Mgo0ipWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3Mgo1ipWEem2soT2TDjIcQ" sourceNode="_r_bNYCk6Eem-J7NZSmLltA" targetNode="_r_qd8Ck6Eem-J7NZSmLltA" beginLabel="[0..1] applicableServices" endLabel="[0..*] dataSetMemberOf">
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3Mgo1ipWEem2soT2TDjIcQ" sourceNode="_r_bNYCk6Eem-J7NZSmLltA" targetNode="_r_qd8Ck6Eem-J7NZSmLltA" beginLabel="[0..1] parentApplicableServices" endLabel="[0..*] dataSetMemberOf">
       <target xmi:type="ecore:EReference" href="nsd.ecore#//ApplicableServices/dataSetMemberOf"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataSetMemberOf/applicableServices"/>
       <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ApplicableServices/dataSetMemberOf"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataSetMemberOf/parentApplicableServices"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MhP4CpWEem2soT2TDjIcQ" description="_3MO8ACpWEem2soT2TDjIcQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
         <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MhP4SpWEem2soT2TDjIcQ" showIcon="false"/>
         <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MhP4ipWEem2soT2TDjIcQ" showIcon="false"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MhP5ipWEem2soT2TDjIcQ" sourceNode="_r_vWcik6Eem-J7NZSmLltA" targetNode="_r_xLoCk6Eem-J7NZSmLltA" beginLabel="[0..*] functionalConstraint" endLabel="[0..1] functionalConstraints">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//FunctionalConstraint/functionalConstraints"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//FunctionalConstraints/functionalConstraint"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//FunctionalConstraint/functionalConstraints"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MhP5ypWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MhP6CpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MhP6SpWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3Mh28CpWEem2soT2TDjIcQ" sourceNode="_r_kXUik6Eem-J7NZSmLltA" targetNode="_r_k-Yik6Eem-J7NZSmLltA" beginLabel="[0..1] copyrighted" endLabel="[0..1] copyright">
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3Mh28CpWEem2soT2TDjIcQ" sourceNode="_r_kXUik6Eem-J7NZSmLltA" targetNode="_r_k-Yik6Eem-J7NZSmLltA" beginLabel="[0..1] parentCopyrighted" endLabel="[0..1] copyright">
       <target xmi:type="ecore:EReference" href="nsd.ecore#//Copyrighted/copyright"/>
       <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Copyrighted/copyright"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CopyrightNotice/copyrighted"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CopyrightNotice/parentCopyrighted"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3Mh28SpWEem2soT2TDjIcQ" description="_3MO8ACpWEem2soT2TDjIcQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
         <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3Mh28ipWEem2soT2TDjIcQ" showIcon="false"/>
         <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3Mh28ypWEem2soT2TDjIcQ" showIcon="false"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3Mh29ypWEem2soT2TDjIcQ" sourceNode="_r_UfsCk6Eem-J7NZSmLltA" targetNode="_r_bNYCk6Eem-J7NZSmLltA" beginLabel="[0..*] service" endLabel="[0..1] applicableServices">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//ServiceType/applicableServices"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceType/applicableServices"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ApplicableServices/service"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MieACpWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MieASpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MieAipWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MieBipWEem2soT2TDjIcQ" sourceNode="_r_h7ESk6Eem-J7NZSmLltA" targetNode="_r_2rMik6Eem-J7NZSmLltA" beginLabel="[0..1] changes" endLabel="[0..1] nS">
-      <target xmi:type="ecore:EReference" href="nsd.ecore#//Changes/nS"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/changes"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Changes/nS"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MieBypWEem2soT2TDjIcQ" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MieCCpWEem2soT2TDjIcQ" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MieCSpWEem2soT2TDjIcQ" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MjFEypWEem2soT2TDjIcQ" sourceNode="_r_k-Yik6Eem-J7NZSmLltA" targetNode="_r_2EIik6Eem-J7NZSmLltA" beginLabel="[0..1] copyrightNotice" endLabel="[0..1] notice">
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3MjFEypWEem2soT2TDjIcQ" sourceNode="_r_k-Yik6Eem-J7NZSmLltA" targetNode="_r_2EIik6Eem-J7NZSmLltA" beginLabel="[0..1] parentCopyrightNotice" endLabel="[0..1] notice">
       <target xmi:type="ecore:EReference" href="nsd.ecore#//CopyrightNotice/notice"/>
-      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Notice/copyrightNotice"/>
       <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CopyrightNotice/notice"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Notice/parentCopyrightNotice"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3MjFFCpWEem2soT2TDjIcQ" description="_3MO8ACpWEem2soT2TDjIcQ" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
         <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3MjFFSpWEem2soT2TDjIcQ" showIcon="false"/>
         <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_3MjFFipWEem2soT2TDjIcQ" showIcon="false"/>
@@ -4093,6 +3827,317 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
     </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_xwt59mtOEemKou4M8gs38g" sourceNode="_r_cbgSk6Eem-J7NZSmLltA" targetNode="_r_mMgCk6Eem-J7NZSmLltA" beginLabel="[0..1] refersToBasicType" endLabel="[0..*] referredByDataAttribute">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//BasicType/referredByDataAttribute"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//BasicType/referredByDataAttribute"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataAttribute/refersToBasicType"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_xwvIEGtOEemKou4M8gs38g" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_xwvIEWtOEemKou4M8gs38g" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_xwvIEmtOEemKou4M8gs38g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RJIlGvwEemZzsuQ__68gg" sourceNode="_r_9Y4Ck6Eem-J7NZSmLltA" targetNode="_sAAcMSk6Eem-J7NZSmLltA" beginLabel="[0..1] serviceCDCs" endLabel="[0..1] parentServiceNS">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//ServiceCDCs/parentServiceNS"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceCDCs/parentServiceNS"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceNS/serviceCDCs"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RKWsGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RKWsWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RKWsmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RLk0GvwEemZzsuQ__68gg" sourceNode="_r_h7ESk6Eem-J7NZSmLltA" targetNode="_sAAcMSk6Eem-J7NZSmLltA" beginLabel="[0..1] changes" endLabel="[0..1] parentServiceNS">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//Changes/parentServiceNS"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceNS/changes"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Changes/parentServiceNS"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RML4GvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RML4WvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RML4mvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RMy82vwEemZzsuQ__68gg" sourceNode="_r_5ugik6Eem-J7NZSmLltA" targetNode="_r_68oSk6Eem-J7NZSmLltA" beginLabel="[0..*] presenceCondition" endLabel="[0..1] parentPresenceConditions">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//PresenceCondition/parentPresenceConditions"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//PresenceCondition/parentPresenceConditions"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//PresenceConditions/presenceCondition"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RNaAGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RNaAWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RNaAmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9ROBE2vwEemZzsuQ__68gg" sourceNode="_r_xLoCk6Eem-J7NZSmLltA" targetNode="_sAAcMSk6Eem-J7NZSmLltA" beginLabel="[0..1] functionalConstraints" endLabel="[0..1] parentServiceNS">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//FunctionalConstraints/parentServiceNS"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceNS/functionalConstraints"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//FunctionalConstraints/parentServiceNS"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9ROoIGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9ROoIWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9ROoImvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RP2QGvwEemZzsuQ__68gg" sourceNode="_r_gs8ik6Eem-J7NZSmLltA" targetNode="_r_2rMik6Eem-J7NZSmLltA" beginLabel="[0..1] cDCs" endLabel="[0..1] parentNS">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//CDCs/parentNS"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/cDCs"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CDCs/parentNS"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RREYGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RREYWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RREYmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RRrcGvwEemZzsuQ__68gg" sourceNode="_r_xLoCk6Eem-J7NZSmLltA" targetNode="_r_2rMik6Eem-J7NZSmLltA" beginLabel="[0..1] functionalConstraints" endLabel="[0..1] parentNS">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//FunctionalConstraints/parentNS"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/functionalConstraints"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//FunctionalConstraints/parentNS"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RSSgGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RSSgWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RSSgmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RSShmvwEemZzsuQ__68gg" sourceNode="_r_jJMSk6Eem-J7NZSmLltA" targetNode="_sAF7wSk6Eem-J7NZSmLltA" beginLabel="[0..*] serviceTypeRealization" endLabel="[0..1] parentServiceTypeRealizations">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//ConstructedAttribute/parentServiceTypeRealizations"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ConstructedAttribute/parentServiceTypeRealizations"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceTypeRealizations/serviceTypeRealization"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RS5kGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RS5kWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RS5kmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RTgo2vwEemZzsuQ__68gg" sourceNode="_r_dpoCk6Eem-J7NZSmLltA" targetNode="_r_2rMik6Eem-J7NZSmLltA" beginLabel="[0..1] basicTypes" endLabel="[0..1] parentNS">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//BasicTypes/parentNS"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/basicTypes"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//BasicTypes/parentNS"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RUHsGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RUHsWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RUHsmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RUuw2vwEemZzsuQ__68gg" sourceNode="_r_jwQik6Eem-J7NZSmLltA" targetNode="_r_2rMik6Eem-J7NZSmLltA" beginLabel="[0..1] constructedAttributes" endLabel="[0..1] parentNS">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//ConstructedAttributes/parentNS"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/constructedAttributes"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ConstructedAttributes/parentNS"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RVV0GvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RVV0WvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RVV0mvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RV842vwEemZzsuQ__68gg" sourceNode="_r_VGwSk6Eem-J7NZSmLltA" targetNode="_r_Vt0ik6Eem-J7NZSmLltA" beginLabel="[0..*] abbreviation" endLabel="[0..1] parentAbbreviations">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//Abbreviation/parentAbbreviations"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Abbreviations/abbreviation"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Abbreviation/parentAbbreviations"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RWj8GvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RWj8WvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RWj8mvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RXLA2vwEemZzsuQ__68gg" sourceNode="_r_fe0Ck6Eem-J7NZSmLltA" targetNode="_r_gs8ik6Eem-J7NZSmLltA" beginLabel="[0..*] cDC" endLabel="[0..1] parentCDCs">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//CDC/parentCDCs"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CDCs/cDC"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CDC/parentCDCs"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RXyEGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RXyEWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RXyEmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RYZI2vwEemZzsuQ__68gg" sourceNode="_r_rsEik6Eem-J7NZSmLltA" targetNode="_r_5HcCk6Eem-J7NZSmLltA" beginLabel="[0..*] doc" endLabel="[0..1] parentNSDoc">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//Doc/parentNSDoc"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NSDoc/doc"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Doc/parentNSDoc"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RZnQGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RZnQWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RZnQmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RaOUGvwEemZzsuQ__68gg" sourceNode="_r_cbgSk6Eem-J7NZSmLltA" targetNode="_r_dpoCk6Eem-J7NZSmLltA" beginLabel="[0..*] basicType" endLabel="[0..1] parentBasicTypes">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//BasicType/parentBasicTypes"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//BasicTypes/basicType"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//BasicType/parentBasicTypes"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9Ra1YGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9Ra1YWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9Ra1YmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RbccGvwEemZzsuQ__68gg" sourceNode="_r_h7ESk6Eem-J7NZSmLltA" targetNode="_r_2rMik6Eem-J7NZSmLltA" beginLabel="[0..1] changes" endLabel="[0..1] parentNS">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//Changes/parentNS"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/changes"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Changes/parentNS"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RcDgGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RcDgWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RcDgmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RcqkGvwEemZzsuQ__68gg" sourceNode="_r_1dECk6Eem-J7NZSmLltA" targetNode="_r_2rMik6Eem-J7NZSmLltA" beginLabel="[0..1] lNClasses" endLabel="[0..1] parentNS">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//LNClasses/parentNS"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/lNClasses"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//LNClasses/parentNS"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RdRoGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RdRoWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RdRomvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9Rd4s2vwEemZzsuQ__68gg" sourceNode="_r_uvYik6Eem-J7NZSmLltA" targetNode="_r_2rMik6Eem-J7NZSmLltA" beginLabel="[0..1] enumerations" endLabel="[0..1] parentNS">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//Enumerations/parentNS"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/enumerations"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Enumerations/parentNS"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RefwGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RefwWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RefwmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RfG02vwEemZzsuQ__68gg" sourceNode="_r_Vt0ik6Eem-J7NZSmLltA" targetNode="_r_2rMik6Eem-J7NZSmLltA" beginLabel="[0..1] abbreviations" endLabel="[0..1] parentNS">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//Abbreviations/parentNS"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/abbreviations"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Abbreviations/parentNS"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9Rft4GvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9Rft4WvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9Rft4mvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RgU8GvwEemZzsuQ__68gg" sourceNode="_r_UfsCk6Eem-J7NZSmLltA" targetNode="_r_bNYCk6Eem-J7NZSmLltA" beginLabel="[0..*] service" endLabel="[0..1] parentApplicableServices">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//ServiceType/parentApplicableServices"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceType/parentApplicableServices"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ApplicableServices/service"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RhjEGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RhjEWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RhjEmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RiKI2vwEemZzsuQ__68gg" sourceNode="_r_thQik6Eem-J7NZSmLltA" targetNode="_r_uvYik6Eem-J7NZSmLltA" beginLabel="[0..*] enumeration" endLabel="[0..1] parentEnumerations">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//Enumeration/parentEnumerations"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Enumerations/enumeration"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Enumeration/parentEnumerations"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RixMGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RixMWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RixMmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RjYQ2vwEemZzsuQ__68gg" sourceNode="_r_vWcik6Eem-J7NZSmLltA" targetNode="_r_xLoCk6Eem-J7NZSmLltA" beginLabel="[0..*] functionalConstraint" endLabel="[0..1] parentFunctionalConstraints">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//FunctionalConstraint/parentFunctionalConstraints"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//FunctionalConstraints/functionalConstraint"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//FunctionalConstraint/parentFunctionalConstraints"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9Rj_UGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9Rj_UWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9Rj_UmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RkmY2vwEemZzsuQ__68gg" sourceNode="_r_OZECk6Eem-J7NZSmLltA" targetNode="_sACRYik6Eem-J7NZSmLltA" beginLabel="[0..*] appliesTo" endLabel="[0..1] parentServiceNsUsage">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//AppliesToType/parentServiceNsUsage"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceNsUsage/appliesTo"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//AppliesToType/parentServiceNsUsage"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RlNcGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RlNcWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RlNcmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9Rl0gGvwEemZzsuQ__68gg" sourceNode="_r_Vt0ik6Eem-J7NZSmLltA" targetNode="_sAAcMSk6Eem-J7NZSmLltA" beginLabel="[0..1] abbreviations" endLabel="[0..1] parentServiceNS">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//Abbreviations/parentServiceNS"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceNS/abbreviations"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Abbreviations/parentServiceNS"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RmbkGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RmbkWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RmbkmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RnCoGvwEemZzsuQ__68gg" sourceNode="_r_-nASk6Eem-J7NZSmLltA" targetNode="_sAAcMSk6Eem-J7NZSmLltA" beginLabel="[0..1] serviceConstructedAttributes" endLabel="[0..1] parentServiceNS">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//ServiceConstructedAttributes/parentServiceNS"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceConstructedAttributes/parentServiceNS"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceNS/serviceConstructedAttributes"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RnpsGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RnpsWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RnpsmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RoQwGvwEemZzsuQ__68gg" sourceNode="_r_jJMSk6Eem-J7NZSmLltA" targetNode="_r_jwQik6Eem-J7NZSmLltA" beginLabel="[0..*] constructedAttribute" endLabel="[0..1] parentConstructedAttributes">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//ConstructedAttribute/parentConstructedAttributes"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ConstructedAttributes/constructedAttribute"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ConstructedAttribute/parentConstructedAttributes"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9Ro30GvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9Ro30WvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9Ro30mvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9Rpe4GvwEemZzsuQ__68gg" sourceNode="_r_8KxCk6Eem-J7NZSmLltA" targetNode="_r_9Y4Ck6Eem-J7NZSmLltA" beginLabel="[0..*] serviceCDC" endLabel="[0..1] parentServiceCDCs">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//ServiceCDC/parentServiceCDCs"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceCDC/parentServiceCDCs"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceCDCs/serviceCDC"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RqF8GvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RqF8WvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RqF8mvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RqtAGvwEemZzsuQ__68gg" sourceNode="_r_bNYCk6Eem-J7NZSmLltA" targetNode="_r_vWcik6Eem-J7NZSmLltA" beginLabel="[0..1] applicableServices" endLabel="[0..1] parentFunctionalConstraint">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//ApplicableServices/parentFunctionalConstraint"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//FunctionalConstraint/applicableServices"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ApplicableServices/parentFunctionalConstraint"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RrUEGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RrUEWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RrUEmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9Rr7I2vwEemZzsuQ__68gg" sourceNode="_r_68oSk6Eem-J7NZSmLltA" targetNode="_sAAcMSk6Eem-J7NZSmLltA" beginLabel="[0..1] presenceConditions" endLabel="[0..1] parentServiceNS">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//PresenceConditions/parentServiceNS"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//PresenceConditions/parentServiceNS"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceNS/presenceConditions"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RsiMGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RsiMWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RsiMmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9RtJQ2vwEemZzsuQ__68gg" sourceNode="_r_9_8Ck6Eem-J7NZSmLltA" targetNode="_r_-nASk6Eem-J7NZSmLltA" beginLabel="[0..*] serviceConstructedAttribute" endLabel="[0..1] parentServiceConstructedAttributes">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//ServiceConstructedAttribute/parentServiceConstructedAttributes"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceConstructedAttribute/parentServiceConstructedAttributes"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//ServiceConstructedAttributes/serviceConstructedAttribute"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RtwUGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RtwUWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RtwUmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9Ru-cGvwEemZzsuQ__68gg" sourceNode="_r_0O8ik6Eem-J7NZSmLltA" targetNode="_r_1dECk6Eem-J7NZSmLltA" beginLabel="[0..*] lNClass" endLabel="[0..1] parentLNClasses">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//LNClass/parentLNClasses"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//LNClasses/lNClass"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//LNClass/parentLNClasses"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9RvlgGvwEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9RvlgWvwEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9RvlgmvwEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_mPU9UGvxEemZzsuQ__68gg" sourceNode="_r_W78Ck6Eem-J7NZSmLltA" targetNode="_r_1dECk6Eem-J7NZSmLltA" beginLabel="[0..*] abstractLNClass" endLabel="[0..1] parentLNClasses">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//AbstractLNClass/parentLNClasses"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//LNClasses/abstractLNClass"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//AbstractLNClass/parentLNClasses"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_mPVkYGvxEemZzsuQ__68gg" description="_3MNt4CpWEem2soT2TDjIcQ" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_mPVkYWvxEemZzsuQ__68gg" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_mPVkYmvxEemZzsuQ__68gg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
     <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
     <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_rQwJgCk6Eem-J7NZSmLltA"/>
     <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
@@ -4101,4 +4146,1211 @@
     <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']/@ownedRepresentationExtensions[name='Entities%20With%20Archetypes']/@layers[name='Archetypes']"/>
     <target xmi:type="ecore:EPackage" href="nsd.ecore#/"/>
   </diagram:DSemanticDiagram>
+  <diagram:DSemanticDiagram uid="_-IhkIGtOEemKou4M8gs38g" name="Data">
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_-IzQ8GtOEemKou4M8gs38g" source="DANNOTATION_CUSTOMIZATION_KEY">
+      <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_-IzQ8WtOEemKou4M8gs38g">
+        <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_JJohIGtPEemKou4M8gs38g" sourceArrow="FillDiamond" routingStyle="manhattan">
+          <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          <beginLabelStyleDescription xmi:type="style:BeginLabelStyleDescription" xmi:id="_JJohIWtPEemKou4M8gs38g" showIcon="false" labelExpression="service:renderEOpposite">
+            <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          </beginLabelStyleDescription>
+          <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_JJohImtPEemKou4M8gs38g" showIcon="false" labelExpression="service:render">
+            <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          </endLabelStyleDescription>
+        </computedStyleDescriptions>
+        <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_JUAvsGtQEemKou4M8gs38g" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan">
+          <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          <beginLabelStyleDescription xmi:type="style:BeginLabelStyleDescription" xmi:id="_JUAvsWtQEemKou4M8gs38g" showIcon="false" labelExpression="service:renderEOpposite">
+            <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          </beginLabelStyleDescription>
+          <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_JUAvsmtQEemKou4M8gs38g" showIcon="false" labelExpression="service:render">
+            <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          </endLabelStyleDescription>
+        </computedStyleDescriptions>
+        <computedStyleDescriptions xmi:type="style:FlatContainerStyleDescription" xmi:id="_Q5t80GtQEemKou4M8gs38g" arcWidth="8" arcHeight="8" borderSizeComputationExpression="1" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" tooltipExpression="service:renderTooltip" roundedCorner="true" widthComputationExpression="12" heightComputationExpression="10" backgroundStyle="Liquid">
+          <borderColor xmi:type="description:UserFixedColor" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@userColorsPalettes[name='Ecore%20Palette']/@entries[name='Dark%20EClass']"/>
+          <labelFormat>italic</labelFormat>
+          <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          <backgroundColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+          <foregroundColor xmi:type="description:UserFixedColor" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@userColorsPalettes[name='Ecore%20Palette']/@entries[name='MomentIntervalColor']"/>
+        </computedStyleDescriptions>
+      </data>
+    </ownedAnnotationEntries>
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_-JLEYGtOEemKou4M8gs38g" source="GMF_DIAGRAMS">
+      <data xmi:type="notation:Diagram" xmi:id="_-JLrcGtOEemKou4M8gs38g" type="Sirius" element="_-IhkIGtOEemKou4M8gs38g" measurementUnit="Pixel">
+        <children xmi:type="notation:Node" xmi:id="_G86x8GtPEemKou4M8gs38g" type="2003" element="_G8qTQGtPEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_G87ZAGtPEemKou4M8gs38g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_G87ZAWtPEemKou4M8gs38g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_G87ZBGtPEemKou4M8gs38g" visible="false" type="3010" element="_G8vLwGtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_G87ZBWtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_G87ZBmtPEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_G88AEGtPEemKou4M8gs38g" visible="false" type="3010" element="_G8vy0GtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_G88AEWtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_G88AEmtPEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_G88AE2tPEemKou4M8gs38g" visible="false" type="3010" element="_G8wZ4GtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_G88AFGtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_G88AFWtPEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_G88nIGtPEemKou4M8gs38g" visible="false" type="3010" element="_G8wZ4mtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_G88nIWtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_G88nImtPEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_G88nI2tPEemKou4M8gs38g" visible="false" type="3010" element="_G8yPEGtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_G88nJGtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_G88nJWtPEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_G89OMGtPEemKou4M8gs38g" type="3010" element="_G8y2IGtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_G89OMWtPEemKou4M8gs38g" fontColor="8224125" fontName=".AppleSystemUIFont" fontHeight="8" italic="true"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_G89OMmtPEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_G89OM2tPEemKou4M8gs38g" type="3010" element="_G8zdMGtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_G89ONGtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_G89ONWtPEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_G891QGtPEemKou4M8gs38g" type="3010" element="_G8zdMmtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_G891QWtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_G891QmtPEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_G891Q2tPEemKou4M8gs38g" type="3010" element="_G80EQWtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_G891RGtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_G8-cUGtPEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_G8-cUWtPEemKou4M8gs38g" type="3010" element="_G80rUWtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_G8-cUmtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_G8-cU2tPEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_G8_DYGtPEemKou4M8gs38g" type="3010" element="_G81SYGtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_G8_DYWtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_G8_DYmtPEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_G8_DY2tPEemKou4M8gs38g" type="3010" element="_G81SYmtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_G8_DZGtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_G8_DZWtPEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_G8_qcGtPEemKou4M8gs38g" type="3010" element="_G815cWtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_G8_qcWtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_G8_qcmtPEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_G8_qc2tPEemKou4M8gs38g" type="3010" element="_G82ggWtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_G8_qdGtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_G8_qdWtPEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_G9BfoGtPEemKou4M8gs38g" type="3010" element="_G83uoWtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_G9BfoWtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_G9BfomtPEemKou4M8gs38g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_G87ZAmtPEemKou4M8gs38g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_G87ZA2tPEemKou4M8gs38g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_G86x8WtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G86x8mtPEemKou4M8gs38g" x="64" y="52"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_JJrkcGtPEemKou4M8gs38g" type="2003" element="_JJc68GtPEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_JJsLgGtPEemKou4M8gs38g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_JJsLgWtPEemKou4M8gs38g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_JJsykGtPEemKou4M8gs38g" type="3010" element="_JJld0GtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_JJsykWtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_JJsykmtPEemKou4M8gs38g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_JJsLgmtPEemKou4M8gs38g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_JJsLg2tPEemKou4M8gs38g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_JJrkcWtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JJrkcmtPEemKou4M8gs38g" x="705" y="88"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_LFB20GtPEemKou4M8gs38g" type="2003" element="_LEzNUGtPEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_LFCd4GtPEemKou4M8gs38g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_LFCd4WtPEemKou4M8gs38g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_LFDE8GtPEemKou4M8gs38g" type="3010" element="_LE57AWtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_LFDE8WtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_LFDE8mtPEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_LFDE82tPEemKou4M8gs38g" type="3010" element="_LE6iEGtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_LFDE9GtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_LFDE9WtPEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_LFDsAGtPEemKou4M8gs38g" type="3010" element="_LE6iEmtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_LFDsAWtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_LFDsAmtPEemKou4M8gs38g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_LFCd4mtPEemKou4M8gs38g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_LFCd42tPEemKou4M8gs38g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_LFB20WtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LFB20mtPEemKou4M8gs38g" x="689" y="296"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_uScm0GtPEemKou4M8gs38g" type="2003" element="_uSMvMGtPEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_uSdN4GtPEemKou4M8gs38g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_uSdN4WtPEemKou4M8gs38g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_uSd08GtPEemKou4M8gs38g" type="3010" element="_uSV5ImtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_uSd08WtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_uSd08mtPEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_uSd082tPEemKou4M8gs38g" type="3010" element="_uSWgMGtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_uSecAGtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_uSecAWtPEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_uSecAmtPEemKou4M8gs38g" type="3010" element="_uSWgMmtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_uSecA2tPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_uSecBGtPEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_uSfDE2tPEemKou4M8gs38g" type="3010" element="_uSXuUmtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_uSfDFGtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_uSfDFWtPEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_uSfDFmtPEemKou4M8gs38g" type="3010" element="_uSYVYWtPEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_uSfDF2tPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_uSfDGGtPEemKou4M8gs38g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_uSdN4mtPEemKou4M8gs38g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_uSdN42tPEemKou4M8gs38g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_uScm0WtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uScm0mtPEemKou4M8gs38g" x="660" y="472"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_JUB90GtQEemKou4M8gs38g" type="2003" element="_JTw4EGtQEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_JUCk4GtQEemKou4M8gs38g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_JUCk4WtQEemKou4M8gs38g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_JUCk5GtQEemKou4M8gs38g" type="3010" element="_JT73MGtQEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_JUCk5WtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_JUDL8GtQEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_JUDL8WtQEemKou4M8gs38g" visible="false" type="3010" element="_JT8eQGtQEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_JUDL8mtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_JUDL82tQEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_JUDL9GtQEemKou4M8gs38g" visible="false" type="3010" element="_JT8eQmtQEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_JUDL9WtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_JUDL9mtQEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_JUDL92tQEemKou4M8gs38g" type="3010" element="_JT9FUWtQEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_JUDL-GtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_JUDL-WtQEemKou4M8gs38g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_JUCk4mtQEemKou4M8gs38g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_JUCk42tQEemKou4M8gs38g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_JUB90WtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8" italic="true"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JUB90mtQEemKou4M8gs38g" x="992" y="280"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_YFN6MGtQEemKou4M8gs38g" type="2003" element="_YE6_QGtQEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_YFN6M2tQEemKou4M8gs38g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_YFOhQGtQEemKou4M8gs38g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_YFOhQ2tQEemKou4M8gs38g" type="3010" element="_YFEwRGtQEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_YFOhRGtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_YFOhRWtQEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_YFPIUGtQEemKou4M8gs38g" type="3010" element="_YFFXUWtQEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_YFPIUWtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_YFPIUmtQEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_YFPIU2tQEemKou4M8gs38g" type="3010" element="_YFFXU2tQEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_YFPIVGtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_YFPIVWtQEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_YFPIVmtQEemKou4M8gs38g" type="3010" element="_YFF-YWtQEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_YFPIV2tQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_YFPIWGtQEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_YFPIWWtQEemKou4M8gs38g" type="3010" element="_YFF-Y2tQEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_YFPIWmtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_YFPIW2tQEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_YFPvZmtQEemKou4M8gs38g" type="3010" element="_YFGldGtQEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_YFPvZ2tQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_YFPvaGtQEemKou4M8gs38g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_YFOhQWtQEemKou4M8gs38g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_YFOhQmtQEemKou4M8gs38g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_YFN6MWtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YFN6MmtQEemKou4M8gs38g" x="278" y="444"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_cYma8GtQEemKou4M8gs38g" type="2003" element="_cYUHEGtQEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_cYnCAGtQEemKou4M8gs38g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_cYnCAWtQEemKou4M8gs38g" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_cYnCAmtQEemKou4M8gs38g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_cYnCA2tQEemKou4M8gs38g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_cYma8WtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cYma8mtQEemKou4M8gs38g" x="350" y="280"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_pM7CAGtQEemKou4M8gs38g" type="2003" element="_pMqjUGtQEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_pM7CA2tQEemKou4M8gs38g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_pM7CBGtQEemKou4M8gs38g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_pM7pEGtQEemKou4M8gs38g" type="3010" element="_pMzGMGtQEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_pM7pEWtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_pM7pEmtQEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_pM7pE2tQEemKou4M8gs38g" type="3010" element="_pMzGMmtQEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_pM7pFGtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_pM7pFWtQEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_pM8QI2tQEemKou4M8gs38g" type="3010" element="_pMztRGtQEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_pM8QJGtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_pM8QJWtQEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_pM8QJmtQEemKou4M8gs38g" type="3010" element="_pM0UUGtQEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_pM8QJ2tQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_pM8QKGtQEemKou4M8gs38g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_pM7CBWtQEemKou4M8gs38g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_pM7CBmtQEemKou4M8gs38g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_pM7CAWtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pM7CAmtQEemKou4M8gs38g" x="-124" y="440"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_2hJ4MGtQEemKou4M8gs38g" type="2003" element="_2g4LYGtQEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_2hKfQGtQEemKou4M8gs38g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_2hKfQWtQEemKou4M8gs38g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_2hLGUGtQEemKou4M8gs38g" type="3010" element="_2hAuQWtQEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_2hLGUWtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_2hLGUmtQEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_2hLGU2tQEemKou4M8gs38g" type="3010" element="_2hAuQ2tQEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_2hLGVGtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_2hLGVWtQEemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_2hLtYGtQEemKou4M8gs38g" type="3010" element="_2hBVUGtQEemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_2hLtYWtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_2hLtYmtQEemKou4M8gs38g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_2hKfQmtQEemKou4M8gs38g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_2hKfQ2tQEemKou4M8gs38g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_2hJ4MWtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2hJ4MmtQEemKou4M8gs38g" x="284" y="740"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_XBkPYGtREemKou4M8gs38g" type="2003" element="_XBTwsGtREemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_XBk2cGtREemKou4M8gs38g" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_XBk2cWtREemKou4M8gs38g" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_XBldgGtREemKou4M8gs38g" type="3010" element="_XBaeZWtREemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_XBldgWtREemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_XBldgmtREemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_XBldg2tREemKou4M8gs38g" type="3010" element="_XBbFcWtREemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_XBldhGtREemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_XBldhWtREemKou4M8gs38g"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_XBldhmtREemKou4M8gs38g" type="3010" element="_XBbsgGtREemKou4M8gs38g">
+              <styles xmi:type="notation:FontStyle" xmi:id="_XBldh2tREemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_XBldiGtREemKou4M8gs38g"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_XBk2cmtREemKou4M8gs38g"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_XBk2c2tREemKou4M8gs38g"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_XBkPYWtREemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XBkPYmtREemKou4M8gs38g" x="-63" y="688"/>
+        </children>
+        <styles xmi:type="notation:DiagramStyle" xmi:id="_-JLrcWtOEemKou4M8gs38g"/>
+        <edges xmi:type="notation:Edge" xmi:id="_JJuAsGtPEemKou4M8gs38g" type="4001" element="_JJnTAGtPEemKou4M8gs38g" source="_G86x8GtPEemKou4M8gs38g" target="_JJrkcGtPEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_JJuAtGtPEemKou4M8gs38g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JJuAtWtPEemKou4M8gs38g" x="22" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_JJuAtmtPEemKou4M8gs38g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JJuAt2tPEemKou4M8gs38g" x="-33" y="-12"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_JJunwGtPEemKou4M8gs38g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JJunwWtPEemKou4M8gs38g" x="17" y="18"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_JJuAsWtPEemKou4M8gs38g" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_JJuAsmtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JJuAs2tPEemKou4M8gs38g" points="[108, -27, -511, -10]$[534, -27, -85, -10]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JJvO0GtPEemKou4M8gs38g" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JJvO0WtPEemKou4M8gs38g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_LFE6IGtPEemKou4M8gs38g" type="4001" element="_LE-McGtPEemKou4M8gs38g" source="_JJrkcGtPEemKou4M8gs38g" target="_LFB20GtPEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_LFE6JGtPEemKou4M8gs38g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LFE6JWtPEemKou4M8gs38g" y="-2"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_LFE6JmtPEemKou4M8gs38g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LFE6J2tPEemKou4M8gs38g" x="-2" y="-44"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_LFE6KGtPEemKou4M8gs38g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LFE6KWtPEemKou4M8gs38g" x="5" y="38"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_LFE6IWtPEemKou4M8gs38g" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_LFE6ImtPEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LFE6I2tPEemKou4M8gs38g" points="[-50, 49, -23, -159]$[-50, 159, -23, -49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LFFhMGtPEemKou4M8gs38g" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LFFhMWtPEemKou4M8gs38g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_JUDzAGtQEemKou4M8gs38g" type="4001" element="_JT-TcGtQEemKou4M8gs38g" source="_LFB20GtPEemKou4M8gs38g" target="_JUB90GtQEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_JUDzBGtQEemKou4M8gs38g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JUDzBWtQEemKou4M8gs38g" x="61" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_JUDzBmtQEemKou4M8gs38g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JUDzB2tQEemKou4M8gs38g" x="17" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_JUDzCGtQEemKou4M8gs38g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JUDzCWtQEemKou4M8gs38g" x="-20" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_JUDzAWtQEemKou4M8gs38g" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_JUDzAmtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JUDzA2tQEemKou4M8gs38g" points="[0, -16, -159, -5]$[0, -64, -159, -53]$[262, -64, 103, -53]$[262, -32, 103, -21]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JUDzCmtQEemKou4M8gs38g" id="(0.7019867549668874,0.05)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JUEaEGtQEemKou4M8gs38g" id="(0.0048543689320388345,0.21999999999999997)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_JUEaEWtQEemKou4M8gs38g" type="4001" element="_JUAIpmtQEemKou4M8gs38g" source="_uScm0GtPEemKou4M8gs38g" target="_JUB90GtQEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_JUEaFWtQEemKou4M8gs38g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JUEaFmtQEemKou4M8gs38g" x="4" y="-32"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_JUEaF2tQEemKou4M8gs38g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JUEaGGtQEemKou4M8gs38g" x="6" y="17"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_JUEaGWtQEemKou4M8gs38g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JUEaGmtQEemKou4M8gs38g" x="22" y="48"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_JUEaEmtQEemKou4M8gs38g" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_JUEaE2tQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JUEaFGtQEemKou4M8gs38g" points="[145, -10, -145, 195]$[280, -10, -10, 195]$[280, -156, -10, 49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JUEaG2tQEemKou4M8gs38g" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JUEaHGtQEemKou4M8gs38g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_YFQWc2tQEemKou4M8gs38g" type="4001" element="_YFK24GtQEemKou4M8gs38g" source="_uScm0GtPEemKou4M8gs38g" target="_YFN6MGtQEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_YFQ9gGtQEemKou4M8gs38g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YFQ9gWtQEemKou4M8gs38g" x="9" y="-122"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_YFQ9gmtQEemKou4M8gs38g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YFQ9g2tQEemKou4M8gs38g" x="36" y="14"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_YFQ9hGtQEemKou4M8gs38g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YFQ9hWtQEemKou4M8gs38g" x="-20" y="-18"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_YFQWdGtQEemKou4M8gs38g" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_YFQWdWtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YFQWdmtQEemKou4M8gs38g" points="[-144, -16, 287, 4]$[-336, -16, 95, 4]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YFRkkGtQEemKou4M8gs38g" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YFRkkWtQEemKou4M8gs38g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_cYoQIGtQEemKou4M8gs38g" type="4001" element="_cYiwk2tQEemKou4M8gs38g" source="_YFN6MGtQEemKou4M8gs38g" target="_cYma8GtQEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_cYoQJGtQEemKou4M8gs38g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cYoQJWtQEemKou4M8gs38g" x="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_cYoQJmtQEemKou4M8gs38g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cYoQJ2tQEemKou4M8gs38g" x="5" y="-32"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_cYoQKGtQEemKou4M8gs38g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cYoQKWtQEemKou4M8gs38g" x="-1" y="35"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_cYoQIWtQEemKou4M8gs38g" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_cYoQImtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cYoQI2tQEemKou4M8gs38g" points="[31, -62, -5, 115]$[31, -128, -5, 49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cYo3MGtQEemKou4M8gs38g" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cYo3MWtQEemKou4M8gs38g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_cYo3MmtQEemKou4M8gs38g" type="4001" element="_cYjXo2tQEemKou4M8gs38g" source="_G86x8GtPEemKou4M8gs38g" target="_cYma8GtQEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_cYo3NmtQEemKou4M8gs38g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cYo3N2tQEemKou4M8gs38g" x="20" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_cYo3OGtQEemKou4M8gs38g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cYo3OWtQEemKou4M8gs38g" x="20" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_cYo3OmtQEemKou4M8gs38g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cYo3O2tQEemKou4M8gs38g" x="17" y="-35"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_cYo3M2tQEemKou4M8gs38g" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_cYo3NGtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cYo3NWtQEemKou4M8gs38g" points="[108, 54, -130, -129]$[239, 54, 1, -129]$[239, 134, 1, -49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cYpeQGtQEemKou4M8gs38g" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cYpeQWtQEemKou4M8gs38g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_pM83MGtQEemKou4M8gs38g" visible="false" type="4001" element="_pM3XpmtQEemKou4M8gs38g" source="_pM7CAGtQEemKou4M8gs38g" target="_pM7CAGtQEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_pM83NGtQEemKou4M8gs38g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pM83NWtQEemKou4M8gs38g" x="10" y="18"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_pM83NmtQEemKou4M8gs38g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pM83N2tQEemKou4M8gs38g" x="5" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_pM83OGtQEemKou4M8gs38g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pM83OWtQEemKou4M8gs38g" x="-5" y="7"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_pM83MWtQEemKou4M8gs38g" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_pM83MmtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pM83M2tQEemKou4M8gs38g" points="[142, 35, 142, 35]$[204, 35, 204, 35]$[204, 133, 204, 133]$[106, 133, 106, 133]$[106, 71, 106, 71]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pM9eQGtQEemKou4M8gs38g" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pM9eQWtQEemKou4M8gs38g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_pM9eQmtQEemKou4M8gs38g" type="4001" element="_pM3-tmtQEemKou4M8gs38g" source="_YFN6MGtQEemKou4M8gs38g" target="_pM7CAGtQEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_pM9eRmtQEemKou4M8gs38g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pM9eR2tQEemKou4M8gs38g" x="-10" y="3"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_pM9eSGtQEemKou4M8gs38g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pM9eSWtQEemKou4M8gs38g" x="8" y="-14"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_pM9eSmtQEemKou4M8gs38g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pM9eS2tQEemKou4M8gs38g" x="-28" y="14"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_pM9eQ2tQEemKou4M8gs38g" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_pM9eRGtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pM9eRWtQEemKou4M8gs38g" points="[-95, -12, 284, 5]$[-261, -12, 118, 5]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pM9eTGtQEemKou4M8gs38g" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pM9eTWtQEemKou4M8gs38g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_pM9eTmtQEemKou4M8gs38g" visible="false" type="4001" element="_pM4lw2tQEemKou4M8gs38g" source="_pM7CAGtQEemKou4M8gs38g" target="_pM7CAGtQEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_pM-FUGtQEemKou4M8gs38g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pM-FUWtQEemKou4M8gs38g" x="35" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_pM-FUmtQEemKou4M8gs38g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pM-FU2tQEemKou4M8gs38g" x="-13" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_pM-FVGtQEemKou4M8gs38g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pM-FVWtQEemKou4M8gs38g" x="12" y="-10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_pM9eT2tQEemKou4M8gs38g" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_pM9eUGtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pM9eUWtQEemKou4M8gs38g" points="[-106, -54, -106, -54]$[-106, -117, -106, -117]$[35, -117, 35, -117]$[35, -54, 35, -54]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pM-FVmtQEemKou4M8gs38g" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pM-FV2tQEemKou4M8gs38g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_2hMUcGtQEemKou4M8gs38g" type="4001" element="_2hE_vGtQEemKou4M8gs38g" source="_YFN6MGtQEemKou4M8gs38g" target="_2hJ4MGtQEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_2hMUdGtQEemKou4M8gs38g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2hMUdWtQEemKou4M8gs38g" x="-28" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_2hMUdmtQEemKou4M8gs38g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2hMUd2tQEemKou4M8gs38g" x="-10" y="-56"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_2hMUeGtQEemKou4M8gs38g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2hMUeWtQEemKou4M8gs38g" x="11" y="-82"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_2hMUcWtQEemKou4M8gs38g" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_2hMUcmtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2hMUc2tQEemKou4M8gs38g" points="[51, 63, 30, -220]$[51, 234, 30, -49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2hM7gGtQEemKou4M8gs38g" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2hM7gWtQEemKou4M8gs38g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_2hM7gmtQEemKou4M8gs38g" visible="false" type="4001" element="_2hFmxmtQEemKou4M8gs38g" source="_pM7CAGtQEemKou4M8gs38g" target="_2hJ4MGtQEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_2hM7hmtQEemKou4M8gs38g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2hM7h2tQEemKou4M8gs38g" x="-139" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_2hM7iGtQEemKou4M8gs38g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2hM7iWtQEemKou4M8gs38g" x="29"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_2hM7imtQEemKou4M8gs38g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2hM7i2tQEemKou4M8gs38g" x="-26" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_2hM7g2tQEemKou4M8gs38g" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_2hM7hGtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2hM7hWtQEemKou4M8gs38g" points="[82, 55, -318, -240]$[82, 296, -318, 1]$[290, 296, -110, 1]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2hNikGtQEemKou4M8gs38g" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2hNikWtQEemKou4M8gs38g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_2hNikmtQEemKou4M8gs38g" type="4001" element="_2hGN1mtQEemKou4M8gs38g" source="_YFN6MGtQEemKou4M8gs38g" target="_2hJ4MGtQEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_2hNilmtQEemKou4M8gs38g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2hNil2tQEemKou4M8gs38g" x="-28" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_2hNimGtQEemKou4M8gs38g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2hNimWtQEemKou4M8gs38g" x="-10" y="-29"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_2hNimmtQEemKou4M8gs38g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2hNim2tQEemKou4M8gs38g" x="11" y="55"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_2hNik2tQEemKou4M8gs38g" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_2hNilGtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2hNilWtQEemKou4M8gs38g" points="[-53, 63, -74, -220]$[-53, 234, -74, -49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2hOJoGtQEemKou4M8gs38g" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2hOJoWtQEemKou4M8gs38g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_2hOJomtQEemKou4M8gs38g" visible="false" type="4001" element="_2hG04GtQEemKou4M8gs38g" source="_pM7CAGtQEemKou4M8gs38g" target="_2hJ4MGtQEemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_2hOJpmtQEemKou4M8gs38g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2hOJp2tQEemKou4M8gs38g" x="-31" y="-173"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_2hOJqGtQEemKou4M8gs38g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2hOJqWtQEemKou4M8gs38g" x="9"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_2hOJqmtQEemKou4M8gs38g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2hOJq2tQEemKou4M8gs38g" x="-5" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_2hOJo2tQEemKou4M8gs38g" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_2hOJpGtQEemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2hOJpWtQEemKou4M8gs38g" points="[-50, 55, -450, -240]$[-50, 314, -450, 19]$[290, 314, -110, 19]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2hOwsGtQEemKou4M8gs38g" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2hOwsWtQEemKou4M8gs38g" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_XBnSsGtREemKou4M8gs38g" type="4001" element="_XBhMFmtREemKou4M8gs38g" source="_pM7CAGtQEemKou4M8gs38g" target="_XBkPYGtREemKou4M8gs38g">
+          <children xmi:type="notation:Node" xmi:id="_XBn5wGtREemKou4M8gs38g" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XBn5wWtREemKou4M8gs38g" x="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_XBog0GtREemKou4M8gs38g" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XBog0WtREemKou4M8gs38g" x="-8" y="-79"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_XBpH4GtREemKou4M8gs38g" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XBpH4WtREemKou4M8gs38g" x="11" y="-60"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_XBnSsWtREemKou4M8gs38g" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_XBnSsmtREemKou4M8gs38g" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XBnSs2tREemKou4M8gs38g" points="[18, 49, 11, -199]$[18, 199, 11, -49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XBpH4mtREemKou4M8gs38g" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XBpH42tREemKou4M8gs38g" id="(0.5,0.5)"/>
+        </edges>
+      </data>
+    </ownedAnnotationEntries>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_G8qTQGtPEemKou4M8gs38g" name="NS" tooltipText="" outgoingEdges="_JJnTAGtPEemKou4M8gs38g _cYjXo2tQEemKou4M8gs38g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="nsd.ecore#//NS"/>
+      <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//NS"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_G8q6UGtPEemKou4M8gs38g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_G8vLwGtPEemKou4M8gs38g" name="findCDC(cDCName EString, console IRiseClipseConsole) : CDC" visible="false" tooltipText="findCDC(cDCName, console) : CDC">
+        <target xmi:type="ecore:EOperation" href="nsd.ecore#//NS/findCDC"/>
+        <semanticElements xmi:type="ecore:EOperation" href="nsd.ecore#//NS/findCDC"/>
+        <semanticElements xmi:type="ecore:EParameter" href="nsd.ecore#//NS/findCDC/cDCName"/>
+        <semanticElements xmi:type="ecore:EParameter" href="nsd.ecore#//NS/findCDC/console"/>
+        <graphicalFilters xmi:type="diagram:AppliedCompositeFilters" uid="_pDP-EGtPEemKou4M8gs38g">
+          <compositeFilterDescriptions xmi:type="filter:CompositeFilterDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@filters[name='Hide%20operations']"/>
+        </graphicalFilters>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_G8vLwWtPEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_G8vy0GtPEemKou4M8gs38g" name="findPresenceCondition(presenceConditionName EString, console IRiseClipseConsole) : PresenceCondition" visible="false" tooltipText="findPresenceCondition(presenceConditionName, console) : PresenceCondition">
+        <target xmi:type="ecore:EOperation" href="nsd.ecore#//NS/findPresenceCondition"/>
+        <semanticElements xmi:type="ecore:EOperation" href="nsd.ecore#//NS/findPresenceCondition"/>
+        <semanticElements xmi:type="ecore:EParameter" href="nsd.ecore#//NS/findPresenceCondition/console"/>
+        <semanticElements xmi:type="ecore:EParameter" href="nsd.ecore#//NS/findPresenceCondition/presenceConditionName"/>
+        <graphicalFilters xmi:type="diagram:AppliedCompositeFilters" uid="_pDP-EWtPEemKou4M8gs38g">
+          <compositeFilterDescriptions xmi:type="filter:CompositeFilterDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@filters[name='Hide%20operations']"/>
+        </graphicalFilters>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_G8vy0WtPEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_G8wZ4GtPEemKou4M8gs38g" name="findFunctionalConstraint(functionalConstraintAbbreviation EString, console IRiseClipseConsole) : FunctionalConstraint" visible="false" tooltipText="findFunctionalConstraint(functionalConstraintAbbreviation, console) : FunctionalConstraint">
+        <target xmi:type="ecore:EOperation" href="nsd.ecore#//NS/findFunctionalConstraint"/>
+        <semanticElements xmi:type="ecore:EOperation" href="nsd.ecore#//NS/findFunctionalConstraint"/>
+        <semanticElements xmi:type="ecore:EParameter" href="nsd.ecore#//NS/findFunctionalConstraint/console"/>
+        <semanticElements xmi:type="ecore:EParameter" href="nsd.ecore#//NS/findFunctionalConstraint/functionalConstraintAbbreviation"/>
+        <graphicalFilters xmi:type="diagram:AppliedCompositeFilters" uid="_pDQlIGtPEemKou4M8gs38g">
+          <compositeFilterDescriptions xmi:type="filter:CompositeFilterDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@filters[name='Hide%20operations']"/>
+        </graphicalFilters>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_G8wZ4WtPEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_G8wZ4mtPEemKou4M8gs38g" name="findEnumeration(enumerationName EString, console IRiseClipseConsole) : Enumeration" visible="false" tooltipText="findEnumeration(enumerationName, console) : Enumeration">
+        <target xmi:type="ecore:EOperation" href="nsd.ecore#//NS/findEnumeration"/>
+        <semanticElements xmi:type="ecore:EOperation" href="nsd.ecore#//NS/findEnumeration"/>
+        <semanticElements xmi:type="ecore:EParameter" href="nsd.ecore#//NS/findEnumeration/console"/>
+        <semanticElements xmi:type="ecore:EParameter" href="nsd.ecore#//NS/findEnumeration/enumerationName"/>
+        <graphicalFilters xmi:type="diagram:AppliedCompositeFilters" uid="_pDQlIWtPEemKou4M8gs38g">
+          <compositeFilterDescriptions xmi:type="filter:CompositeFilterDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@filters[name='Hide%20operations']"/>
+        </graphicalFilters>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_G8xoAGtPEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_G8yPEGtPEemKou4M8gs38g" name="findBasicType(basicTypeName EString, console IRiseClipseConsole) : BasicType" visible="false" tooltipText="findBasicType(basicTypeName, console) : BasicType">
+        <target xmi:type="ecore:EOperation" href="nsd.ecore#//NS/findBasicType"/>
+        <semanticElements xmi:type="ecore:EOperation" href="nsd.ecore#//NS/findBasicType"/>
+        <semanticElements xmi:type="ecore:EParameter" href="nsd.ecore#//NS/findBasicType/basicTypeName"/>
+        <semanticElements xmi:type="ecore:EParameter" href="nsd.ecore#//NS/findBasicType/console"/>
+        <graphicalFilters xmi:type="diagram:AppliedCompositeFilters" uid="_pDQlImtPEemKou4M8gs38g">
+          <compositeFilterDescriptions xmi:type="filter:CompositeFilterDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@filters[name='Hide%20operations']"/>
+        </graphicalFilters>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_G8yPEWtPEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_G8y2IGtPEemKou4M8gs38g" name=" copyright : CopyrightNotice" tooltipText="">
+        <target xmi:type="ecore:EReference" href="nsd.ecore#//Copyrighted/copyright"/>
+        <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//Copyrighted/copyright"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_G8y2IWtPEemKou4M8gs38g" labelColor="125,125,125" labelAlignment="LEFT">
+          <labelFormat>italic</labelFormat>
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@conditionnalStyles.0/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_G8zdMGtPEemKou4M8gs38g" name=" changes : Changes" tooltipText="">
+        <target xmi:type="ecore:EReference" href="nsd.ecore#//NS/changes"/>
+        <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/changes"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_G8zdMWtPEemKou4M8gs38g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_G8zdMmtPEemKou4M8gs38g" name=" dependsOn : DependsOn" tooltipText="">
+        <target xmi:type="ecore:EReference" href="nsd.ecore#//NS/dependsOn"/>
+        <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/dependsOn"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_G80EQGtPEemKou4M8gs38g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_G80EQWtPEemKou4M8gs38g" name=" basicTypes : BasicTypes" tooltipText="">
+        <target xmi:type="ecore:EReference" href="nsd.ecore#//NS/basicTypes"/>
+        <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/basicTypes"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_G80rUGtPEemKou4M8gs38g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_G80rUWtPEemKou4M8gs38g" name=" functionalConstraints : FunctionalConstraints" tooltipText="">
+        <target xmi:type="ecore:EReference" href="nsd.ecore#//NS/functionalConstraints"/>
+        <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/functionalConstraints"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_G80rUmtPEemKou4M8gs38g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_G81SYGtPEemKou4M8gs38g" name=" presenceConditions : PresenceConditions" tooltipText="">
+        <target xmi:type="ecore:EReference" href="nsd.ecore#//NS/presenceConditions"/>
+        <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/presenceConditions"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_G81SYWtPEemKou4M8gs38g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_G81SYmtPEemKou4M8gs38g" name=" abbreviations : Abbreviations" tooltipText="">
+        <target xmi:type="ecore:EReference" href="nsd.ecore#//NS/abbreviations"/>
+        <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/abbreviations"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_G815cGtPEemKou4M8gs38g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_G815cWtPEemKou4M8gs38g" name=" enumerations : Enumerations" tooltipText="">
+        <target xmi:type="ecore:EReference" href="nsd.ecore#//NS/enumerations"/>
+        <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/enumerations"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_G82ggGtPEemKou4M8gs38g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_G82ggWtPEemKou4M8gs38g" name=" constructedAttributes : ConstructedAttributes" tooltipText="">
+        <target xmi:type="ecore:EReference" href="nsd.ecore#//NS/constructedAttributes"/>
+        <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/constructedAttributes"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_G82ggmtPEemKou4M8gs38g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_G83uoWtPEemKou4M8gs38g" name=" referredByDependsOn : DependsOn" tooltipText="">
+        <target xmi:type="ecore:EReference" href="nsd.ecore#//NS/referredByDependsOn"/>
+        <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/referredByDependsOn"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_G83uomtPEemKou4M8gs38g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_JJc68GtPEemKou4M8gs38g" name="LNClasses" tooltipText="" outgoingEdges="_LE-McGtPEemKou4M8gs38g" incomingEdges="_JJnTAGtPEemKou4M8gs38g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="nsd.ecore#//LNClasses"/>
+      <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//LNClasses"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_JJc68WtPEemKou4M8gs38g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_JJld0GtPEemKou4M8gs38g" name=" abstractLNClass : AbstractLNClass" tooltipText="">
+        <target xmi:type="ecore:EReference" href="nsd.ecore#//LNClasses/abstractLNClass"/>
+        <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//LNClasses/abstractLNClass"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_JJld0WtPEemKou4M8gs38g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_JJnTAGtPEemKou4M8gs38g" sourceNode="_G8qTQGtPEemKou4M8gs38g" targetNode="_JJc68GtPEemKou4M8gs38g" beginLabel="[0..1] nS" endLabel="[0..1] lNClasses">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//NS/lNClasses"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/lNClasses"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//LNClasses/nS"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_JJohI2tPEemKou4M8gs38g" description="_JJohIGtPEemKou4M8gs38g" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_JJohJGtPEemKou4M8gs38g" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_JJpIMGtPEemKou4M8gs38g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_LEzNUGtPEemKou4M8gs38g" name="LNClass" tooltipText="" outgoingEdges="_JT-TcGtQEemKou4M8gs38g" incomingEdges="_LE-McGtPEemKou4M8gs38g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="nsd.ecore#//LNClass"/>
+      <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//LNClass"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_LEzNUWtPEemKou4M8gs38g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_LE57AWtPEemKou4M8gs38g" name="canHaveLOG : Boolean = false" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="nsd.ecore#//LNClass/canHaveLOG"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="nsd.ecore#//LNClass/canHaveLOG"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_LE57AmtPEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_LE6iEGtPEemKou4M8gs38g" name="isExtension : Boolean = false" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="nsd.ecore#//LNClass/isExtension"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="nsd.ecore#//LNClass/isExtension"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_LE6iEWtPEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_LE6iEmtPEemKou4M8gs38g" name="name : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="nsd.ecore#//LNClass/name"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="nsd.ecore#//LNClass/name"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_LE6iE2tPEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_LE-McGtPEemKou4M8gs38g" sourceNode="_JJc68GtPEemKou4M8gs38g" targetNode="_LEzNUGtPEemKou4M8gs38g" beginLabel="[0..1] lNClasses" endLabel="[0..*] lNClass">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//LNClasses/lNClass"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//LNClasses/lNClass"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//LNClass/lNClasses"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_LE-zgGtPEemKou4M8gs38g" description="_JJohIGtPEemKou4M8gs38g" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_LE-zgWtPEemKou4M8gs38g" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_LE-zgmtPEemKou4M8gs38g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_uSMvMGtPEemKou4M8gs38g" name="DataObject" tooltipText="" outgoingEdges="_JUAIpmtQEemKou4M8gs38g _YFK24GtQEemKou4M8gs38g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="nsd.ecore#//DataObject"/>
+      <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//DataObject"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_uSMvMWtPEemKou4M8gs38g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_uSV5ImtPEemKou4M8gs38g" name="name : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="nsd.ecore#//DataObject/name"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="nsd.ecore#//DataObject/name"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_uSV5I2tPEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_uSWgMGtPEemKou4M8gs38g" name="transient : Boolean = false" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="nsd.ecore#//DataObject/transient"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="nsd.ecore#//DataObject/transient"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_uSWgMWtPEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_uSWgMmtPEemKou4M8gs38g" name="type : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="nsd.ecore#//DataObject/type"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="nsd.ecore#//DataObject/type"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_uSXHQGtPEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_uSXuUmtPEemKou4M8gs38g" name=" refersToPresenceCondition : PresenceCondition" tooltipText="">
+        <target xmi:type="ecore:EReference" href="nsd.ecore#//DataObject/refersToPresenceCondition"/>
+        <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataObject/refersToPresenceCondition"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_uSYVYGtPEemKou4M8gs38g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_uSYVYWtPEemKou4M8gs38g" name=" refersToPresenceConditionDerivedStatistics : PresenceCondition" tooltipText="">
+        <target xmi:type="ecore:EReference" href="nsd.ecore#//DataObject/refersToPresenceConditionDerivedStatistics"/>
+        <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataObject/refersToPresenceConditionDerivedStatistics"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_uSYVYmtPEemKou4M8gs38g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_JTw4EGtQEemKou4M8gs38g" name="AnyLNClass" tooltipText="" incomingEdges="_JT-TcGtQEemKou4M8gs38g _JUAIpmtQEemKou4M8gs38g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="nsd.ecore#//AnyLNClass"/>
+      <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//AnyLNClass"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Q5uj4GtQEemKou4M8gs38g" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" description="_Q5t80GtQEemKou4M8gs38g" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="250,190,190">
+        <labelFormat>italic</labelFormat>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_JT73MGtQEemKou4M8gs38g" name="base : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="nsd.ecore#//AnyLNClass/base"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="nsd.ecore#//AnyLNClass/base"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_JT73MWtQEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_JT8eQGtQEemKou4M8gs38g" name="getName() : String" visible="false" tooltipText="getName() : String">
+        <target xmi:type="ecore:EOperation" href="nsd.ecore#//AnyLNClass/getName"/>
+        <semanticElements xmi:type="ecore:EOperation" href="nsd.ecore#//AnyLNClass/getName"/>
+        <graphicalFilters xmi:type="diagram:AppliedCompositeFilters" uid="_JUFBIGtQEemKou4M8gs38g">
+          <compositeFilterDescriptions xmi:type="filter:CompositeFilterDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@filters[name='Hide%20operations']"/>
+        </graphicalFilters>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_JT8eQWtQEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_JT8eQmtQEemKou4M8gs38g" name="getLNClasses() : LNClasses" visible="false" tooltipText="getLNClasses() : LNClasses">
+        <target xmi:type="ecore:EOperation" href="nsd.ecore#//AnyLNClass/getLNClasses"/>
+        <semanticElements xmi:type="ecore:EOperation" href="nsd.ecore#//AnyLNClass/getLNClasses"/>
+        <graphicalFilters xmi:type="diagram:AppliedCompositeFilters" uid="_JUFBIWtQEemKou4M8gs38g">
+          <compositeFilterDescriptions xmi:type="filter:CompositeFilterDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@filters[name='Hide%20operations']"/>
+        </graphicalFilters>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_JT9FUGtQEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_JT9FUWtQEemKou4M8gs38g" name=" refersToAbstractLNClass : AbstractLNClass" tooltipText="">
+        <target xmi:type="ecore:EReference" href="nsd.ecore#//AnyLNClass/refersToAbstractLNClass"/>
+        <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//AnyLNClass/refersToAbstractLNClass"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_JT9FUmtQEemKou4M8gs38g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_JT-TcGtQEemKou4M8gs38g" sourceNode="_LEzNUGtPEemKou4M8gs38g" targetNode="_JTw4EGtQEemKou4M8gs38g">
+      <target xmi:type="ecore:EClass" href="nsd.ecore#//LNClass"/>
+      <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//LNClass"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_JT-TcWtQEemKou4M8gs38g" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_JT-TcmtQEemKou4M8gs38g" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_JT-Tc2tQEemKou4M8gs38g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_JUAIpmtQEemKou4M8gs38g" sourceNode="_uSMvMGtPEemKou4M8gs38g" targetNode="_JTw4EGtQEemKou4M8gs38g" beginLabel="[0..*] dataObject" endLabel="[0..1] anyLNClass">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//DataObject/anyLNClass"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataObject/anyLNClass"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//AnyLNClass/dataObject"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_JUAvs2tQEemKou4M8gs38g" description="_JUAvsGtQEemKou4M8gs38g" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_JUAvtGtQEemKou4M8gs38g" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_JUAvtWtQEemKou4M8gs38g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_YE6_QGtQEemKou4M8gs38g" name="CDC" tooltipText="" outgoingEdges="_cYiwk2tQEemKou4M8gs38g _pM3-tmtQEemKou4M8gs38g _2hE_vGtQEemKou4M8gs38g _2hGN1mtQEemKou4M8gs38g" incomingEdges="_YFK24GtQEemKou4M8gs38g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="nsd.ecore#//CDC"/>
+      <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//CDC"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_YE7mUGtQEemKou4M8gs38g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_YFEwRGtQEemKou4M8gs38g" name="enumParameterized : Boolean = false" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="nsd.ecore#//CDC/enumParameterized"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="nsd.ecore#//CDC/enumParameterized"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_YFFXUGtQEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_YFFXUWtQEemKou4M8gs38g" name="name : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="nsd.ecore#//CDC/name"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="nsd.ecore#//CDC/name"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_YFFXUmtQEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_YFFXU2tQEemKou4M8gs38g" name="statistics : Boolean = false" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="nsd.ecore#//CDC/statistics"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="nsd.ecore#//CDC/statistics"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_YFF-YGtQEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_YFF-YWtQEemKou4M8gs38g" name="typeKindParameterized : Boolean = false" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="nsd.ecore#//CDC/typeKindParameterized"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="nsd.ecore#//CDC/typeKindParameterized"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_YFF-YmtQEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_YFF-Y2tQEemKou4M8gs38g" name="variant : Token" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="nsd.ecore#//CDC/variant"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="nsd.ecore#//CDC/variant"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_YFF-ZGtQEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_YFGldGtQEemKou4M8gs38g" name=" serviceParameter : ServiceParameter" tooltipText="">
+        <target xmi:type="ecore:EReference" href="nsd.ecore#//CDC/serviceParameter"/>
+        <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CDC/serviceParameter"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_YFGldWtQEemKou4M8gs38g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_YFK24GtQEemKou4M8gs38g" sourceNode="_uSMvMGtPEemKou4M8gs38g" targetNode="_YE6_QGtQEemKou4M8gs38g" beginLabel="[0..*] referredByDataObject" endLabel="[0..1] refersToCDC">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//DataObject/refersToCDC"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CDC/referredByDataObject"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataObject/refersToCDC"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_YFK24WtQEemKou4M8gs38g" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_YFK24mtQEemKou4M8gs38g" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_YFK242tQEemKou4M8gs38g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_cYUHEGtQEemKou4M8gs38g" name="CDCs" tooltipText="" incomingEdges="_cYiwk2tQEemKou4M8gs38g _cYjXo2tQEemKou4M8gs38g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="nsd.ecore#//CDCs"/>
+      <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//CDCs"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_cYUHEWtQEemKou4M8gs38g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_cYiwk2tQEemKou4M8gs38g" sourceNode="_YE6_QGtQEemKou4M8gs38g" targetNode="_cYUHEGtQEemKou4M8gs38g" beginLabel="[0..*] cDC" endLabel="[0..1] cDCs">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//CDC/cDCs"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CDCs/cDC"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CDC/cDCs"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_cYiwlGtQEemKou4M8gs38g" description="_JUAvsGtQEemKou4M8gs38g" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_cYiwlWtQEemKou4M8gs38g" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_cYiwlmtQEemKou4M8gs38g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_cYjXo2tQEemKou4M8gs38g" sourceNode="_G8qTQGtPEemKou4M8gs38g" targetNode="_cYUHEGtQEemKou4M8gs38g" beginLabel="[0..1] nS" endLabel="[0..1] cDCs">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//NS/cDCs"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//NS/cDCs"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CDCs/nS"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_cYj-sGtQEemKou4M8gs38g" description="_JJohIGtPEemKou4M8gs38g" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_cYj-sWtQEemKou4M8gs38g" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_cYj-smtQEemKou4M8gs38g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_pMqjUGtQEemKou4M8gs38g" name="DataAttribute" tooltipText="" outgoingEdges="_pM3XpmtQEemKou4M8gs38g _pM4lw2tQEemKou4M8gs38g _2hFmxmtQEemKou4M8gs38g _2hG04GtQEemKou4M8gs38g _XBhMFmtREemKou4M8gs38g" incomingEdges="_pM3XpmtQEemKou4M8gs38g _pM3-tmtQEemKou4M8gs38g _pM4lw2tQEemKou4M8gs38g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="nsd.ecore#//DataAttribute"/>
+      <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//DataAttribute"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_pMqjUWtQEemKou4M8gs38g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_pMzGMGtQEemKou4M8gs38g" name="fc : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="nsd.ecore#//DataAttribute/fc"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="nsd.ecore#//DataAttribute/fc"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_pMzGMWtQEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_pMzGMmtQEemKou4M8gs38g" name="name : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="nsd.ecore#//DataAttribute/name"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="nsd.ecore#//DataAttribute/name"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_pMzGM2tQEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_pMztRGtQEemKou4M8gs38g" name=" refersToFunctionalConstraint : FunctionalConstraint" tooltipText="">
+        <target xmi:type="ecore:EReference" href="nsd.ecore#//DataAttribute/refersToFunctionalConstraint"/>
+        <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataAttribute/refersToFunctionalConstraint"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_pMztRWtQEemKou4M8gs38g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_pM0UUGtQEemKou4M8gs38g" name=" refersToPresenceCondition : PresenceCondition" tooltipText="">
+        <target xmi:type="ecore:EReference" href="nsd.ecore#//DataAttribute/refersToPresenceCondition"/>
+        <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataAttribute/refersToPresenceCondition"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_pM0UUWtQEemKou4M8gs38g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_pM3XpmtQEemKou4M8gs38g" visible="false" sourceNode="_pMqjUGtQEemKou4M8gs38g" targetNode="_pMqjUGtQEemKou4M8gs38g" beginLabel="[0..*] referredByDataAttributeAsSizeAttribute" endLabel="[0..1] refersToSizeAttribute">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//DataAttribute/refersToSizeAttribute"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataAttribute/referredByDataAttributeAsSizeAttribute"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataAttribute/refersToSizeAttribute"/>
+      <graphicalFilters xmi:type="diagram:HideFilter" uid="__Dg60GtQEemKou4M8gs38g"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_pM3-sGtQEemKou4M8gs38g" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_pM3-sWtQEemKou4M8gs38g" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_pM3-smtQEemKou4M8gs38g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_pM3-tmtQEemKou4M8gs38g" sourceNode="_YE6_QGtQEemKou4M8gs38g" targetNode="_pMqjUGtQEemKou4M8gs38g" beginLabel="[0..1] cDC" endLabel="[0..*] dataAttribute">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//CDC/dataAttribute"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataAttribute/cDC"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CDC/dataAttribute"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_pM3-t2tQEemKou4M8gs38g" description="_JJohIGtPEemKou4M8gs38g" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_pM3-uGtQEemKou4M8gs38g" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_pM3-uWtQEemKou4M8gs38g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_pM4lw2tQEemKou4M8gs38g" visible="false" sourceNode="_pMqjUGtQEemKou4M8gs38g" targetNode="_pMqjUGtQEemKou4M8gs38g" beginLabel="[0..*] referredByDataAttributeAsMaxIndexAttribute" endLabel="[0..1] refersToMaxIndexAttribute">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//DataAttribute/refersToMaxIndexAttribute"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataAttribute/referredByDataAttributeAsMaxIndexAttribute"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataAttribute/refersToMaxIndexAttribute"/>
+      <graphicalFilters xmi:type="diagram:HideFilter" uid="_9SEyYGtQEemKou4M8gs38g"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_pM4lxGtQEemKou4M8gs38g" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_pM4lxWtQEemKou4M8gs38g" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_pM4lxmtQEemKou4M8gs38g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_2g4LYGtQEemKou4M8gs38g" name="SubDataObject" tooltipText="" incomingEdges="_2hE_vGtQEemKou4M8gs38g _2hFmxmtQEemKou4M8gs38g _2hGN1mtQEemKou4M8gs38g _2hG04GtQEemKou4M8gs38g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="nsd.ecore#//SubDataObject"/>
+      <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//SubDataObject"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_2g4ycGtQEemKou4M8gs38g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_2hAuQWtQEemKou4M8gs38g" name="name : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="nsd.ecore#//SubDataObject/name"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="nsd.ecore#//SubDataObject/name"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_2hAuQmtQEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_2hAuQ2tQEemKou4M8gs38g" name="type : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="nsd.ecore#//SubDataObject/type"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="nsd.ecore#//SubDataObject/type"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_2hAuRGtQEemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_2hBVUGtQEemKou4M8gs38g" name=" refersToPresenceCondition : PresenceCondition" tooltipText="">
+        <target xmi:type="ecore:EReference" href="nsd.ecore#//SubDataObject/refersToPresenceCondition"/>
+        <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//SubDataObject/refersToPresenceCondition"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_2hBVUWtQEemKou4M8gs38g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_2hE_vGtQEemKou4M8gs38g" sourceNode="_YE6_QGtQEemKou4M8gs38g" targetNode="_2g4LYGtQEemKou4M8gs38g" beginLabel="[0..1] refersToCDC" endLabel="[0..*] referredBySubDataObject">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//CDC/referredBySubDataObject"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CDC/referredBySubDataObject"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//SubDataObject/refersToCDC"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_2hFmwGtQEemKou4M8gs38g" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_2hFmwWtQEemKou4M8gs38g" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_2hFmwmtQEemKou4M8gs38g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_2hFmxmtQEemKou4M8gs38g" visible="false" sourceNode="_pMqjUGtQEemKou4M8gs38g" targetNode="_2g4LYGtQEemKou4M8gs38g" beginLabel="[0..1] refersToSizeAttribute" endLabel="[0..*] referredBySubDataObjectAsSizeAttribute">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//DataAttribute/referredBySubDataObjectAsSizeAttribute"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataAttribute/referredBySubDataObjectAsSizeAttribute"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//SubDataObject/refersToSizeAttribute"/>
+      <graphicalFilters xmi:type="diagram:HideFilter" uid="_Ft9ZkGtREemKou4M8gs38g"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_2hGN0GtQEemKou4M8gs38g" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_2hGN0WtQEemKou4M8gs38g" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_2hGN0mtQEemKou4M8gs38g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_2hGN1mtQEemKou4M8gs38g" sourceNode="_YE6_QGtQEemKou4M8gs38g" targetNode="_2g4LYGtQEemKou4M8gs38g" beginLabel="[0..1] cDC" endLabel="[0..*] subDataObject">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//CDC/subDataObject"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//SubDataObject/cDC"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//CDC/subDataObject"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_2hGN12tQEemKou4M8gs38g" description="_JJohIGtPEemKou4M8gs38g" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_2hGN2GtQEemKou4M8gs38g" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_2hGN2WtQEemKou4M8gs38g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_2hG04GtQEemKou4M8gs38g" visible="false" sourceNode="_pMqjUGtQEemKou4M8gs38g" targetNode="_2g4LYGtQEemKou4M8gs38g" beginLabel="[0..1] refersToMaxIndexAttribute" endLabel="[0..*] referredBySubDataObjectAsMaxIndexAttribute">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//DataAttribute/referredBySubDataObjectAsMaxIndexAttribute"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataAttribute/referredBySubDataObjectAsMaxIndexAttribute"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//SubDataObject/refersToMaxIndexAttribute"/>
+      <graphicalFilters xmi:type="diagram:HideFilter" uid="_E8YLoGtREemKou4M8gs38g"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_2hG04WtQEemKou4M8gs38g" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_2hG04mtQEemKou4M8gs38g" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_2hG042tQEemKou4M8gs38g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_XBTwsGtREemKou4M8gs38g" name="BasicType" tooltipText="" incomingEdges="_XBhMFmtREemKou4M8gs38g" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="nsd.ecore#//BasicType"/>
+      <semanticElements xmi:type="ecore:EClass" href="nsd.ecore#//BasicType"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_XBTwsWtREemKou4M8gs38g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_XBaeZWtREemKou4M8gs38g" name="descID : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="nsd.ecore#//BasicType/descID"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="nsd.ecore#//BasicType/descID"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_XBbFcGtREemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_XBbFcWtREemKou4M8gs38g" name="name : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="nsd.ecore#//BasicType/name"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="nsd.ecore#//BasicType/name"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_XBbFcmtREemKou4M8gs38g" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_XBbsgGtREemKou4M8gs38g" name=" basicTypes : BasicTypes" tooltipText="">
+        <target xmi:type="ecore:EReference" href="nsd.ecore#//BasicType/basicTypes"/>
+        <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//BasicType/basicTypes"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_XBbsgWtREemKou4M8gs38g" labelAlignment="LEFT" color="114,159,207">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EReferenceNode']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_XBhMFmtREemKou4M8gs38g" sourceNode="_pMqjUGtQEemKou4M8gs38g" targetNode="_XBTwsGtREemKou4M8gs38g" beginLabel="[0..*] referredByDataAttribute" endLabel="[0..1] refersToBasicType">
+      <target xmi:type="ecore:EReference" href="nsd.ecore#//DataAttribute/refersToBasicType"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//BasicType/referredByDataAttribute"/>
+      <semanticElements xmi:type="ecore:EReference" href="nsd.ecore#//DataAttribute/refersToBasicType"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_XBhMF2tREemKou4M8gs38g" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_XBhMGGtREemKou4M8gs38g" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_XBhMGWtREemKou4M8gs38g" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+    <activatedFilters xmi:type="filter:CompositeFilterDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@filters[name='Hide%20operations']"/>
+    <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_-IrVIGtOEemKou4M8gs38g"/>
+    <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']/@ownedRepresentationExtensions[name='Entities%20With%20Archetypes']/@layers[name='Archetypes']"/>
+    <target xmi:type="ecore:EPackage" href="nsd.ecore#/"/>
+  </diagram:DSemanticDiagram>
 </xmi:XMI>
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore
index a97dca1ea91e0c31a5a37fb3260d0e32c13ee9ad..968f3ef7cbb844091c7cbb6887ba3547cba5a9e6 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore
@@ -15,7 +15,7 @@
       <details key="name" value="AppliesTo_._type"/>
       <details key="kind" value="empty"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="serviceNsUsage" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentServiceNsUsage" ordered="false"
         eType="#//ServiceNsUsage" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//ServiceNsUsage/appliesTo"/>
   </eClassifiers>
@@ -24,8 +24,8 @@
       <details key="name" value="DependsOn_._type"/>
       <details key="kind" value="empty"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="nS" ordered="false" eType="#//NS"
-        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/dependsOn"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentNS" ordered="false"
+        eType="#//NS" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/dependsOn"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="refersToNS" ordered="false"
         eType="#//NS" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/referredByDependsOn"/>
   </eClassifiers>
@@ -111,9 +111,9 @@
         <details key="name" value="name"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="applicableServices" ordered="false"
-        eType="#//ApplicableServices" transient="true" unsettable="true" resolveProxies="false"
-        eOpposite="#//ApplicableServices/service"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentApplicableServices"
+        ordered="false" eType="#//ApplicableServices" transient="true" unsettable="true"
+        resolveProxies="false" eOpposite="#//ApplicableServices/service"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Abbreviation" eSuperTypes="#//NsdObject">
     <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
@@ -140,7 +140,7 @@
         <details key="name" value="name"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="abbreviations" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentAbbreviations" ordered="false"
         eType="#//Abbreviations" unsettable="true" resolveProxies="false" eOpposite="#//Abbreviations/abbreviation"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Abbreviations" eSuperTypes="#//NsdObject">
@@ -156,16 +156,16 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="abbreviation" ordered="false"
         upperBound="-1" eType="#//Abbreviation" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//Abbreviation/abbreviations">
+        resolveProxies="false" eOpposite="#//Abbreviation/parentAbbreviations">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="Abbreviation"/>
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="nS" ordered="false" eType="#//NS"
-        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/abbreviations"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="serviceNS" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentNS" ordered="false"
+        eType="#//NS" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/abbreviations"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentServiceNS" ordered="false"
         eType="#//ServiceNS" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//ServiceNS/abbreviations"/>
   </eClassifiers>
@@ -187,7 +187,7 @@
         <details key="name" value="name"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="lNClasses" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentLNClasses" ordered="false"
         eType="#//LNClasses" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//LNClasses/abstractLNClass"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="referredByAnyLNClass" ordered="false"
@@ -275,10 +275,10 @@
       <details key="uniqueDataObject" value="Tuple {&#xA;&#x9;message : String = 'For an AnyLNClass, there shall not be two DataObject sub-elements with same name.',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;-- TODO: base AbstractLNClass should be taken into account&#xA;&#x9;&#x9;&#x9;-- For this, explicit links have to be created first&#xA;&#x9;&#x9;&#x9;self.dataObject->isUnique( d : DataObject | d.name )&#xA;}.status"/>
     </eAnnotations>
     <eOperations name="getName" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
-    <eOperations name="getLNClasses" eType="#//LNClasses"/>
+    <eOperations name="getParentLNClasses" eType="#//LNClasses"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="dataObject" ordered="false"
         upperBound="-1" eType="#//DataObject" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//DataObject/anyLNClass">
+        resolveProxies="false" eOpposite="#//DataObject/parentAnyLNClass">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="DataObject"/>
@@ -310,7 +310,7 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="serviceNsUsage" ordered="false"
         upperBound="-1" eType="#//ServiceNsUsage" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//ServiceNsUsage/applicableServiceNS">
+        resolveProxies="false" eOpposite="#//ServiceNsUsage/parentApplicableServiceNS">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="ServiceNsUsage"/>
@@ -346,7 +346,7 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="service" ordered="false"
         upperBound="-1" eType="#//ServiceType" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//ServiceType/applicableServices">
+        resolveProxies="false" eOpposite="#//ServiceType/parentApplicableServices">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="Service"/>
@@ -355,16 +355,16 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="dataSetMemberOf" ordered="false"
         upperBound="-1" eType="#//DataSetMemberOf" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//DataSetMemberOf/applicableServices">
+        resolveProxies="false" eOpposite="#//DataSetMemberOf/parentApplicableServices">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="DataSetMemberOf"/>
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="functionalConstraint" ordered="false"
-        eType="#//FunctionalConstraint" transient="true" unsettable="true" resolveProxies="false"
-        eOpposite="#//FunctionalConstraint/applicableServices"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentFunctionalConstraint"
+        ordered="false" eType="#//FunctionalConstraint" transient="true" unsettable="true"
+        resolveProxies="false" eOpposite="#//FunctionalConstraint/applicableServices"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EDataType" name="AttributeTypeKind" instanceClassName="org.eclipse.emf.common.util.Enumerator">
     <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
@@ -397,7 +397,7 @@
         <details key="name" value="name"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="basicTypes" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentBasicTypes" ordered="false"
         eType="#//BasicTypes" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//BasicTypes/basicType"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="referredByDataAttribute"
@@ -411,15 +411,15 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="basicType" ordered="false"
         upperBound="-1" eType="#//BasicType" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//BasicType/basicTypes">
+        resolveProxies="false" eOpposite="#//BasicType/parentBasicTypes">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="BasicType"/>
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="nS" ordered="false" eType="#//NS"
-        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/basicTypes"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentNS" ordered="false"
+        eType="#//NS" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/basicTypes"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="CBKind">
     <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
@@ -450,7 +450,7 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="subDataObject" ordered="false"
         upperBound="-1" eType="#//SubDataObject" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//SubDataObject/cDC">
+        resolveProxies="false" eOpposite="#//SubDataObject/parentCDC">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="SubDataObject"/>
@@ -459,7 +459,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="dataAttribute" ordered="false"
         upperBound="-1" eType="#//DataAttribute" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//DataAttribute/cDC">
+        resolveProxies="false" eOpposite="#//DataAttribute/parentCDC">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="DataAttribute"/>
@@ -468,7 +468,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="serviceParameter" ordered="false"
         eType="#//ServiceParameter" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//ServiceParameter/cDC">
+        eOpposite="#//ServiceParameter/parentCDC">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="ServiceParameter"/>
@@ -511,8 +511,9 @@
         <details key="name" value="variant"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="cDCs" ordered="false" eType="#//CDCs"
-        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//CDCs/cDC"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentCDCs" ordered="false"
+        eType="#//CDCs" transient="true" unsettable="true" resolveProxies="false"
+        eOpposite="#//CDCs/cDC"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="referredByDataObject" ordered="false"
         upperBound="-1" eType="#//DataObject" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//DataObject/refersToCDC"/>
@@ -533,15 +534,15 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="cDC" ordered="false" upperBound="-1"
         eType="#//CDC" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//CDC/cDCs">
+        eOpposite="#//CDC/parentCDCs">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="CDC"/>
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="nS" ordered="false" eType="#//NS"
-        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/cDCs"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentNS" ordered="false"
+        eType="#//NS" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/cDCs"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Changes" eSuperTypes="#//NsdObject">
     <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
@@ -582,9 +583,9 @@
         <details key="name" value="tissues"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="nS" ordered="false" eType="#//NS"
-        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/changes"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="serviceNS" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentNS" ordered="false"
+        eType="#//NS" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/changes"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentServiceNS" ordered="false"
         eType="#//ServiceNS" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//ServiceNS/changes"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="release" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
@@ -616,7 +617,7 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="subDataAttribute" ordered="false"
         upperBound="-1" eType="#//SubDataAttribute" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//SubDataAttribute/constructedAttribute">
+        resolveProxies="false" eOpposite="#//SubDataAttribute/parentConstructedAttribute">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="SubDataAttribute"/>
@@ -630,10 +631,10 @@
         <details key="name" value="name"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="constructedAttributes"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentConstructedAttributes"
         ordered="false" eType="#//ConstructedAttributes" transient="true" unsettable="true"
         resolveProxies="false" eOpposite="#//ConstructedAttributes/constructedAttribute"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="serviceTypeRealizations"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentServiceTypeRealizations"
         ordered="false" eType="#//ServiceTypeRealizations" transient="true" unsettable="true"
         resolveProxies="false" eOpposite="#//ServiceTypeRealizations/serviceTypeRealization"/>
   </eClassifiers>
@@ -650,15 +651,15 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="constructedAttribute" ordered="false"
         upperBound="-1" eType="#//ConstructedAttribute" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//ConstructedAttribute/constructedAttributes">
+        resolveProxies="false" eOpposite="#//ConstructedAttribute/parentConstructedAttributes">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="ConstructedAttribute"/>
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="nS" ordered="false" eType="#//NS"
-        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/constructedAttributes"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentNS" ordered="false"
+        eType="#//NS" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/constructedAttributes"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Copyrighted" eSuperTypes="#//NsdObject">
     <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
@@ -667,7 +668,7 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="copyright" ordered="false"
         eType="#//CopyrightNotice" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//CopyrightNotice/copyrighted">
+        eOpposite="#//CopyrightNotice/parentCopyrighted">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="Copyright"/>
@@ -682,7 +683,7 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="notice" ordered="false"
         eType="#//Notice" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//Notice/copyrightNotice">
+        eOpposite="#//Notice/parentCopyrightNotice">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="Notice"/>
@@ -691,14 +692,14 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="license" ordered="false"
         eType="#//License" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//License/copyrightNotice">
+        eOpposite="#//License/parentCopyrightNotice">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="License"/>
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="copyrighted" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentCopyrighted" ordered="false"
         eType="#//Copyrighted" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//Copyrighted/copyright"/>
   </eClassifiers>
@@ -728,8 +729,8 @@
         <details key="name" value="name"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="cDC" ordered="false" eType="#//CDC"
-        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//CDC/dataAttribute"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentCDC" ordered="false"
+        eType="#//CDC" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//CDC/dataAttribute"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="referredBySubDataObjectAsSizeAttribute"
         ordered="false" upperBound="-1" eType="#//SubDataObject" transient="true"
         unsettable="true" resolveProxies="false" eOpposite="#//SubDataObject/refersToSizeAttribute"/>
@@ -791,7 +792,7 @@
         <details key="name" value="type"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="anyLNClass" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentAnyLNClass" ordered="false"
         eType="#//AnyLNClass" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//AnyLNClass/dataObject"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="refersToCDC" ordered="false"
@@ -820,9 +821,9 @@
         <details key="name" value="cb"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="applicableServices" ordered="false"
-        eType="#//ApplicableServices" transient="true" unsettable="true" resolveProxies="false"
-        eOpposite="#//ApplicableServices/dataSetMemberOf"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentApplicableServices"
+        ordered="false" eType="#//ApplicableServices" transient="true" unsettable="true"
+        resolveProxies="false" eOpposite="#//ApplicableServices/dataSetMemberOf"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="DefinedAttributeTypeKind">
     <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
@@ -894,7 +895,7 @@
         <details key="name" value="id"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="nSDoc" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentNSDoc" ordered="false"
         eType="#//NSDoc" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//NSDoc/doc"/>
   </eClassifiers>
@@ -940,7 +941,7 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="literal" ordered="false"
         upperBound="-1" eType="#//Literal" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//Literal/enumeration">
+        eOpposite="#//Literal/parentEnumeration">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="Literal"/>
@@ -961,7 +962,7 @@
         <details key="name" value="name"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="enumerations" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentEnumerations" ordered="false"
         eType="#//Enumerations" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//Enumerations/enumeration"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="refersToBaseEnumeration"
@@ -984,15 +985,15 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="enumeration" upperBound="-1"
         eType="#//Enumeration" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//Enumeration/enumerations">
+        eOpposite="#//Enumeration/parentEnumerations">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="Enumeration"/>
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="nS" ordered="false" eType="#//NS"
-        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/enumerations"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentNS" ordered="false"
+        eType="#//NS" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/enumerations"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="FunctionalConstraint" eSuperTypes="#//NsdObject">
     <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
@@ -1007,7 +1008,7 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="applicableServices" ordered="false"
         eType="#//ApplicableServices" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//ApplicableServices/functionalConstraint">
+        eOpposite="#//ApplicableServices/parentFunctionalConstraint">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="ApplicableServices"/>
@@ -1035,7 +1036,7 @@
         <details key="name" value="titleID"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="functionalConstraints"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentFunctionalConstraints"
         ordered="false" eType="#//FunctionalConstraints" transient="true" unsettable="true"
         resolveProxies="false" eOpposite="#//FunctionalConstraints/functionalConstraint"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="referredByDataAttribute"
@@ -1055,16 +1056,16 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="functionalConstraint" ordered="false"
         upperBound="-1" eType="#//FunctionalConstraint" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//FunctionalConstraint/functionalConstraints">
+        resolveProxies="false" eOpposite="#//FunctionalConstraint/parentFunctionalConstraints">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="FunctionalConstraint"/>
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="nS" ordered="false" eType="#//NS"
-        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/functionalConstraints"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="serviceNS" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentNS" ordered="false"
+        eType="#//NS" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/functionalConstraints"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentServiceNS" ordered="false"
         eType="#//ServiceNS" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//ServiceNS/functionalConstraints"/>
   </eClassifiers>
@@ -1094,9 +1095,9 @@
         <details key="name" value="uri"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="copyrightNotice" ordered="false"
-        eType="#//CopyrightNotice" transient="true" unsettable="true" resolveProxies="false"
-        eOpposite="#//CopyrightNotice/license"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentCopyrightNotice"
+        ordered="false" eType="#//CopyrightNotice" transient="true" unsettable="true"
+        resolveProxies="false" eOpposite="#//CopyrightNotice/license"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="LicenseKind">
     <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
@@ -1138,7 +1139,7 @@
         <details key="name" value="name"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="enumeration" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentEnumeration" ordered="false"
         eType="#//Enumeration" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//Enumeration/literal"/>
   </eClassifiers>
@@ -1174,7 +1175,7 @@
         <details key="name" value="name"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="lNClasses" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentLNClasses" ordered="false"
         eType="#//LNClasses" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//LNClasses/lNClass"/>
   </eClassifiers>
@@ -1192,7 +1193,7 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="abstractLNClass" ordered="false"
         upperBound="-1" eType="#//AbstractLNClass" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//AbstractLNClass/lNClasses">
+        resolveProxies="false" eOpposite="#//AbstractLNClass/parentLNClasses">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="AbstractLNClass"/>
@@ -1201,15 +1202,15 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="lNClass" ordered="false"
         upperBound="-1" eType="#//LNClass" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//LNClass/lNClasses">
+        eOpposite="#//LNClass/parentLNClasses">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="LNClass"/>
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="nS" ordered="false" eType="#//NS"
-        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/lNClasses"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentNS" ordered="false"
+        eType="#//NS" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/lNClasses"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Notice" eSuperTypes="#//NsdObject">
     <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
@@ -1223,9 +1224,9 @@
         <details key="name" value=":mixed"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="copyrightNotice" ordered="false"
-        eType="#//CopyrightNotice" transient="true" unsettable="true" resolveProxies="false"
-        eOpposite="#//CopyrightNotice/notice"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentCopyrightNotice"
+        ordered="false" eType="#//CopyrightNotice" transient="true" unsettable="true"
+        resolveProxies="false" eOpposite="#//CopyrightNotice/notice"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="NS" eSuperTypes="#//Copyrighted #//AgNSIdentification #//AgUML #//AgNSdesc">
     <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
@@ -1254,7 +1255,7 @@
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="changes" ordered="false"
         eType="#//Changes" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//Changes/nS">
+        eOpposite="#//Changes/parentNS">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="Changes"/>
@@ -1263,7 +1264,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" ordered="false"
         eType="#//DependsOn" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//DependsOn/nS">
+        eOpposite="#//DependsOn/parentNS">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="DependsOn"/>
@@ -1272,7 +1273,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="basicTypes" ordered="false"
         eType="#//BasicTypes" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//BasicTypes/nS">
+        eOpposite="#//BasicTypes/parentNS">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="BasicTypes"/>
@@ -1281,7 +1282,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="functionalConstraints"
         ordered="false" eType="#//FunctionalConstraints" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//FunctionalConstraints/nS">
+        resolveProxies="false" eOpposite="#//FunctionalConstraints/parentNS">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="FunctionalConstraints"/>
@@ -1290,7 +1291,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="presenceConditions" ordered="false"
         eType="#//PresenceConditions" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//PresenceConditions/nS">
+        eOpposite="#//PresenceConditions/parentNS">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="PresenceConditions"/>
@@ -1299,7 +1300,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="abbreviations" ordered="false"
         eType="#//Abbreviations" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//Abbreviations/nS">
+        eOpposite="#//Abbreviations/parentNS">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="Abbreviations"/>
@@ -1308,7 +1309,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="enumerations" ordered="false"
         eType="#//Enumerations" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//Enumerations/nS">
+        eOpposite="#//Enumerations/parentNS">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="Enumerations"/>
@@ -1317,7 +1318,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="constructedAttributes"
         ordered="false" eType="#//ConstructedAttributes" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//ConstructedAttributes/nS">
+        resolveProxies="false" eOpposite="#//ConstructedAttributes/parentNS">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="ConstructedAttributes"/>
@@ -1325,7 +1326,7 @@
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="cDCs" ordered="false" eType="#//CDCs"
-        unsettable="true" containment="true" resolveProxies="false" eOpposite="#//CDCs/nS">
+        unsettable="true" containment="true" resolveProxies="false" eOpposite="#//CDCs/parentNS">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="CDCs"/>
@@ -1334,7 +1335,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="lNClasses" ordered="false"
         eType="#//LNClasses" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//LNClasses/nS">
+        eOpposite="#//LNClasses/parentNS">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="LNClasses"/>
@@ -1358,7 +1359,7 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="doc" ordered="false" upperBound="-1"
         eType="#//Doc" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//Doc/nSDoc">
+        eOpposite="#//Doc/parentNSDoc">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="Doc"/>
@@ -1412,9 +1413,9 @@
         <details key="name" value="titleID"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="presenceConditions" ordered="false"
-        eType="#//PresenceConditions" transient="true" unsettable="true" resolveProxies="false"
-        eOpposite="#//PresenceConditions/presenceCondition"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentPresenceConditions"
+        ordered="false" eType="#//PresenceConditions" transient="true" unsettable="true"
+        resolveProxies="false" eOpposite="#//PresenceConditions/presenceCondition"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="referredByDataObject" ordered="false"
         upperBound="-1" eType="#//DataObject" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//DataObject/refersToPresenceCondition"/>
@@ -1444,16 +1445,16 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="presenceCondition" ordered="false"
         upperBound="-1" eType="#//PresenceCondition" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//PresenceCondition/presenceConditions">
+        resolveProxies="false" eOpposite="#//PresenceCondition/parentPresenceConditions">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="PresenceCondition"/>
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="nS" ordered="false" eType="#//NS"
-        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/presenceConditions"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="serviceNS" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentNS" ordered="false"
+        eType="#//NS" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/presenceConditions"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentServiceNS" ordered="false"
         eType="#//ServiceNS" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//ServiceNS/presenceConditions"/>
   </eClassifiers>
@@ -1526,7 +1527,7 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="serviceDataAttribute" ordered="false"
         upperBound="-1" eType="#//ServiceDataAttribute" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//ServiceDataAttribute/serviceCDC">
+        resolveProxies="false" eOpposite="#//ServiceDataAttribute/parentServiceCDC">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="ServiceDataAttribute"/>
@@ -1547,7 +1548,7 @@
         <details key="name" value="variant"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="serviceCDCs" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentServiceCDCs" ordered="false"
         eType="#//ServiceCDCs" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//ServiceCDCs/serviceCDC"/>
   </eClassifiers>
@@ -1558,14 +1559,14 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="serviceCDC" ordered="false"
         upperBound="-1" eType="#//ServiceCDC" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//ServiceCDC/serviceCDCs">
+        resolveProxies="false" eOpposite="#//ServiceCDC/parentServiceCDCs">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="ServiceCDC"/>
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="serviceNS" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentServiceNS" ordered="false"
         eType="#//ServiceNS" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//ServiceNS/serviceCDCs"/>
   </eClassifiers>
@@ -1582,7 +1583,7 @@
         <details key="name" value="typeKindParameterized"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="serviceConstructedAttribute"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentServiceConstructedAttributes"
         ordered="false" eType="#//ServiceConstructedAttributes" transient="true" unsettable="true"
         resolveProxies="false" eOpposite="#//ServiceConstructedAttributes/serviceConstructedAttribute"/>
   </eClassifiers>
@@ -1593,14 +1594,14 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="serviceConstructedAttribute"
         ordered="false" upperBound="-1" eType="#//ServiceConstructedAttribute" unsettable="true"
-        containment="true" resolveProxies="false" eOpposite="#//ServiceConstructedAttribute/serviceConstructedAttribute">
+        containment="true" resolveProxies="false" eOpposite="#//ServiceConstructedAttribute/parentServiceConstructedAttributes">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="ServiceConstructedAttribute"/>
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="serviceNS" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentServiceNS" ordered="false"
         eType="#//ServiceNS" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//ServiceNS/serviceConstructedAttributes"/>
   </eClassifiers>
@@ -1630,7 +1631,7 @@
         <details key="name" value="name"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="serviceCDC" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentServiceCDC" ordered="false"
         eType="#//ServiceCDC" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//ServiceCDC/serviceDataAttribute"/>
   </eClassifiers>
@@ -1641,7 +1642,7 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="changes" ordered="false"
         eType="#//Changes" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//Changes/serviceNS">
+        eOpposite="#//Changes/parentServiceNS">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="Changes"/>
@@ -1650,7 +1651,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="functionalConstraints"
         ordered="false" eType="#//FunctionalConstraints" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//FunctionalConstraints/serviceNS">
+        resolveProxies="false" eOpposite="#//FunctionalConstraints/parentServiceNS">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="FunctionalConstraints"/>
@@ -1659,7 +1660,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="presenceConditions" ordered="false"
         eType="#//PresenceConditions" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//PresenceConditions/serviceNS">
+        eOpposite="#//PresenceConditions/parentServiceNS">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="PresenceConditions"/>
@@ -1668,7 +1669,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="abbreviations" ordered="false"
         eType="#//Abbreviations" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//Abbreviations/serviceNS">
+        eOpposite="#//Abbreviations/parentServiceNS">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="Abbreviations"/>
@@ -1677,7 +1678,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="serviceTypeRealizations"
         ordered="false" eType="#//ServiceTypeRealizations" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//ServiceTypeRealizations/serviceNS">
+        resolveProxies="false" eOpposite="#//ServiceTypeRealizations/parentServiceNS">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="ServiceTypeRealizations"/>
@@ -1686,7 +1687,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="serviceConstructedAttributes"
         ordered="false" eType="#//ServiceConstructedAttributes" unsettable="true"
-        containment="true" resolveProxies="false" eOpposite="#//ServiceConstructedAttributes/serviceNS">
+        containment="true" resolveProxies="false" eOpposite="#//ServiceConstructedAttributes/parentServiceNS">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="ServiceConstructedAttributes"/>
@@ -1695,7 +1696,7 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="serviceCDCs" ordered="false"
         eType="#//ServiceCDCs" unsettable="true" containment="true" resolveProxies="false"
-        eOpposite="#//ServiceCDCs/serviceNS">
+        eOpposite="#//ServiceCDCs/parentServiceNS">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="ServiceCDCs"/>
@@ -1710,15 +1711,16 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="appliesTo" ordered="false"
         upperBound="-1" eType="#//AppliesToType" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//AppliesToType/serviceNsUsage">
+        resolveProxies="false" eOpposite="#//AppliesToType/parentServiceNsUsage">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="AppliesTo"/>
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="applicableServiceNS" ordered="false"
-        eType="#//ApplicableServiceNS" transient="true" unsettable="true" eOpposite="#//ApplicableServiceNS/serviceNsUsage"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentApplicableServiceNS"
+        ordered="false" eType="#//ApplicableServiceNS" transient="true" unsettable="true"
+        eOpposite="#//ApplicableServiceNS/serviceNsUsage"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ServiceParameter" eSuperTypes="#//DocumentedClass #//AgAttributeTypeAndValues">
     <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
@@ -1738,8 +1740,8 @@
         <details key="name" value="name"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="cDC" ordered="false" eType="#//CDC"
-        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//CDC/serviceParameter"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentCDC" ordered="false"
+        eType="#//CDC" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//CDC/serviceParameter"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ServiceTypeRealizations" eSuperTypes="#//NsdObject">
     <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
@@ -1748,14 +1750,14 @@
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="serviceTypeRealization"
         ordered="false" upperBound="-1" eType="#//ConstructedAttribute" unsettable="true"
-        containment="true" resolveProxies="false" eOpposite="#//ConstructedAttribute/serviceTypeRealizations">
+        containment="true" resolveProxies="false" eOpposite="#//ConstructedAttribute/parentServiceTypeRealizations">
       <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
         <details key="kind" value="element"/>
         <details key="name" value="ServiceTypeRealization"/>
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="serviceNS" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentServiceNS" ordered="false"
         eType="#//ServiceNS" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//ServiceNS/serviceTypeRealizations"/>
   </eClassifiers>
@@ -1777,9 +1779,9 @@
         <details key="name" value="name"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="constructedAttribute" ordered="false"
-        eType="#//ConstructedAttribute" transient="true" unsettable="true" resolveProxies="false"
-        eOpposite="#//ConstructedAttribute/subDataAttribute"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentConstructedAttribute"
+        ordered="false" eType="#//ConstructedAttribute" transient="true" unsettable="true"
+        resolveProxies="false" eOpposite="#//ConstructedAttribute/subDataAttribute"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="refersToPresenceCondition"
         ordered="false" eType="#//PresenceCondition" transient="true" unsettable="true"
         resolveProxies="false" eOpposite="#//PresenceCondition/referredBySubDataAttribute"/>
@@ -1810,8 +1812,8 @@
         <details key="name" value="type"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="cDC" ordered="false" eType="#//CDC"
-        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//CDC/subDataObject"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentCDC" ordered="false"
+        eType="#//CDC" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//CDC/subDataObject"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="refersToCDC" ordered="false"
         eType="#//CDC" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//CDC/referredBySubDataObject"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="refersToPresenceCondition"
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel
index c0a7443fb20fa0cdb11f8e3a0dff01aa3f9c3d1f..5c8c4bccbb1d20d8c699960c6d38a631a43ab708 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel
@@ -108,10 +108,10 @@
     <genDataTypes ecoreDataType="nsd.ecore#//PubStageObject"/>
     <genDataTypes ecoreDataType="nsd.ecore#//UndefinedAttributeTypeKindObject"/>
     <genClasses ecoreClass="nsd.ecore#//AppliesToType">
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//AppliesToType/serviceNsUsage"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//AppliesToType/parentServiceNsUsage"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//DependsOn">
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//DependsOn/nS"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//DependsOn/parentNS"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//DependsOn/refersToNS"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//DocumentRoot">
@@ -125,21 +125,21 @@
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//ServiceType">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//ServiceType/name"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ServiceType/applicableServices"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ServiceType/parentApplicableServices"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//Abbreviation">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//Abbreviation/descID"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//Abbreviation/name"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Abbreviation/abbreviations"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Abbreviation/parentAbbreviations"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//Abbreviations">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//Abbreviations/abbreviation"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Abbreviations/nS"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Abbreviations/serviceNS"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Abbreviations/parentNS"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Abbreviations/parentServiceNS"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//AbstractLNClass">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//AbstractLNClass/name"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//AbstractLNClass/lNClasses"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//AbstractLNClass/parentLNClasses"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//AbstractLNClass/referredByAnyLNClass"/>
     </genClasses>
     <genClasses image="false" ecoreClass="nsd.ecore#//AnyLNClass">
@@ -147,7 +147,7 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//AnyLNClass/base"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//AnyLNClass/refersToAbstractLNClass"/>
       <genOperations ecoreOperation="nsd.ecore#//AnyLNClass/getName"/>
-      <genOperations ecoreOperation="nsd.ecore#//AnyLNClass/getLNClasses"/>
+      <genOperations ecoreOperation="nsd.ecore#//AnyLNClass/getParentLNClasses"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//ApplicableServiceNS">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//ApplicableServiceNS/serviceNsUsage"/>
@@ -157,17 +157,17 @@
     <genClasses ecoreClass="nsd.ecore#//ApplicableServices">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//ApplicableServices/service"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//ApplicableServices/dataSetMemberOf"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ApplicableServices/functionalConstraint"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ApplicableServices/parentFunctionalConstraint"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//BasicType">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//BasicType/descID"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//BasicType/name"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//BasicType/basicTypes"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//BasicType/parentBasicTypes"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//BasicType/referredByDataAttribute"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//BasicTypes">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//BasicTypes/basicType"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//BasicTypes/nS"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//BasicTypes/parentNS"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//CDC">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//CDC/subDataObject"/>
@@ -178,33 +178,33 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//CDC/statistics"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//CDC/typeKindParameterized"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//CDC/variant"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//CDC/cDCs"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//CDC/parentCDCs"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//CDC/referredByDataObject"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//CDC/referredBySubDataObject"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//CDCs">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//CDCs/cDC"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//CDCs/nS"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//CDCs/parentNS"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//Changes">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//Changes/changesID"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//Changes/date"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//Changes/revision"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//Changes/tissues"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Changes/nS"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Changes/serviceNS"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Changes/parentNS"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Changes/parentServiceNS"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//Changes/release"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//Changes/version"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//ConstructedAttribute">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//ConstructedAttribute/subDataAttribute"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//ConstructedAttribute/name"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ConstructedAttribute/constructedAttributes"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ConstructedAttribute/serviceTypeRealizations"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ConstructedAttribute/parentConstructedAttributes"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ConstructedAttribute/parentServiceTypeRealizations"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//ConstructedAttributes">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//ConstructedAttributes/constructedAttribute"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ConstructedAttributes/nS"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ConstructedAttributes/parentNS"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//Copyrighted">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//Copyrighted/copyright"/>
@@ -212,12 +212,12 @@
     <genClasses ecoreClass="nsd.ecore#//CopyrightNotice">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//CopyrightNotice/notice"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//CopyrightNotice/license"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//CopyrightNotice/copyrighted"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//CopyrightNotice/parentCopyrighted"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//DataAttribute">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//DataAttribute/fc"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//DataAttribute/name"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//DataAttribute/cDC"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//DataAttribute/parentCDC"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//DataAttribute/referredBySubDataObjectAsSizeAttribute"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//DataAttribute/referredBySubDataObjectAsMaxIndexAttribute"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//DataAttribute/refersToFunctionalConstraint"/>
@@ -232,21 +232,21 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//DataObject/name"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//DataObject/transient"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//DataObject/type"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//DataObject/anyLNClass"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//DataObject/parentAnyLNClass"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//DataObject/refersToCDC"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//DataObject/refersToPresenceCondition"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//DataObject/refersToPresenceConditionDerivedStatistics"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//DataSetMemberOf">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//DataSetMemberOf/cb"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//DataSetMemberOf/applicableServices"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//DataSetMemberOf/parentApplicableServices"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//Doc">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute nsd.ecore#//Doc/mixed"/>
       <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//Doc/group"/>
       <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//Doc/any"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//Doc/id"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Doc/nSDoc"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Doc/parentNSDoc"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//DocumentedClass">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//DocumentedClass/deprecated"/>
@@ -257,52 +257,52 @@
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//Enumeration/literal"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//Enumeration/inheritedFrom"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//Enumeration/name"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Enumeration/enumerations"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Enumeration/parentEnumerations"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//Enumeration/refersToBaseEnumeration"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//Enumeration/referredByEnumerationAsBase"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//Enumerations">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//Enumerations/enumeration"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Enumerations/nS"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Enumerations/parentNS"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//FunctionalConstraint">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//FunctionalConstraint/applicableServices"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//FunctionalConstraint/abbreviation"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//FunctionalConstraint/descID"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//FunctionalConstraint/titleID"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//FunctionalConstraint/functionalConstraints"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//FunctionalConstraint/parentFunctionalConstraints"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//FunctionalConstraint/referredByDataAttribute"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//FunctionalConstraints">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//FunctionalConstraints/functionalConstraint"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//FunctionalConstraints/nS"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//FunctionalConstraints/serviceNS"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//FunctionalConstraints/parentNS"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//FunctionalConstraints/parentServiceNS"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//License">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute nsd.ecore#//License/mixed"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//License/kind"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//License/uri"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//License/copyrightNotice"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//License/parentCopyrightNotice"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//Literal">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//Literal/literalVal"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//Literal/name"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Literal/enumeration"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Literal/parentEnumeration"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//LNClass">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//LNClass/canHaveLOG"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//LNClass/isExtension"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//LNClass/name"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//LNClass/lNClasses"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//LNClass/parentLNClasses"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//LNClasses">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//LNClasses/abstractLNClass"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//LNClasses/lNClass"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//LNClasses/nS"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//LNClasses/parentNS"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//Notice">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute nsd.ecore#//Notice/mixed"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Notice/copyrightNotice"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Notice/parentCopyrightNotice"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//NS">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//NS/changes"/>
@@ -346,7 +346,7 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//PresenceCondition/descID"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//PresenceCondition/name"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//PresenceCondition/titleID"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//PresenceCondition/presenceConditions"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//PresenceCondition/parentPresenceConditions"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//PresenceCondition/referredByDataObject"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//PresenceCondition/referredByDataObjectForDerivedStatistics"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//PresenceCondition/referredBySubDataObject"/>
@@ -355,31 +355,31 @@
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//PresenceConditions">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//PresenceConditions/presenceCondition"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//PresenceConditions/nS"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//PresenceConditions/serviceNS"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//PresenceConditions/parentNS"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//PresenceConditions/parentServiceNS"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//ServiceCDC">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//ServiceCDC/serviceDataAttribute"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//ServiceCDC/cdc"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//ServiceCDC/variant"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ServiceCDC/serviceCDCs"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ServiceCDC/parentServiceCDCs"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//ServiceCDCs">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//ServiceCDCs/serviceCDC"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ServiceCDCs/serviceNS"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ServiceCDCs/parentServiceNS"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//ServiceConstructedAttribute">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//ServiceConstructedAttribute/typeKindParameterized"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ServiceConstructedAttribute/serviceConstructedAttribute"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ServiceConstructedAttribute/parentServiceConstructedAttributes"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//ServiceConstructedAttributes">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//ServiceConstructedAttributes/serviceConstructedAttribute"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ServiceConstructedAttributes/serviceNS"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ServiceConstructedAttributes/parentServiceNS"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//ServiceDataAttribute">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//ServiceDataAttribute/fc"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//ServiceDataAttribute/name"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ServiceDataAttribute/serviceCDC"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ServiceDataAttribute/parentServiceCDC"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//ServiceNS">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//ServiceNS/changes"/>
@@ -392,25 +392,25 @@
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//ServiceNsUsage">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//ServiceNsUsage/appliesTo"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ServiceNsUsage/applicableServiceNS"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ServiceNsUsage/parentApplicableServiceNS"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//ServiceParameter">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//ServiceParameter/name"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ServiceParameter/cDC"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ServiceParameter/parentCDC"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//ServiceTypeRealizations">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//ServiceTypeRealizations/serviceTypeRealization"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ServiceTypeRealizations/serviceNS"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//ServiceTypeRealizations/parentServiceNS"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//SubDataAttribute">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//SubDataAttribute/name"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//SubDataAttribute/constructedAttribute"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//SubDataAttribute/parentConstructedAttribute"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//SubDataAttribute/refersToPresenceCondition"/>
     </genClasses>
     <genClasses ecoreClass="nsd.ecore#//SubDataObject">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//SubDataObject/name"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//SubDataObject/type"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//SubDataObject/cDC"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//SubDataObject/parentCDC"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//SubDataObject/refersToCDC"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//SubDataObject/refersToPresenceCondition"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//SubDataObject/refersToSizeAttribute"/>
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Abbreviation.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Abbreviation.java
index b41109e3e1b56c216f363be484589d04b2213535..80affbe2aa769cb133bc60450d484b8f79dcc711 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Abbreviation.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Abbreviation.java
@@ -30,7 +30,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviation#getDescID <em>Desc ID</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviation#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviation#getAbbreviations <em>Abbreviations</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviation#getParentAbbreviations <em>Parent Abbreviations</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAbbreviation()
@@ -141,31 +141,27 @@ public interface Abbreviation extends NsdObject {
     boolean isSetName();
 
     /**
-     * Returns the value of the '<em><b>Abbreviations</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Abbreviations</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getAbbreviation <em>Abbreviation</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Abbreviations</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Abbreviations</em>' container reference.
-     * @see #setAbbreviations(Abbreviations)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAbbreviation_Abbreviations()
+     * @return the value of the '<em>Parent Abbreviations</em>' container reference.
+     * @see #setParentAbbreviations(Abbreviations)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAbbreviation_ParentAbbreviations()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getAbbreviation
      * @model opposite="abbreviation" resolveProxies="false" unsettable="true" transient="false" ordered="false"
      * @generated
      */
-    Abbreviations getAbbreviations();
+    Abbreviations getParentAbbreviations();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviation#getAbbreviations <em>Abbreviations</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviation#getParentAbbreviations <em>Parent Abbreviations</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Abbreviations</em>' container reference.
-     * @see #getAbbreviations()
+     * @param value the new value of the '<em>Parent Abbreviations</em>' container reference.
+     * @see #getParentAbbreviations()
      * @generated
      */
-    void setAbbreviations( Abbreviations value );
+    void setParentAbbreviations( Abbreviations value );
 
 } // Abbreviation
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Abbreviations.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Abbreviations.java
index bd2d91b0eefdfcebb70dd513c78da833d92e09ce..d2e38f1f187b8fe5e8ba764967f331cb4428dd2a 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Abbreviations.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Abbreviations.java
@@ -31,8 +31,8 @@ import org.eclipse.emf.common.util.EList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getAbbreviation <em>Abbreviation</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getNS <em>NS</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getServiceNS <em>Service NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getParentNS <em>Parent NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getParentServiceNS <em>Parent Service NS</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAbbreviations()
@@ -45,15 +45,15 @@ public interface Abbreviations extends NsdObject {
     /**
      * Returns the value of the '<em><b>Abbreviation</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviation}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviation#getAbbreviations <em>Abbreviations</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviation#getParentAbbreviations <em>Parent Abbreviations</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Abbreviation</em>' containment reference list.
      * @see #isSetAbbreviation()
      * @see #unsetAbbreviation()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAbbreviations_Abbreviation()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviation#getAbbreviations
-     * @model opposite="abbreviations" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviation#getParentAbbreviations
+     * @model opposite="parentAbbreviations" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='Abbreviation' namespace='##targetNamespace'"
      * @generated
      */
@@ -81,59 +81,51 @@ public interface Abbreviations extends NsdObject {
     boolean isSetAbbreviation();
 
     /**
-     * Returns the value of the '<em><b>NS</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent NS</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#getAbbreviations <em>Abbreviations</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>NS</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>NS</em>' container reference.
-     * @see #setNS(NS)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAbbreviations_NS()
+     * @return the value of the '<em>Parent NS</em>' container reference.
+     * @see #setParentNS(NS)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAbbreviations_ParentNS()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#getAbbreviations
      * @model opposite="abbreviations" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    NS getNS();
+    NS getParentNS();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getNS <em>NS</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getParentNS <em>Parent NS</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>NS</em>' container reference.
-     * @see #getNS()
+     * @param value the new value of the '<em>Parent NS</em>' container reference.
+     * @see #getParentNS()
      * @generated
      */
-    void setNS( NS value );
+    void setParentNS( NS value );
 
     /**
-     * Returns the value of the '<em><b>Service NS</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Service NS</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNS#getAbbreviations <em>Abbreviations</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Service NS</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Service NS</em>' container reference.
-     * @see #setServiceNS(ServiceNS)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAbbreviations_ServiceNS()
+     * @return the value of the '<em>Parent Service NS</em>' container reference.
+     * @see #setParentServiceNS(ServiceNS)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAbbreviations_ParentServiceNS()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNS#getAbbreviations
      * @model opposite="abbreviations" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    ServiceNS getServiceNS();
+    ServiceNS getParentServiceNS();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getServiceNS <em>Service NS</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getParentServiceNS <em>Parent Service NS</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Service NS</em>' container reference.
-     * @see #getServiceNS()
+     * @param value the new value of the '<em>Parent Service NS</em>' container reference.
+     * @see #getParentServiceNS()
      * @generated
      */
-    void setServiceNS( ServiceNS value );
+    void setParentServiceNS( ServiceNS value );
 
 } // Abbreviations
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AbstractLNClass.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AbstractLNClass.java
index 24a46768fda4613be601135645fe41a331f2d215..aaac90e1508ae4e3a2b75ef96e43dfa9969bdafb 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AbstractLNClass.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AbstractLNClass.java
@@ -31,7 +31,7 @@ import org.eclipse.emf.common.util.EList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass#getLNClasses <em>LN Classes</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass#getParentLNClasses <em>Parent LN Classes</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass#getReferredByAnyLNClass <em>Referred By Any LN Class</em>}</li>
  * </ul>
  *
@@ -94,33 +94,28 @@ public interface AbstractLNClass extends AnyLNClass {
     boolean isSetName();
 
     /**
-     * Returns the value of the '<em><b>LN Classes</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent LN Classes</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses#getAbstractLNClass <em>Abstract LN Class</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>LN Classes</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>LN Classes</em>' container reference.
-     * @see #setLNClasses(LNClasses)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAbstractLNClass_LNClasses()
+     * @return the value of the '<em>Parent LN Classes</em>' container reference.
+     * @see #setParentLNClasses(LNClasses)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAbstractLNClass_ParentLNClasses()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses#getAbstractLNClass
      * @model opposite="abstractLNClass" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    @Override
-    LNClasses getLNClasses();
+    LNClasses getParentLNClasses();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass#getLNClasses <em>LN Classes</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass#getParentLNClasses <em>Parent LN Classes</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>LN Classes</em>' container reference.
-     * @see #getLNClasses()
+     * @param value the new value of the '<em>Parent LN Classes</em>' container reference.
+     * @see #getParentLNClasses()
      * @generated
      */
-    void setLNClasses( LNClasses value );
+    void setParentLNClasses( LNClasses value );
 
     /**
      * Returns the value of the '<em><b>Referred By Any LN Class</b></em>' reference list.
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AnyLNClass.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AnyLNClass.java
index e9a7e3d4ed5bb9ce9c65890dddeff57e3eb7c358..e64366cbf0b1de5e76905acb085a2026f3368e42 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AnyLNClass.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AnyLNClass.java
@@ -46,15 +46,15 @@ public interface AnyLNClass extends TitledClass {
     /**
      * Returns the value of the '<em><b>Data Object</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject#getAnyLNClass <em>Any LN Class</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject#getParentAnyLNClass <em>Parent Any LN Class</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Data Object</em>' containment reference list.
      * @see #isSetDataObject()
      * @see #unsetDataObject()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAnyLNClass_DataObject()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject#getAnyLNClass
-     * @model opposite="anyLNClass" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject#getParentAnyLNClass
+     * @model opposite="parentAnyLNClass" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='DataObject' namespace='##targetNamespace'"
      * @generated
      */
@@ -200,6 +200,6 @@ public interface AnyLNClass extends TitledClass {
      * @model kind="operation"
      * @generated
      */
-    LNClasses getLNClasses();
+    LNClasses getParentLNClasses();
 
 } // AnyLNClass
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ApplicableServiceNS.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ApplicableServiceNS.java
index c280ef334dcb7f19605c58d3f098fce0554e8374..9773b91693cc806a4b0f1bfec50f20dee3a5b5fd 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ApplicableServiceNS.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ApplicableServiceNS.java
@@ -47,15 +47,15 @@ public interface ApplicableServiceNS extends Copyrighted {
     /**
      * Returns the value of the '<em><b>Service Ns Usage</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNsUsage}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNsUsage#getApplicableServiceNS <em>Applicable Service NS</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNsUsage#getParentApplicableServiceNS <em>Parent Applicable Service NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Service Ns Usage</em>' containment reference list.
      * @see #isSetServiceNsUsage()
      * @see #unsetServiceNsUsage()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getApplicableServiceNS_ServiceNsUsage()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNsUsage#getApplicableServiceNS
-     * @model opposite="applicableServiceNS" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNsUsage#getParentApplicableServiceNS
+     * @model opposite="parentApplicableServiceNS" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='ServiceNsUsage' namespace='##targetNamespace'"
      * @generated
      */
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ApplicableServices.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ApplicableServices.java
index 22bc32ef375e399f7e416ee9e8ec4a408ed8d0ce..c98727baf1b7729fe85ffda4bcae4b5a6f8d106e 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ApplicableServices.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ApplicableServices.java
@@ -32,7 +32,7 @@ import org.eclipse.emf.common.util.EList;
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServices#getService <em>Service</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServices#getDataSetMemberOf <em>Data Set Member Of</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServices#getFunctionalConstraint <em>Functional Constraint</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServices#getParentFunctionalConstraint <em>Parent Functional Constraint</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getApplicableServices()
@@ -45,15 +45,15 @@ public interface ApplicableServices extends NsdObject {
     /**
      * Returns the value of the '<em><b>Service</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceType}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceType#getApplicableServices <em>Applicable Services</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceType#getParentApplicableServices <em>Parent Applicable Services</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Service</em>' containment reference list.
      * @see #isSetService()
      * @see #unsetService()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getApplicableServices_Service()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceType#getApplicableServices
-     * @model opposite="applicableServices" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceType#getParentApplicableServices
+     * @model opposite="parentApplicableServices" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='Service' namespace='##targetNamespace'"
      * @generated
      */
@@ -83,15 +83,15 @@ public interface ApplicableServices extends NsdObject {
     /**
      * Returns the value of the '<em><b>Data Set Member Of</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataSetMemberOf}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataSetMemberOf#getApplicableServices <em>Applicable Services</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataSetMemberOf#getParentApplicableServices <em>Parent Applicable Services</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Data Set Member Of</em>' containment reference list.
      * @see #isSetDataSetMemberOf()
      * @see #unsetDataSetMemberOf()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getApplicableServices_DataSetMemberOf()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataSetMemberOf#getApplicableServices
-     * @model opposite="applicableServices" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataSetMemberOf#getParentApplicableServices
+     * @model opposite="parentApplicableServices" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='DataSetMemberOf' namespace='##targetNamespace'"
      * @generated
      */
@@ -119,31 +119,27 @@ public interface ApplicableServices extends NsdObject {
     boolean isSetDataSetMemberOf();
 
     /**
-     * Returns the value of the '<em><b>Functional Constraint</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Functional Constraint</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint#getApplicableServices <em>Applicable Services</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Functional Constraint</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Functional Constraint</em>' container reference.
-     * @see #setFunctionalConstraint(FunctionalConstraint)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getApplicableServices_FunctionalConstraint()
+     * @return the value of the '<em>Parent Functional Constraint</em>' container reference.
+     * @see #setParentFunctionalConstraint(FunctionalConstraint)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getApplicableServices_ParentFunctionalConstraint()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint#getApplicableServices
      * @model opposite="applicableServices" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    FunctionalConstraint getFunctionalConstraint();
+    FunctionalConstraint getParentFunctionalConstraint();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServices#getFunctionalConstraint <em>Functional Constraint</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServices#getParentFunctionalConstraint <em>Parent Functional Constraint</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Functional Constraint</em>' container reference.
-     * @see #getFunctionalConstraint()
+     * @param value the new value of the '<em>Parent Functional Constraint</em>' container reference.
+     * @see #getParentFunctionalConstraint()
      * @generated
      */
-    void setFunctionalConstraint( FunctionalConstraint value );
+    void setParentFunctionalConstraint( FunctionalConstraint value );
 
 } // ApplicableServices
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AppliesToType.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AppliesToType.java
index 6387171db3a562521a6ca7b0a31e1c2af00811e6..9247685b2a437778339b700e4774dc6fed99d8ef 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AppliesToType.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AppliesToType.java
@@ -28,7 +28,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AppliesToType#getServiceNsUsage <em>Service Ns Usage</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AppliesToType#getParentServiceNsUsage <em>Parent Service Ns Usage</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAppliesToType()
@@ -37,31 +37,27 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
  */
 public interface AppliesToType extends NsdObject, AgNSIdentification {
     /**
-     * Returns the value of the '<em><b>Service Ns Usage</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Service Ns Usage</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNsUsage#getAppliesTo <em>Applies To</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Service Ns Usage</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Service Ns Usage</em>' container reference.
-     * @see #setServiceNsUsage(ServiceNsUsage)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAppliesToType_ServiceNsUsage()
+     * @return the value of the '<em>Parent Service Ns Usage</em>' container reference.
+     * @see #setParentServiceNsUsage(ServiceNsUsage)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAppliesToType_ParentServiceNsUsage()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNsUsage#getAppliesTo
      * @model opposite="appliesTo" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    ServiceNsUsage getServiceNsUsage();
+    ServiceNsUsage getParentServiceNsUsage();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AppliesToType#getServiceNsUsage <em>Service Ns Usage</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AppliesToType#getParentServiceNsUsage <em>Parent Service Ns Usage</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Service Ns Usage</em>' container reference.
-     * @see #getServiceNsUsage()
+     * @param value the new value of the '<em>Parent Service Ns Usage</em>' container reference.
+     * @see #getParentServiceNsUsage()
      * @generated
      */
-    void setServiceNsUsage( ServiceNsUsage value );
+    void setParentServiceNsUsage( ServiceNsUsage value );
 
 } // AppliesToType
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/BasicType.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/BasicType.java
index 3be1c8bf65844dfa20fe3c7a2cd1ac7a20de121e..b637337aaf0cf40fd7e41927be8e239ab750f036 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/BasicType.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/BasicType.java
@@ -32,7 +32,7 @@ import org.eclipse.emf.common.util.EList;
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getDescID <em>Desc ID</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getBasicTypes <em>Basic Types</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getParentBasicTypes <em>Parent Basic Types</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getReferredByDataAttribute <em>Referred By Data Attribute</em>}</li>
  * </ul>
  *
@@ -144,32 +144,28 @@ public interface BasicType extends NsdObject {
     boolean isSetName();
 
     /**
-     * Returns the value of the '<em><b>Basic Types</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Basic Types</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes#getBasicType <em>Basic Type</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Basic Types</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Basic Types</em>' container reference.
-     * @see #setBasicTypes(BasicTypes)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getBasicType_BasicTypes()
+     * @return the value of the '<em>Parent Basic Types</em>' container reference.
+     * @see #setParentBasicTypes(BasicTypes)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getBasicType_ParentBasicTypes()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes#getBasicType
      * @model opposite="basicType" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    BasicTypes getBasicTypes();
+    BasicTypes getParentBasicTypes();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getBasicTypes <em>Basic Types</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getParentBasicTypes <em>Parent Basic Types</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Basic Types</em>' container reference.
-     * @see #getBasicTypes()
+     * @param value the new value of the '<em>Parent Basic Types</em>' container reference.
+     * @see #getParentBasicTypes()
      * @generated
      */
-    void setBasicTypes( BasicTypes value );
+    void setParentBasicTypes( BasicTypes value );
 
     /**
      * Returns the value of the '<em><b>Referred By Data Attribute</b></em>' reference list.
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/BasicTypes.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/BasicTypes.java
index 3fd036f81a67a03852fad2e9a9657d92abbf0c58..b2b18aba98064785e04c5cce38d0eab9b6d2c7aa 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/BasicTypes.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/BasicTypes.java
@@ -31,7 +31,7 @@ import org.eclipse.emf.common.util.EList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes#getBasicType <em>Basic Type</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes#getNS <em>NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes#getParentNS <em>Parent NS</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getBasicTypes()
@@ -42,7 +42,7 @@ public interface BasicTypes extends NsdObject {
     /**
      * Returns the value of the '<em><b>Basic Type</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getBasicTypes <em>Basic Types</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getParentBasicTypes <em>Parent Basic Types</em>}'.
      * <!-- begin-user-doc -->
      * <p>
      * If the meaning of the '<em>Basic Type</em>' containment reference list isn't clear,
@@ -53,8 +53,8 @@ public interface BasicTypes extends NsdObject {
      * @see #isSetBasicType()
      * @see #unsetBasicType()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getBasicTypes_BasicType()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getBasicTypes
-     * @model opposite="basicTypes" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getParentBasicTypes
+     * @model opposite="parentBasicTypes" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='BasicType' namespace='##targetNamespace'"
      * @generated
      */
@@ -82,31 +82,27 @@ public interface BasicTypes extends NsdObject {
     boolean isSetBasicType();
 
     /**
-     * Returns the value of the '<em><b>NS</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent NS</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#getBasicTypes <em>Basic Types</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>NS</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>NS</em>' container reference.
-     * @see #setNS(NS)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getBasicTypes_NS()
+     * @return the value of the '<em>Parent NS</em>' container reference.
+     * @see #setParentNS(NS)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getBasicTypes_ParentNS()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#getBasicTypes
      * @model opposite="basicTypes" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    NS getNS();
+    NS getParentNS();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes#getNS <em>NS</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes#getParentNS <em>Parent NS</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>NS</em>' container reference.
-     * @see #getNS()
+     * @param value the new value of the '<em>Parent NS</em>' container reference.
+     * @see #getParentNS()
      * @generated
      */
-    void setNS( NS value );
+    void setParentNS( NS value );
 
 } // BasicTypes
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/CDC.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/CDC.java
index c69436c4de099d0a96f65040948a542d16e0362a..c805f6922cec1ebc37b28eb3529465a102be2813 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/CDC.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/CDC.java
@@ -38,7 +38,7 @@ import org.eclipse.emf.common.util.EList;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#isStatistics <em>Statistics</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#isTypeKindParameterized <em>Type Kind Parameterized</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getVariant <em>Variant</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getCDCs <em>CD Cs</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getParentCDCs <em>Parent CD Cs</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getReferredByDataObject <em>Referred By Data Object</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getReferredBySubDataObject <em>Referred By Sub Data Object</em>}</li>
  * </ul>
@@ -53,7 +53,7 @@ public interface CDC extends TitledClass {
     /**
      * Returns the value of the '<em><b>Sub Data Object</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject#getCDC <em>CDC</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject#getParentCDC <em>Parent CDC</em>}'.
      * <!-- begin-user-doc -->
      * <p>
      * If the meaning of the '<em>Sub Data Object</em>' containment reference list isn't clear,
@@ -64,8 +64,8 @@ public interface CDC extends TitledClass {
      * @see #isSetSubDataObject()
      * @see #unsetSubDataObject()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getCDC_SubDataObject()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject#getCDC
-     * @model opposite="cDC" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject#getParentCDC
+     * @model opposite="parentCDC" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='SubDataObject' namespace='##targetNamespace'"
      * @generated
      */
@@ -95,7 +95,7 @@ public interface CDC extends TitledClass {
     /**
      * Returns the value of the '<em><b>Data Attribute</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getCDC <em>CDC</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getParentCDC <em>Parent CDC</em>}'.
      * <!-- begin-user-doc -->
      * <p>
      * If the meaning of the '<em>Data Attribute</em>' containment reference list isn't clear,
@@ -106,8 +106,8 @@ public interface CDC extends TitledClass {
      * @see #isSetDataAttribute()
      * @see #unsetDataAttribute()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getCDC_DataAttribute()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getCDC
-     * @model opposite="cDC" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getParentCDC
+     * @model opposite="parentCDC" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='DataAttribute' namespace='##targetNamespace'"
      * @generated
      */
@@ -136,7 +136,7 @@ public interface CDC extends TitledClass {
 
     /**
      * Returns the value of the '<em><b>Service Parameter</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceParameter#getCDC <em>CDC</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceParameter#getParentCDC <em>Parent CDC</em>}'.
      * <!-- begin-user-doc -->
      * <p>
      * If the meaning of the '<em>Service Parameter</em>' containment reference isn't clear,
@@ -148,8 +148,8 @@ public interface CDC extends TitledClass {
      * @see #unsetServiceParameter()
      * @see #setServiceParameter(ServiceParameter)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getCDC_ServiceParameter()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceParameter#getCDC
-     * @model opposite="cDC" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceParameter#getParentCDC
+     * @model opposite="parentCDC" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='ServiceParameter' namespace='##targetNamespace'"
      * @generated
      */
@@ -444,32 +444,28 @@ public interface CDC extends TitledClass {
     boolean isSetVariant();
 
     /**
-     * Returns the value of the '<em><b>CD Cs</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent CD Cs</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCs#getCDC <em>CDC</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>CD Cs</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>CD Cs</em>' container reference.
-     * @see #setCDCs(CDCs)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getCDC_CDCs()
+     * @return the value of the '<em>Parent CD Cs</em>' container reference.
+     * @see #setParentCDCs(CDCs)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getCDC_ParentCDCs()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCs#getCDC
      * @model opposite="cDC" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    CDCs getCDCs();
+    CDCs getParentCDCs();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getCDCs <em>CD Cs</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getParentCDCs <em>Parent CD Cs</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>CD Cs</em>' container reference.
-     * @see #getCDCs()
+     * @param value the new value of the '<em>Parent CD Cs</em>' container reference.
+     * @see #getParentCDCs()
      * @generated
      */
-    void setCDCs( CDCs value );
+    void setParentCDCs( CDCs value );
 
     /**
      * Returns the value of the '<em><b>Referred By Data Object</b></em>' reference list.
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/CDCs.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/CDCs.java
index eb996b385a48894c9f681583cfaa2b913fc648a1..00ed766c6d796cb82e0d4df99fd9816c5a3badb9 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/CDCs.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/CDCs.java
@@ -31,7 +31,7 @@ import org.eclipse.emf.common.util.EList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCs#getCDC <em>CDC</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCs#getNS <em>NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCs#getParentNS <em>Parent NS</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getCDCs()
@@ -44,15 +44,15 @@ public interface CDCs extends NsdObject {
     /**
      * Returns the value of the '<em><b>CDC</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getCDCs <em>CD Cs</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getParentCDCs <em>Parent CD Cs</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>CDC</em>' containment reference list.
      * @see #isSetCDC()
      * @see #unsetCDC()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getCDCs_CDC()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getCDCs
-     * @model opposite="cDCs" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getParentCDCs
+     * @model opposite="parentCDCs" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='CDC' namespace='##targetNamespace'"
      * @generated
      */
@@ -80,31 +80,27 @@ public interface CDCs extends NsdObject {
     boolean isSetCDC();
 
     /**
-     * Returns the value of the '<em><b>NS</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent NS</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#getCDCs <em>CD Cs</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>NS</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>NS</em>' container reference.
-     * @see #setNS(NS)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getCDCs_NS()
+     * @return the value of the '<em>Parent NS</em>' container reference.
+     * @see #setParentNS(NS)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getCDCs_ParentNS()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#getCDCs
      * @model opposite="cDCs" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    NS getNS();
+    NS getParentNS();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCs#getNS <em>NS</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCs#getParentNS <em>Parent NS</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>NS</em>' container reference.
-     * @see #getNS()
+     * @param value the new value of the '<em>Parent NS</em>' container reference.
+     * @see #getParentNS()
      * @generated
      */
-    void setNS( NS value );
+    void setParentNS( NS value );
 
 } // CDCs
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Changes.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Changes.java
index 4fd10eaeead81c59c7c32d0b6aada9ad94950758..0a64abcff80307be483d5ba81cccae2056f4e20f 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Changes.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Changes.java
@@ -34,8 +34,8 @@ import javax.xml.datatype.XMLGregorianCalendar;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getDate <em>Date</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getRevision <em>Revision</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getTissues <em>Tissues</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getNS <em>NS</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getServiceNS <em>Service NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getParentNS <em>Parent NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getParentServiceNS <em>Parent Service NS</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getRelease <em>Release</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getVersion <em>Version</em>}</li>
  * </ul>
@@ -249,60 +249,52 @@ public interface Changes extends NsdObject {
     boolean isSetTissues();
 
     /**
-     * Returns the value of the '<em><b>NS</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent NS</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#getChanges <em>Changes</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>NS</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>NS</em>' container reference.
-     * @see #setNS(NS)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getChanges_NS()
+     * @return the value of the '<em>Parent NS</em>' container reference.
+     * @see #setParentNS(NS)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getChanges_ParentNS()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#getChanges
      * @model opposite="changes" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    NS getNS();
+    NS getParentNS();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getNS <em>NS</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getParentNS <em>Parent NS</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>NS</em>' container reference.
-     * @see #getNS()
+     * @param value the new value of the '<em>Parent NS</em>' container reference.
+     * @see #getParentNS()
      * @generated
      */
-    void setNS( NS value );
+    void setParentNS( NS value );
 
     /**
-     * Returns the value of the '<em><b>Service NS</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Service NS</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNS#getChanges <em>Changes</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Service NS</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Service NS</em>' container reference.
-     * @see #setServiceNS(ServiceNS)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getChanges_ServiceNS()
+     * @return the value of the '<em>Parent Service NS</em>' container reference.
+     * @see #setParentServiceNS(ServiceNS)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getChanges_ParentServiceNS()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNS#getChanges
      * @model opposite="changes" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    ServiceNS getServiceNS();
+    ServiceNS getParentServiceNS();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getServiceNS <em>Service NS</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getParentServiceNS <em>Parent Service NS</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Service NS</em>' container reference.
-     * @see #getServiceNS()
+     * @param value the new value of the '<em>Parent Service NS</em>' container reference.
+     * @see #getParentServiceNS()
      * @generated
      */
-    void setServiceNS( ServiceNS value );
+    void setParentServiceNS( ServiceNS value );
 
     /**
      * Returns the value of the '<em><b>Release</b></em>' attribute.
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ConstructedAttribute.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ConstructedAttribute.java
index a30b56cca0931a1d95a7514601e3218b031ed8c4..3423c1dd64fdc974f8e4f137560d571a8ff4a181 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ConstructedAttribute.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ConstructedAttribute.java
@@ -32,8 +32,8 @@ import org.eclipse.emf.common.util.EList;
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getSubDataAttribute <em>Sub Data Attribute</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getConstructedAttributes <em>Constructed Attributes</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getServiceTypeRealizations <em>Service Type Realizations</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getParentConstructedAttributes <em>Parent Constructed Attributes</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getParentServiceTypeRealizations <em>Parent Service Type Realizations</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getConstructedAttribute()
@@ -46,7 +46,7 @@ public interface ConstructedAttribute extends TitledClass {
     /**
      * Returns the value of the '<em><b>Sub Data Attribute</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getConstructedAttribute <em>Constructed Attribute</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getParentConstructedAttribute <em>Parent Constructed Attribute</em>}'.
      * <!-- begin-user-doc -->
      * <p>
      * If the meaning of the '<em>Sub Data Attribute</em>' containment reference list isn't clear,
@@ -57,8 +57,8 @@ public interface ConstructedAttribute extends TitledClass {
      * @see #isSetSubDataAttribute()
      * @see #unsetSubDataAttribute()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getConstructedAttribute_SubDataAttribute()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getConstructedAttribute
-     * @model opposite="constructedAttribute" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getParentConstructedAttribute
+     * @model opposite="parentConstructedAttribute" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='SubDataAttribute' namespace='##targetNamespace'"
      * @generated
      */
@@ -136,59 +136,51 @@ public interface ConstructedAttribute extends TitledClass {
     boolean isSetName();
 
     /**
-     * Returns the value of the '<em><b>Constructed Attributes</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Constructed Attributes</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttributes#getConstructedAttribute <em>Constructed Attribute</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Constructed Attributes</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Constructed Attributes</em>' container reference.
-     * @see #setConstructedAttributes(ConstructedAttributes)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getConstructedAttribute_ConstructedAttributes()
+     * @return the value of the '<em>Parent Constructed Attributes</em>' container reference.
+     * @see #setParentConstructedAttributes(ConstructedAttributes)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getConstructedAttribute_ParentConstructedAttributes()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttributes#getConstructedAttribute
      * @model opposite="constructedAttribute" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    ConstructedAttributes getConstructedAttributes();
+    ConstructedAttributes getParentConstructedAttributes();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getConstructedAttributes <em>Constructed Attributes</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getParentConstructedAttributes <em>Parent Constructed Attributes</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Constructed Attributes</em>' container reference.
-     * @see #getConstructedAttributes()
+     * @param value the new value of the '<em>Parent Constructed Attributes</em>' container reference.
+     * @see #getParentConstructedAttributes()
      * @generated
      */
-    void setConstructedAttributes( ConstructedAttributes value );
+    void setParentConstructedAttributes( ConstructedAttributes value );
 
     /**
-     * Returns the value of the '<em><b>Service Type Realizations</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Service Type Realizations</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceTypeRealizations#getServiceTypeRealization <em>Service Type Realization</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Service Type Realizations</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Service Type Realizations</em>' container reference.
-     * @see #setServiceTypeRealizations(ServiceTypeRealizations)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getConstructedAttribute_ServiceTypeRealizations()
+     * @return the value of the '<em>Parent Service Type Realizations</em>' container reference.
+     * @see #setParentServiceTypeRealizations(ServiceTypeRealizations)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getConstructedAttribute_ParentServiceTypeRealizations()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceTypeRealizations#getServiceTypeRealization
      * @model opposite="serviceTypeRealization" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    ServiceTypeRealizations getServiceTypeRealizations();
+    ServiceTypeRealizations getParentServiceTypeRealizations();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getServiceTypeRealizations <em>Service Type Realizations</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getParentServiceTypeRealizations <em>Parent Service Type Realizations</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Service Type Realizations</em>' container reference.
-     * @see #getServiceTypeRealizations()
+     * @param value the new value of the '<em>Parent Service Type Realizations</em>' container reference.
+     * @see #getParentServiceTypeRealizations()
      * @generated
      */
-    void setServiceTypeRealizations( ServiceTypeRealizations value );
+    void setParentServiceTypeRealizations( ServiceTypeRealizations value );
 
 } // ConstructedAttribute
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ConstructedAttributes.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ConstructedAttributes.java
index b68b7a1da9ac0008b5d9b0c8f814fbf570da97aa..4218ab007215b78a0d470eff01072d5b12e01153 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ConstructedAttributes.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ConstructedAttributes.java
@@ -31,7 +31,7 @@ import org.eclipse.emf.common.util.EList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttributes#getConstructedAttribute <em>Constructed Attribute</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttributes#getNS <em>NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttributes#getParentNS <em>Parent NS</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getConstructedAttributes()
@@ -44,15 +44,15 @@ public interface ConstructedAttributes extends NsdObject {
     /**
      * Returns the value of the '<em><b>Constructed Attribute</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getConstructedAttributes <em>Constructed Attributes</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getParentConstructedAttributes <em>Parent Constructed Attributes</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Constructed Attribute</em>' containment reference list.
      * @see #isSetConstructedAttribute()
      * @see #unsetConstructedAttribute()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getConstructedAttributes_ConstructedAttribute()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getConstructedAttributes
-     * @model opposite="constructedAttributes" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getParentConstructedAttributes
+     * @model opposite="parentConstructedAttributes" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='ConstructedAttribute' namespace='##targetNamespace'"
      * @generated
      */
@@ -80,31 +80,27 @@ public interface ConstructedAttributes extends NsdObject {
     boolean isSetConstructedAttribute();
 
     /**
-     * Returns the value of the '<em><b>NS</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent NS</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#getConstructedAttributes <em>Constructed Attributes</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>NS</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>NS</em>' container reference.
-     * @see #setNS(NS)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getConstructedAttributes_NS()
+     * @return the value of the '<em>Parent NS</em>' container reference.
+     * @see #setParentNS(NS)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getConstructedAttributes_ParentNS()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#getConstructedAttributes
      * @model opposite="constructedAttributes" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    NS getNS();
+    NS getParentNS();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttributes#getNS <em>NS</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttributes#getParentNS <em>Parent NS</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>NS</em>' container reference.
-     * @see #getNS()
+     * @param value the new value of the '<em>Parent NS</em>' container reference.
+     * @see #getParentNS()
      * @generated
      */
-    void setNS( NS value );
+    void setParentNS( NS value );
 
 } // ConstructedAttributes
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/CopyrightNotice.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/CopyrightNotice.java
index d6c4c1bc1ff209f41a6c87b36e05c3cef1ae6fd0..47df1cb3f59d1780dea602b9ae9b85968a1bdab9 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/CopyrightNotice.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/CopyrightNotice.java
@@ -30,7 +30,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CopyrightNotice#getNotice <em>Notice</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CopyrightNotice#getLicense <em>License</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CopyrightNotice#getCopyrighted <em>Copyrighted</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CopyrightNotice#getParentCopyrighted <em>Parent Copyrighted</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getCopyrightNotice()
@@ -40,7 +40,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
 public interface CopyrightNotice extends NsdObject {
     /**
      * Returns the value of the '<em><b>Notice</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Notice#getCopyrightNotice <em>Copyright Notice</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Notice#getParentCopyrightNotice <em>Parent Copyright Notice</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Notice</em>' containment reference.
@@ -48,8 +48,8 @@ public interface CopyrightNotice extends NsdObject {
      * @see #unsetNotice()
      * @see #setNotice(Notice)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getCopyrightNotice_Notice()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Notice#getCopyrightNotice
-     * @model opposite="copyrightNotice" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Notice#getParentCopyrightNotice
+     * @model opposite="parentCopyrightNotice" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='Notice' namespace='##targetNamespace'"
      * @generated
      */
@@ -92,7 +92,7 @@ public interface CopyrightNotice extends NsdObject {
 
     /**
      * Returns the value of the '<em><b>License</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.License#getCopyrightNotice <em>Copyright Notice</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.License#getParentCopyrightNotice <em>Parent Copyright Notice</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>License</em>' containment reference.
@@ -100,8 +100,8 @@ public interface CopyrightNotice extends NsdObject {
      * @see #unsetLicense()
      * @see #setLicense(License)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getCopyrightNotice_License()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.License#getCopyrightNotice
-     * @model opposite="copyrightNotice" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.License#getParentCopyrightNotice
+     * @model opposite="parentCopyrightNotice" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='License' namespace='##targetNamespace'"
      * @generated
      */
@@ -143,31 +143,27 @@ public interface CopyrightNotice extends NsdObject {
     boolean isSetLicense();
 
     /**
-     * Returns the value of the '<em><b>Copyrighted</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Copyrighted</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Copyrighted#getCopyright <em>Copyright</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Copyrighted</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Copyrighted</em>' container reference.
-     * @see #setCopyrighted(Copyrighted)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getCopyrightNotice_Copyrighted()
+     * @return the value of the '<em>Parent Copyrighted</em>' container reference.
+     * @see #setParentCopyrighted(Copyrighted)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getCopyrightNotice_ParentCopyrighted()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Copyrighted#getCopyright
      * @model opposite="copyright" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    Copyrighted getCopyrighted();
+    Copyrighted getParentCopyrighted();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CopyrightNotice#getCopyrighted <em>Copyrighted</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CopyrightNotice#getParentCopyrighted <em>Parent Copyrighted</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Copyrighted</em>' container reference.
-     * @see #getCopyrighted()
+     * @param value the new value of the '<em>Parent Copyrighted</em>' container reference.
+     * @see #getParentCopyrighted()
      * @generated
      */
-    void setCopyrighted( Copyrighted value );
+    void setParentCopyrighted( Copyrighted value );
 
 } // CopyrightNotice
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Copyrighted.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Copyrighted.java
index abe432b22de77413a101c59b93e9c7bf822d4d2a..0a46a0eedb311d890de25af6328992741cbd7675 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Copyrighted.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Copyrighted.java
@@ -38,7 +38,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
 public interface Copyrighted extends NsdObject {
     /**
      * Returns the value of the '<em><b>Copyright</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CopyrightNotice#getCopyrighted <em>Copyrighted</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CopyrightNotice#getParentCopyrighted <em>Parent Copyrighted</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Copyright</em>' containment reference.
@@ -46,8 +46,8 @@ public interface Copyrighted extends NsdObject {
      * @see #unsetCopyright()
      * @see #setCopyright(CopyrightNotice)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getCopyrighted_Copyright()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.CopyrightNotice#getCopyrighted
-     * @model opposite="copyrighted" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.CopyrightNotice#getParentCopyrighted
+     * @model opposite="parentCopyrighted" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='Copyright' namespace='##targetNamespace'"
      * @generated
      */
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataAttribute.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataAttribute.java
index 53a6edb6c86bbbaa7fec160f62f55e6ea1ae2d18..2f9d835e47a85c1c40b0a924cd90bd01000a4d2c 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataAttribute.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataAttribute.java
@@ -32,7 +32,7 @@ import org.eclipse.emf.common.util.EList;
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getFc <em>Fc</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getCDC <em>CDC</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getParentCDC <em>Parent CDC</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getReferredBySubDataObjectAsSizeAttribute <em>Referred By Sub Data Object As Size Attribute</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getReferredBySubDataObjectAsMaxIndexAttribute <em>Referred By Sub Data Object As Max Index Attribute</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getRefersToFunctionalConstraint <em>Refers To Functional Constraint</em>}</li>
@@ -153,32 +153,28 @@ public interface DataAttribute
     boolean isSetName();
 
     /**
-     * Returns the value of the '<em><b>CDC</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent CDC</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getDataAttribute <em>Data Attribute</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>CDC</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>CDC</em>' container reference.
-     * @see #setCDC(CDC)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataAttribute_CDC()
+     * @return the value of the '<em>Parent CDC</em>' container reference.
+     * @see #setParentCDC(CDC)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataAttribute_ParentCDC()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getDataAttribute
      * @model opposite="dataAttribute" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    CDC getCDC();
+    CDC getParentCDC();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getCDC <em>CDC</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getParentCDC <em>Parent CDC</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>CDC</em>' container reference.
-     * @see #getCDC()
+     * @param value the new value of the '<em>Parent CDC</em>' container reference.
+     * @see #getParentCDC()
      * @generated
      */
-    void setCDC( CDC value );
+    void setParentCDC( CDC value );
 
     /**
      * Returns the value of the '<em><b>Referred By Sub Data Object As Size Attribute</b></em>' reference list.
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataObject.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataObject.java
index b2f41fabf6d48c849240e31ed5383e2b2abea2c5..2bc8ba6b6a1cda8fc81bc82d683dcb81c946a47a 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataObject.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataObject.java
@@ -31,7 +31,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject#getName <em>Name</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject#isTransient <em>Transient</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject#getType <em>Type</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject#getAnyLNClass <em>Any LN Class</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject#getParentAnyLNClass <em>Parent Any LN Class</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject#getRefersToCDC <em>Refers To CDC</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject#getRefersToPresenceCondition <em>Refers To Presence Condition</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject#getRefersToPresenceConditionDerivedStatistics <em>Refers To Presence Condition Derived Statistics</em>}</li>
@@ -197,32 +197,28 @@ public interface DataObject
     boolean isSetType();
 
     /**
-     * Returns the value of the '<em><b>Any LN Class</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Any LN Class</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AnyLNClass#getDataObject <em>Data Object</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Any LN Class</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Any LN Class</em>' container reference.
-     * @see #setAnyLNClass(AnyLNClass)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataObject_AnyLNClass()
+     * @return the value of the '<em>Parent Any LN Class</em>' container reference.
+     * @see #setParentAnyLNClass(AnyLNClass)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataObject_ParentAnyLNClass()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.AnyLNClass#getDataObject
      * @model opposite="dataObject" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    AnyLNClass getAnyLNClass();
+    AnyLNClass getParentAnyLNClass();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject#getAnyLNClass <em>Any LN Class</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject#getParentAnyLNClass <em>Parent Any LN Class</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Any LN Class</em>' container reference.
-     * @see #getAnyLNClass()
+     * @param value the new value of the '<em>Parent Any LN Class</em>' container reference.
+     * @see #getParentAnyLNClass()
      * @generated
      */
-    void setAnyLNClass( AnyLNClass value );
+    void setParentAnyLNClass( AnyLNClass value );
 
     /**
      * Returns the value of the '<em><b>Refers To CDC</b></em>' reference.
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataSetMemberOf.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataSetMemberOf.java
index a48b778a88bee09d8614bcfdf9bc615c625f5654..f57405d4ed2aa02d01b3fe4cd242cc7079ba1daa 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataSetMemberOf.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataSetMemberOf.java
@@ -29,7 +29,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataSetMemberOf#getCb <em>Cb</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataSetMemberOf#getApplicableServices <em>Applicable Services</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataSetMemberOf#getParentApplicableServices <em>Parent Applicable Services</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataSetMemberOf()
@@ -93,31 +93,27 @@ public interface DataSetMemberOf extends NsdObject {
     boolean isSetCb();
 
     /**
-     * Returns the value of the '<em><b>Applicable Services</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Applicable Services</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServices#getDataSetMemberOf <em>Data Set Member Of</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Applicable Services</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Applicable Services</em>' container reference.
-     * @see #setApplicableServices(ApplicableServices)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataSetMemberOf_ApplicableServices()
+     * @return the value of the '<em>Parent Applicable Services</em>' container reference.
+     * @see #setParentApplicableServices(ApplicableServices)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataSetMemberOf_ParentApplicableServices()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServices#getDataSetMemberOf
      * @model opposite="dataSetMemberOf" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    ApplicableServices getApplicableServices();
+    ApplicableServices getParentApplicableServices();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataSetMemberOf#getApplicableServices <em>Applicable Services</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataSetMemberOf#getParentApplicableServices <em>Parent Applicable Services</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Applicable Services</em>' container reference.
-     * @see #getApplicableServices()
+     * @param value the new value of the '<em>Parent Applicable Services</em>' container reference.
+     * @see #getParentApplicableServices()
      * @generated
      */
-    void setApplicableServices( ApplicableServices value );
+    void setParentApplicableServices( ApplicableServices value );
 
 } // DataSetMemberOf
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DependsOn.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DependsOn.java
index 0c6e91cf94e272d958e24d1833276949ed4835ba..190dc1f430da126499cdf113cf24c7abde8a29f6 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DependsOn.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DependsOn.java
@@ -28,7 +28,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DependsOn#getNS <em>NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DependsOn#getParentNS <em>Parent NS</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DependsOn#getRefersToNS <em>Refers To NS</em>}</li>
  * </ul>
  *
@@ -38,32 +38,28 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
  */
 public interface DependsOn extends NsdObject, AgNSIdentification {
     /**
-     * Returns the value of the '<em><b>NS</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent NS</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#getDependsOn <em>Depends On</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>NS</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>NS</em>' container reference.
-     * @see #setNS(NS)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDependsOn_NS()
+     * @return the value of the '<em>Parent NS</em>' container reference.
+     * @see #setParentNS(NS)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDependsOn_ParentNS()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#getDependsOn
      * @model opposite="dependsOn" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    NS getNS();
+    NS getParentNS();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DependsOn#getNS <em>NS</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DependsOn#getParentNS <em>Parent NS</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>NS</em>' container reference.
-     * @see #getNS()
+     * @param value the new value of the '<em>Parent NS</em>' container reference.
+     * @see #getParentNS()
      * @generated
      */
-    void setNS( NS value );
+    void setParentNS( NS value );
 
     /**
      * Returns the value of the '<em><b>Refers To NS</b></em>' reference.
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Doc.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Doc.java
index 01de3afa137a2468a6cb2a3e93b49e85153fb859..5173d8134e96242fc969d9ca701ea18b64412c9d 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Doc.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Doc.java
@@ -34,7 +34,7 @@ import org.eclipse.emf.ecore.util.FeatureMap;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getGroup <em>Group</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getAny <em>Any</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getId <em>Id</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getNSDoc <em>NS Doc</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getParentNSDoc <em>Parent NS Doc</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDoc()
@@ -146,31 +146,27 @@ public interface Doc extends NsdObject {
     boolean isSetId();
 
     /**
-     * Returns the value of the '<em><b>NS Doc</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent NS Doc</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NSDoc#getDoc <em>Doc</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>NS Doc</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>NS Doc</em>' container reference.
-     * @see #setNSDoc(NSDoc)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDoc_NSDoc()
+     * @return the value of the '<em>Parent NS Doc</em>' container reference.
+     * @see #setParentNSDoc(NSDoc)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDoc_ParentNSDoc()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NSDoc#getDoc
      * @model opposite="doc" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    NSDoc getNSDoc();
+    NSDoc getParentNSDoc();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getNSDoc <em>NS Doc</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getParentNSDoc <em>Parent NS Doc</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>NS Doc</em>' container reference.
-     * @see #getNSDoc()
+     * @param value the new value of the '<em>Parent NS Doc</em>' container reference.
+     * @see #getParentNSDoc()
      * @generated
      */
-    void setNSDoc( NSDoc value );
+    void setParentNSDoc( NSDoc value );
 
 } // Doc
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Enumeration.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Enumeration.java
index cae9b0c5ffeed7e2b5d8d1e615e68fe947f75042..3970a10ee3692d104770723fa8e420d70e06a684 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Enumeration.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Enumeration.java
@@ -33,7 +33,7 @@ import org.eclipse.emf.common.util.EList;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getLiteral <em>Literal</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getInheritedFrom <em>Inherited From</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getEnumerations <em>Enumerations</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getParentEnumerations <em>Parent Enumerations</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getRefersToBaseEnumeration <em>Refers To Base Enumeration</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getReferredByEnumerationAsBase <em>Referred By Enumeration As Base</em>}</li>
  * </ul>
@@ -48,7 +48,7 @@ public interface Enumeration extends TitledClass {
     /**
      * Returns the value of the '<em><b>Literal</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Literal}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Literal#getEnumeration <em>Enumeration</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Literal#getParentEnumeration <em>Parent Enumeration</em>}'.
      * <!-- begin-user-doc -->
      * <p>
      * If the meaning of the '<em>Literal</em>' containment reference list isn't clear,
@@ -59,8 +59,8 @@ public interface Enumeration extends TitledClass {
      * @see #isSetLiteral()
      * @see #unsetLiteral()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getEnumeration_Literal()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Literal#getEnumeration
-     * @model opposite="enumeration" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Literal#getParentEnumeration
+     * @model opposite="parentEnumeration" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='Literal' namespace='##targetNamespace'"
      * @generated
      */
@@ -188,32 +188,28 @@ public interface Enumeration extends TitledClass {
     boolean isSetName();
 
     /**
-     * Returns the value of the '<em><b>Enumerations</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Enumerations</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumerations#getEnumeration <em>Enumeration</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Enumerations</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Enumerations</em>' container reference.
-     * @see #setEnumerations(Enumerations)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getEnumeration_Enumerations()
+     * @return the value of the '<em>Parent Enumerations</em>' container reference.
+     * @see #setParentEnumerations(Enumerations)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getEnumeration_ParentEnumerations()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumerations#getEnumeration
      * @model opposite="enumeration" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    Enumerations getEnumerations();
+    Enumerations getParentEnumerations();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getEnumerations <em>Enumerations</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getParentEnumerations <em>Parent Enumerations</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Enumerations</em>' container reference.
-     * @see #getEnumerations()
+     * @param value the new value of the '<em>Parent Enumerations</em>' container reference.
+     * @see #getParentEnumerations()
      * @generated
      */
-    void setEnumerations( Enumerations value );
+    void setParentEnumerations( Enumerations value );
 
     /**
      * Returns the value of the '<em><b>Refers To Base Enumeration</b></em>' reference.
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Enumerations.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Enumerations.java
index f9d5811176dab54afaa962b4e10a0d770dd31cac..44af6448247af09e6adfc8565efea6dbf3675166 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Enumerations.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Enumerations.java
@@ -31,7 +31,7 @@ import org.eclipse.emf.common.util.EList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumerations#getEnumeration <em>Enumeration</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumerations#getNS <em>NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumerations#getParentNS <em>Parent NS</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getEnumerations()
@@ -44,15 +44,15 @@ public interface Enumerations extends NsdObject {
     /**
      * Returns the value of the '<em><b>Enumeration</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getEnumerations <em>Enumerations</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getParentEnumerations <em>Parent Enumerations</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Enumeration</em>' containment reference list.
      * @see #isSetEnumeration()
      * @see #unsetEnumeration()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getEnumerations_Enumeration()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getEnumerations
-     * @model opposite="enumerations" containment="true" unsettable="true"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getParentEnumerations
+     * @model opposite="parentEnumerations" containment="true" unsettable="true"
      *        extendedMetaData="kind='element' name='Enumeration' namespace='##targetNamespace'"
      * @generated
      */
@@ -80,31 +80,27 @@ public interface Enumerations extends NsdObject {
     boolean isSetEnumeration();
 
     /**
-     * Returns the value of the '<em><b>NS</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent NS</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#getEnumerations <em>Enumerations</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>NS</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>NS</em>' container reference.
-     * @see #setNS(NS)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getEnumerations_NS()
+     * @return the value of the '<em>Parent NS</em>' container reference.
+     * @see #setParentNS(NS)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getEnumerations_ParentNS()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#getEnumerations
      * @model opposite="enumerations" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    NS getNS();
+    NS getParentNS();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumerations#getNS <em>NS</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumerations#getParentNS <em>Parent NS</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>NS</em>' container reference.
-     * @see #getNS()
+     * @param value the new value of the '<em>Parent NS</em>' container reference.
+     * @see #getParentNS()
      * @generated
      */
-    void setNS( NS value );
+    void setParentNS( NS value );
 
 } // Enumerations
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/FunctionalConstraint.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/FunctionalConstraint.java
index d2947dbc723dfe3805eb63d8c6d35d9dcde2f34a..37ffcac4c83c732812f9d6ccbb26d4ff043e39b3 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/FunctionalConstraint.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/FunctionalConstraint.java
@@ -34,7 +34,7 @@ import org.eclipse.emf.common.util.EList;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint#getAbbreviation <em>Abbreviation</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint#getDescID <em>Desc ID</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint#getTitleID <em>Title ID</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint#getFunctionalConstraints <em>Functional Constraints</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint#getParentFunctionalConstraints <em>Parent Functional Constraints</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint#getReferredByDataAttribute <em>Referred By Data Attribute</em>}</li>
  * </ul>
  *
@@ -47,7 +47,7 @@ import org.eclipse.emf.common.util.EList;
 public interface FunctionalConstraint extends NsdObject {
     /**
      * Returns the value of the '<em><b>Applicable Services</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServices#getFunctionalConstraint <em>Functional Constraint</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServices#getParentFunctionalConstraint <em>Parent Functional Constraint</em>}'.
      * <!-- begin-user-doc -->
      * <p>
      * If the meaning of the '<em>Applicable Services</em>' containment reference isn't clear,
@@ -59,8 +59,8 @@ public interface FunctionalConstraint extends NsdObject {
      * @see #unsetApplicableServices()
      * @see #setApplicableServices(ApplicableServices)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getFunctionalConstraint_ApplicableServices()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServices#getFunctionalConstraint
-     * @model opposite="functionalConstraint" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServices#getParentFunctionalConstraint
+     * @model opposite="parentFunctionalConstraint" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='ApplicableServices' namespace='##targetNamespace'"
      * @generated
      */
@@ -252,32 +252,28 @@ public interface FunctionalConstraint extends NsdObject {
     boolean isSetTitleID();
 
     /**
-     * Returns the value of the '<em><b>Functional Constraints</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Functional Constraints</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getFunctionalConstraint <em>Functional Constraint</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Functional Constraints</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Functional Constraints</em>' container reference.
-     * @see #setFunctionalConstraints(FunctionalConstraints)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getFunctionalConstraint_FunctionalConstraints()
+     * @return the value of the '<em>Parent Functional Constraints</em>' container reference.
+     * @see #setParentFunctionalConstraints(FunctionalConstraints)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getFunctionalConstraint_ParentFunctionalConstraints()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getFunctionalConstraint
      * @model opposite="functionalConstraint" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    FunctionalConstraints getFunctionalConstraints();
+    FunctionalConstraints getParentFunctionalConstraints();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint#getFunctionalConstraints <em>Functional Constraints</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint#getParentFunctionalConstraints <em>Parent Functional Constraints</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Functional Constraints</em>' container reference.
-     * @see #getFunctionalConstraints()
+     * @param value the new value of the '<em>Parent Functional Constraints</em>' container reference.
+     * @see #getParentFunctionalConstraints()
      * @generated
      */
-    void setFunctionalConstraints( FunctionalConstraints value );
+    void setParentFunctionalConstraints( FunctionalConstraints value );
 
     /**
      * Returns the value of the '<em><b>Referred By Data Attribute</b></em>' reference list.
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/FunctionalConstraints.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/FunctionalConstraints.java
index 2124736c6dc62195924dcf5c67e8151322a4830b..e1ee63151a6c8e4c4a179ca67d3ae2f8e95de04d 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/FunctionalConstraints.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/FunctionalConstraints.java
@@ -31,8 +31,8 @@ import org.eclipse.emf.common.util.EList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getFunctionalConstraint <em>Functional Constraint</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getNS <em>NS</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getServiceNS <em>Service NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getParentNS <em>Parent NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getParentServiceNS <em>Parent Service NS</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getFunctionalConstraints()
@@ -45,15 +45,15 @@ public interface FunctionalConstraints extends NsdObject {
     /**
      * Returns the value of the '<em><b>Functional Constraint</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint#getFunctionalConstraints <em>Functional Constraints</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint#getParentFunctionalConstraints <em>Parent Functional Constraints</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Functional Constraint</em>' containment reference list.
      * @see #isSetFunctionalConstraint()
      * @see #unsetFunctionalConstraint()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getFunctionalConstraints_FunctionalConstraint()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint#getFunctionalConstraints
-     * @model opposite="functionalConstraints" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint#getParentFunctionalConstraints
+     * @model opposite="parentFunctionalConstraints" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='FunctionalConstraint' namespace='##targetNamespace'"
      * @generated
      */
@@ -81,59 +81,51 @@ public interface FunctionalConstraints extends NsdObject {
     boolean isSetFunctionalConstraint();
 
     /**
-     * Returns the value of the '<em><b>NS</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent NS</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#getFunctionalConstraints <em>Functional Constraints</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>NS</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>NS</em>' container reference.
-     * @see #setNS(NS)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getFunctionalConstraints_NS()
+     * @return the value of the '<em>Parent NS</em>' container reference.
+     * @see #setParentNS(NS)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getFunctionalConstraints_ParentNS()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#getFunctionalConstraints
      * @model opposite="functionalConstraints" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    NS getNS();
+    NS getParentNS();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getNS <em>NS</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getParentNS <em>Parent NS</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>NS</em>' container reference.
-     * @see #getNS()
+     * @param value the new value of the '<em>Parent NS</em>' container reference.
+     * @see #getParentNS()
      * @generated
      */
-    void setNS( NS value );
+    void setParentNS( NS value );
 
     /**
-     * Returns the value of the '<em><b>Service NS</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Service NS</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNS#getFunctionalConstraints <em>Functional Constraints</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Service NS</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Service NS</em>' container reference.
-     * @see #setServiceNS(ServiceNS)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getFunctionalConstraints_ServiceNS()
+     * @return the value of the '<em>Parent Service NS</em>' container reference.
+     * @see #setParentServiceNS(ServiceNS)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getFunctionalConstraints_ParentServiceNS()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNS#getFunctionalConstraints
      * @model opposite="functionalConstraints" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    ServiceNS getServiceNS();
+    ServiceNS getParentServiceNS();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getServiceNS <em>Service NS</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getParentServiceNS <em>Parent Service NS</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Service NS</em>' container reference.
-     * @see #getServiceNS()
+     * @param value the new value of the '<em>Parent Service NS</em>' container reference.
+     * @see #getParentServiceNS()
      * @generated
      */
-    void setServiceNS( ServiceNS value );
+    void setParentServiceNS( ServiceNS value );
 
 } // FunctionalConstraints
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/LNClass.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/LNClass.java
index c4e2fa8dd4d503646b2e7595c744e745a69462e6..863341df5d14e59892a26fb69740e49e8be7653b 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/LNClass.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/LNClass.java
@@ -31,7 +31,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass#isCanHaveLOG <em>Can Have LOG</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass#isIsExtension <em>Is Extension</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass#getLNClasses <em>LN Classes</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass#getParentLNClasses <em>Parent LN Classes</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getLNClass()
@@ -195,32 +195,27 @@ public interface LNClass extends AnyLNClass {
     boolean isSetName();
 
     /**
-     * Returns the value of the '<em><b>LN Classes</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent LN Classes</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses#getLNClass <em>LN Class</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>LN Classes</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>LN Classes</em>' container reference.
-     * @see #setLNClasses(LNClasses)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getLNClass_LNClasses()
+     * @return the value of the '<em>Parent LN Classes</em>' container reference.
+     * @see #setParentLNClasses(LNClasses)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getLNClass_ParentLNClasses()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses#getLNClass
      * @model opposite="lNClass" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    @Override
-    LNClasses getLNClasses();
+    LNClasses getParentLNClasses();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass#getLNClasses <em>LN Classes</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass#getParentLNClasses <em>Parent LN Classes</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>LN Classes</em>' container reference.
-     * @see #getLNClasses()
+     * @param value the new value of the '<em>Parent LN Classes</em>' container reference.
+     * @see #getParentLNClasses()
      * @generated
      */
-    void setLNClasses( LNClasses value );
+    void setParentLNClasses( LNClasses value );
 
 } // LNClass
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/LNClasses.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/LNClasses.java
index 7abdfac2a8499eed46519791e4f523fb58efa0fc..730f7e36fcf93e830ff718b7391bee0576dbf982 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/LNClasses.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/LNClasses.java
@@ -32,7 +32,7 @@ import org.eclipse.emf.common.util.EList;
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses#getAbstractLNClass <em>Abstract LN Class</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses#getLNClass <em>LN Class</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses#getNS <em>NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses#getParentNS <em>Parent NS</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getLNClasses()
@@ -45,15 +45,15 @@ public interface LNClasses extends NsdObject {
     /**
      * Returns the value of the '<em><b>Abstract LN Class</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass#getLNClasses <em>LN Classes</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass#getParentLNClasses <em>Parent LN Classes</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Abstract LN Class</em>' containment reference list.
      * @see #isSetAbstractLNClass()
      * @see #unsetAbstractLNClass()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getLNClasses_AbstractLNClass()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass#getLNClasses
-     * @model opposite="lNClasses" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass#getParentLNClasses
+     * @model opposite="parentLNClasses" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='AbstractLNClass' namespace='##targetNamespace'"
      * @generated
      */
@@ -83,15 +83,15 @@ public interface LNClasses extends NsdObject {
     /**
      * Returns the value of the '<em><b>LN Class</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass#getLNClasses <em>LN Classes</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass#getParentLNClasses <em>Parent LN Classes</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>LN Class</em>' containment reference list.
      * @see #isSetLNClass()
      * @see #unsetLNClass()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getLNClasses_LNClass()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass#getLNClasses
-     * @model opposite="lNClasses" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass#getParentLNClasses
+     * @model opposite="parentLNClasses" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='LNClass' namespace='##targetNamespace'"
      * @generated
      */
@@ -119,31 +119,27 @@ public interface LNClasses extends NsdObject {
     boolean isSetLNClass();
 
     /**
-     * Returns the value of the '<em><b>NS</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent NS</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#getLNClasses <em>LN Classes</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>NS</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>NS</em>' container reference.
-     * @see #setNS(NS)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getLNClasses_NS()
+     * @return the value of the '<em>Parent NS</em>' container reference.
+     * @see #setParentNS(NS)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getLNClasses_ParentNS()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#getLNClasses
      * @model opposite="lNClasses" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    NS getNS();
+    NS getParentNS();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses#getNS <em>NS</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses#getParentNS <em>Parent NS</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>NS</em>' container reference.
-     * @see #getNS()
+     * @param value the new value of the '<em>Parent NS</em>' container reference.
+     * @see #getParentNS()
      * @generated
      */
-    void setNS( NS value );
+    void setParentNS( NS value );
 
 } // LNClasses
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/License.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/License.java
index 1f5002991c7dd3ed16eec78190fc3a75ecbb6beb..25929cfeb1129a8c65dc42de21ec556b170cd7f7 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/License.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/License.java
@@ -33,7 +33,7 @@ import org.eclipse.emf.ecore.util.FeatureMap;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.License#getMixed <em>Mixed</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.License#getKind <em>Kind</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.License#getUri <em>Uri</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.License#getCopyrightNotice <em>Copyright Notice</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.License#getParentCopyrightNotice <em>Parent Copyright Notice</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getLicense()
@@ -162,31 +162,27 @@ public interface License extends NsdObject {
     boolean isSetUri();
 
     /**
-     * Returns the value of the '<em><b>Copyright Notice</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Copyright Notice</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CopyrightNotice#getLicense <em>License</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Copyright Notice</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Copyright Notice</em>' container reference.
-     * @see #setCopyrightNotice(CopyrightNotice)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getLicense_CopyrightNotice()
+     * @return the value of the '<em>Parent Copyright Notice</em>' container reference.
+     * @see #setParentCopyrightNotice(CopyrightNotice)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getLicense_ParentCopyrightNotice()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.CopyrightNotice#getLicense
      * @model opposite="license" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    CopyrightNotice getCopyrightNotice();
+    CopyrightNotice getParentCopyrightNotice();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.License#getCopyrightNotice <em>Copyright Notice</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.License#getParentCopyrightNotice <em>Parent Copyright Notice</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Copyright Notice</em>' container reference.
-     * @see #getCopyrightNotice()
+     * @param value the new value of the '<em>Parent Copyright Notice</em>' container reference.
+     * @see #getParentCopyrightNotice()
      * @generated
      */
-    void setCopyrightNotice( CopyrightNotice value );
+    void setParentCopyrightNotice( CopyrightNotice value );
 
 } // License
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Literal.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Literal.java
index cb44fa57eb10c8ce5989ea80a2e3e3fc2fdfaa76..c38969f4a65af8e7bb7b6cb8ceacb46c9869229d 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Literal.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Literal.java
@@ -30,7 +30,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Literal#getLiteralVal <em>Literal Val</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Literal#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Literal#getEnumeration <em>Enumeration</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Literal#getParentEnumeration <em>Parent Enumeration</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getLiteral()
@@ -141,31 +141,27 @@ public interface Literal extends DocumentedClass {
     boolean isSetName();
 
     /**
-     * Returns the value of the '<em><b>Enumeration</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Enumeration</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getLiteral <em>Literal</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Enumeration</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Enumeration</em>' container reference.
-     * @see #setEnumeration(Enumeration)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getLiteral_Enumeration()
+     * @return the value of the '<em>Parent Enumeration</em>' container reference.
+     * @see #setParentEnumeration(Enumeration)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getLiteral_ParentEnumeration()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getLiteral
      * @model opposite="literal" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    Enumeration getEnumeration();
+    Enumeration getParentEnumeration();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Literal#getEnumeration <em>Enumeration</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Literal#getParentEnumeration <em>Parent Enumeration</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Enumeration</em>' container reference.
-     * @see #getEnumeration()
+     * @param value the new value of the '<em>Parent Enumeration</em>' container reference.
+     * @see #getParentEnumeration()
      * @generated
      */
-    void setEnumeration( Enumeration value );
+    void setParentEnumeration( Enumeration value );
 
 } // Literal
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NS.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NS.java
index 7b792281f721db474c9dcf87a31516ceaf454ee9..c901e7b657c02684cd7ca8323367b5a3f0601708 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NS.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NS.java
@@ -51,7 +51,7 @@ import org.eclipse.emf.common.util.EList;
 public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
     /**
      * Returns the value of the '<em><b>Changes</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getNS <em>NS</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getParentNS <em>Parent NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Changes</em>' containment reference.
@@ -59,8 +59,8 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
      * @see #unsetChanges()
      * @see #setChanges(Changes)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNS_Changes()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getNS
-     * @model opposite="nS" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getParentNS
+     * @model opposite="parentNS" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='Changes' namespace='##targetNamespace'"
      * @generated
      */
@@ -103,7 +103,7 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
 
     /**
      * Returns the value of the '<em><b>Depends On</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DependsOn#getNS <em>NS</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DependsOn#getParentNS <em>Parent NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Depends On</em>' containment reference.
@@ -111,8 +111,8 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
      * @see #unsetDependsOn()
      * @see #setDependsOn(DependsOn)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNS_DependsOn()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DependsOn#getNS
-     * @model opposite="nS" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DependsOn#getParentNS
+     * @model opposite="parentNS" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='DependsOn' namespace='##targetNamespace'"
      * @generated
      */
@@ -155,7 +155,7 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
 
     /**
      * Returns the value of the '<em><b>Basic Types</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes#getNS <em>NS</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes#getParentNS <em>Parent NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Basic Types</em>' containment reference.
@@ -163,8 +163,8 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
      * @see #unsetBasicTypes()
      * @see #setBasicTypes(BasicTypes)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNS_BasicTypes()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes#getNS
-     * @model opposite="nS" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes#getParentNS
+     * @model opposite="parentNS" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='BasicTypes' namespace='##targetNamespace'"
      * @generated
      */
@@ -207,7 +207,7 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
 
     /**
      * Returns the value of the '<em><b>Functional Constraints</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getNS <em>NS</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getParentNS <em>Parent NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Functional Constraints</em>' containment reference.
@@ -215,8 +215,8 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
      * @see #unsetFunctionalConstraints()
      * @see #setFunctionalConstraints(FunctionalConstraints)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNS_FunctionalConstraints()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getNS
-     * @model opposite="nS" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getParentNS
+     * @model opposite="parentNS" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='FunctionalConstraints' namespace='##targetNamespace'"
      * @generated
      */
@@ -259,7 +259,7 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
 
     /**
      * Returns the value of the '<em><b>Presence Conditions</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getNS <em>NS</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getParentNS <em>Parent NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Presence Conditions</em>' containment reference.
@@ -267,8 +267,8 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
      * @see #unsetPresenceConditions()
      * @see #setPresenceConditions(PresenceConditions)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNS_PresenceConditions()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getNS
-     * @model opposite="nS" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getParentNS
+     * @model opposite="parentNS" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='PresenceConditions' namespace='##targetNamespace'"
      * @generated
      */
@@ -311,7 +311,7 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
 
     /**
      * Returns the value of the '<em><b>Abbreviations</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getNS <em>NS</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getParentNS <em>Parent NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Abbreviations</em>' containment reference.
@@ -319,8 +319,8 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
      * @see #unsetAbbreviations()
      * @see #setAbbreviations(Abbreviations)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNS_Abbreviations()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getNS
-     * @model opposite="nS" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getParentNS
+     * @model opposite="parentNS" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='Abbreviations' namespace='##targetNamespace'"
      * @generated
      */
@@ -363,7 +363,7 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
 
     /**
      * Returns the value of the '<em><b>Enumerations</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumerations#getNS <em>NS</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumerations#getParentNS <em>Parent NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Enumerations</em>' containment reference.
@@ -371,8 +371,8 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
      * @see #unsetEnumerations()
      * @see #setEnumerations(Enumerations)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNS_Enumerations()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumerations#getNS
-     * @model opposite="nS" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumerations#getParentNS
+     * @model opposite="parentNS" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='Enumerations' namespace='##targetNamespace'"
      * @generated
      */
@@ -415,7 +415,7 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
 
     /**
      * Returns the value of the '<em><b>Constructed Attributes</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttributes#getNS <em>NS</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttributes#getParentNS <em>Parent NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Constructed Attributes</em>' containment reference.
@@ -423,8 +423,8 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
      * @see #unsetConstructedAttributes()
      * @see #setConstructedAttributes(ConstructedAttributes)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNS_ConstructedAttributes()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttributes#getNS
-     * @model opposite="nS" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttributes#getParentNS
+     * @model opposite="parentNS" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='ConstructedAttributes' namespace='##targetNamespace'"
      * @generated
      */
@@ -467,7 +467,7 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
 
     /**
      * Returns the value of the '<em><b>CD Cs</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCs#getNS <em>NS</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCs#getParentNS <em>Parent NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>CD Cs</em>' containment reference.
@@ -475,8 +475,8 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
      * @see #unsetCDCs()
      * @see #setCDCs(CDCs)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNS_CDCs()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCs#getNS
-     * @model opposite="nS" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCs#getParentNS
+     * @model opposite="parentNS" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='CDCs' namespace='##targetNamespace'"
      * @generated
      */
@@ -519,7 +519,7 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
 
     /**
      * Returns the value of the '<em><b>LN Classes</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses#getNS <em>NS</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses#getParentNS <em>Parent NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>LN Classes</em>' containment reference.
@@ -527,8 +527,8 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
      * @see #unsetLNClasses()
      * @see #setLNClasses(LNClasses)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNS_LNClasses()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses#getNS
-     * @model opposite="nS" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses#getParentNS
+     * @model opposite="parentNS" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='LNClasses' namespace='##targetNamespace'"
      * @generated
      */
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NSDoc.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NSDoc.java
index db0b927b2b8f0ced83e2831f80d95771a82d0919..77642ccf43ed44dafb18dc7c95de0818bc3ba521 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NSDoc.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NSDoc.java
@@ -44,15 +44,15 @@ public interface NSDoc extends Copyrighted, AgNSIdentification, AgUML {
     /**
      * Returns the value of the '<em><b>Doc</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getNSDoc <em>NS Doc</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getParentNSDoc <em>Parent NS Doc</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Doc</em>' containment reference list.
      * @see #isSetDoc()
      * @see #unsetDoc()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNSDoc_Doc()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getNSDoc
-     * @model opposite="nSDoc" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getParentNSDoc
+     * @model opposite="parentNSDoc" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='Doc' namespace='##targetNamespace'"
      * @generated
      */
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Notice.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Notice.java
index a8847645b2c1fc48c067135b8720ee70afbaead1..94b912b2b0c029b50dd640d949599de26f5ab2d3 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Notice.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Notice.java
@@ -31,7 +31,7 @@ import org.eclipse.emf.ecore.util.FeatureMap;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Notice#getMixed <em>Mixed</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Notice#getCopyrightNotice <em>Copyright Notice</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Notice#getParentCopyrightNotice <em>Parent Copyright Notice</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNotice()
@@ -57,31 +57,27 @@ public interface Notice extends NsdObject {
     FeatureMap getMixed();
 
     /**
-     * Returns the value of the '<em><b>Copyright Notice</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Copyright Notice</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CopyrightNotice#getNotice <em>Notice</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Copyright Notice</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Copyright Notice</em>' container reference.
-     * @see #setCopyrightNotice(CopyrightNotice)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNotice_CopyrightNotice()
+     * @return the value of the '<em>Parent Copyright Notice</em>' container reference.
+     * @see #setParentCopyrightNotice(CopyrightNotice)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNotice_ParentCopyrightNotice()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.CopyrightNotice#getNotice
      * @model opposite="notice" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    CopyrightNotice getCopyrightNotice();
+    CopyrightNotice getParentCopyrightNotice();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Notice#getCopyrightNotice <em>Copyright Notice</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Notice#getParentCopyrightNotice <em>Parent Copyright Notice</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Copyright Notice</em>' container reference.
-     * @see #getCopyrightNotice()
+     * @param value the new value of the '<em>Parent Copyright Notice</em>' container reference.
+     * @see #getParentCopyrightNotice()
      * @generated
      */
-    void setCopyrightNotice( CopyrightNotice value );
+    void setParentCopyrightNotice( CopyrightNotice value );
 
 } // Notice
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NsdPackage.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NsdPackage.java
index 359bc128aee57ec5d5e594eedd1d97b546d4641b..fd44e7fc84ceb4f741fb0ec78272b59fc9726fc4 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NsdPackage.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NsdPackage.java
@@ -790,13 +790,13 @@ public interface NsdPackage extends EPackage {
     int APPLIES_TO_TYPE__PUBLICATION_STAGE = NSD_OBJECT_FEATURE_COUNT + 4;
 
     /**
-     * The feature id for the '<em><b>Service Ns Usage</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Service Ns Usage</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int APPLIES_TO_TYPE__SERVICE_NS_USAGE = NSD_OBJECT_FEATURE_COUNT + 5;
+    int APPLIES_TO_TYPE__PARENT_SERVICE_NS_USAGE = NSD_OBJECT_FEATURE_COUNT + 5;
 
     /**
      * The number of structural features of the '<em>Applies To Type</em>' class.
@@ -889,13 +889,13 @@ public interface NsdPackage extends EPackage {
     int DEPENDS_ON__PUBLICATION_STAGE = NSD_OBJECT_FEATURE_COUNT + 4;
 
     /**
-     * The feature id for the '<em><b>NS</b></em>' container reference.
+     * The feature id for the '<em><b>Parent NS</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int DEPENDS_ON__NS = NSD_OBJECT_FEATURE_COUNT + 5;
+    int DEPENDS_ON__PARENT_NS = NSD_OBJECT_FEATURE_COUNT + 5;
 
     /**
      * The feature id for the '<em><b>Refers To NS</b></em>' reference.
@@ -1042,13 +1042,13 @@ public interface NsdPackage extends EPackage {
     int SERVICE_TYPE__NAME = NSD_OBJECT_FEATURE_COUNT + 0;
 
     /**
-     * The feature id for the '<em><b>Applicable Services</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Applicable Services</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int SERVICE_TYPE__APPLICABLE_SERVICES = NSD_OBJECT_FEATURE_COUNT + 1;
+    int SERVICE_TYPE__PARENT_APPLICABLE_SERVICES = NSD_OBJECT_FEATURE_COUNT + 1;
 
     /**
      * The number of structural features of the '<em>Service Type</em>' class.
@@ -1114,13 +1114,13 @@ public interface NsdPackage extends EPackage {
     int ABBREVIATION__NAME = NSD_OBJECT_FEATURE_COUNT + 1;
 
     /**
-     * The feature id for the '<em><b>Abbreviations</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Abbreviations</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int ABBREVIATION__ABBREVIATIONS = NSD_OBJECT_FEATURE_COUNT + 2;
+    int ABBREVIATION__PARENT_ABBREVIATIONS = NSD_OBJECT_FEATURE_COUNT + 2;
 
     /**
      * The number of structural features of the '<em>Abbreviation</em>' class.
@@ -1177,22 +1177,22 @@ public interface NsdPackage extends EPackage {
     int ABBREVIATIONS__ABBREVIATION = NSD_OBJECT_FEATURE_COUNT + 0;
 
     /**
-     * The feature id for the '<em><b>NS</b></em>' container reference.
+     * The feature id for the '<em><b>Parent NS</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int ABBREVIATIONS__NS = NSD_OBJECT_FEATURE_COUNT + 1;
+    int ABBREVIATIONS__PARENT_NS = NSD_OBJECT_FEATURE_COUNT + 1;
 
     /**
-     * The feature id for the '<em><b>Service NS</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Service NS</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int ABBREVIATIONS__SERVICE_NS = NSD_OBJECT_FEATURE_COUNT + 2;
+    int ABBREVIATIONS__PARENT_SERVICE_NS = NSD_OBJECT_FEATURE_COUNT + 2;
 
     /**
      * The number of structural features of the '<em>Abbreviations</em>' class.
@@ -1483,13 +1483,13 @@ public interface NsdPackage extends EPackage {
     int ANY_LN_CLASS___GET_NAME = TITLED_CLASS_OPERATION_COUNT + 0;
 
     /**
-     * The operation id for the '<em>Get LN Classes</em>' operation.
+     * The operation id for the '<em>Get Parent LN Classes</em>' operation.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int ANY_LN_CLASS___GET_LN_CLASSES = TITLED_CLASS_OPERATION_COUNT + 1;
+    int ANY_LN_CLASS___GET_PARENT_LN_CLASSES = TITLED_CLASS_OPERATION_COUNT + 1;
 
     /**
      * The number of operations of the '<em>Any LN Class</em>' class.
@@ -1591,13 +1591,13 @@ public interface NsdPackage extends EPackage {
     int ABSTRACT_LN_CLASS__NAME = ANY_LN_CLASS_FEATURE_COUNT + 0;
 
     /**
-     * The feature id for the '<em><b>LN Classes</b></em>' container reference.
+     * The feature id for the '<em><b>Parent LN Classes</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int ABSTRACT_LN_CLASS__LN_CLASSES = ANY_LN_CLASS_FEATURE_COUNT + 1;
+    int ABSTRACT_LN_CLASS__PARENT_LN_CLASSES = ANY_LN_CLASS_FEATURE_COUNT + 1;
 
     /**
      * The feature id for the '<em><b>Referred By Any LN Class</b></em>' reference list.
@@ -1636,13 +1636,13 @@ public interface NsdPackage extends EPackage {
     int ABSTRACT_LN_CLASS___GET_NAME = ANY_LN_CLASS___GET_NAME;
 
     /**
-     * The operation id for the '<em>Get LN Classes</em>' operation.
+     * The operation id for the '<em>Get Parent LN Classes</em>' operation.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int ABSTRACT_LN_CLASS___GET_LN_CLASSES = ANY_LN_CLASS___GET_LN_CLASSES;
+    int ABSTRACT_LN_CLASS___GET_PARENT_LN_CLASSES = ANY_LN_CLASS___GET_PARENT_LN_CLASSES;
 
     /**
      * The number of operations of the '<em>Abstract LN Class</em>' class.
@@ -1825,13 +1825,13 @@ public interface NsdPackage extends EPackage {
     int APPLICABLE_SERVICES__DATA_SET_MEMBER_OF = NSD_OBJECT_FEATURE_COUNT + 1;
 
     /**
-     * The feature id for the '<em><b>Functional Constraint</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Functional Constraint</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int APPLICABLE_SERVICES__FUNCTIONAL_CONSTRAINT = NSD_OBJECT_FEATURE_COUNT + 2;
+    int APPLICABLE_SERVICES__PARENT_FUNCTIONAL_CONSTRAINT = NSD_OBJECT_FEATURE_COUNT + 2;
 
     /**
      * The number of structural features of the '<em>Applicable Services</em>' class.
@@ -1897,13 +1897,13 @@ public interface NsdPackage extends EPackage {
     int BASIC_TYPE__NAME = NSD_OBJECT_FEATURE_COUNT + 1;
 
     /**
-     * The feature id for the '<em><b>Basic Types</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Basic Types</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int BASIC_TYPE__BASIC_TYPES = NSD_OBJECT_FEATURE_COUNT + 2;
+    int BASIC_TYPE__PARENT_BASIC_TYPES = NSD_OBJECT_FEATURE_COUNT + 2;
 
     /**
      * The feature id for the '<em><b>Referred By Data Attribute</b></em>' reference list.
@@ -1969,13 +1969,13 @@ public interface NsdPackage extends EPackage {
     int BASIC_TYPES__BASIC_TYPE = NSD_OBJECT_FEATURE_COUNT + 0;
 
     /**
-     * The feature id for the '<em><b>NS</b></em>' container reference.
+     * The feature id for the '<em><b>Parent NS</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int BASIC_TYPES__NS = NSD_OBJECT_FEATURE_COUNT + 1;
+    int BASIC_TYPES__PARENT_NS = NSD_OBJECT_FEATURE_COUNT + 1;
 
     /**
      * The number of structural features of the '<em>Basic Types</em>' class.
@@ -2131,13 +2131,13 @@ public interface NsdPackage extends EPackage {
     int CDC__VARIANT = TITLED_CLASS_FEATURE_COUNT + 7;
 
     /**
-     * The feature id for the '<em><b>CD Cs</b></em>' container reference.
+     * The feature id for the '<em><b>Parent CD Cs</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int CDC__CD_CS = TITLED_CLASS_FEATURE_COUNT + 8;
+    int CDC__PARENT_CD_CS = TITLED_CLASS_FEATURE_COUNT + 8;
 
     /**
      * The feature id for the '<em><b>Referred By Data Object</b></em>' reference list.
@@ -2212,13 +2212,13 @@ public interface NsdPackage extends EPackage {
     int CD_CS__CDC = NSD_OBJECT_FEATURE_COUNT + 0;
 
     /**
-     * The feature id for the '<em><b>NS</b></em>' container reference.
+     * The feature id for the '<em><b>Parent NS</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int CD_CS__NS = NSD_OBJECT_FEATURE_COUNT + 1;
+    int CD_CS__PARENT_NS = NSD_OBJECT_FEATURE_COUNT + 1;
 
     /**
      * The number of structural features of the '<em>CD Cs</em>' class.
@@ -2302,22 +2302,22 @@ public interface NsdPackage extends EPackage {
     int CHANGES__TISSUES = NSD_OBJECT_FEATURE_COUNT + 3;
 
     /**
-     * The feature id for the '<em><b>NS</b></em>' container reference.
+     * The feature id for the '<em><b>Parent NS</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int CHANGES__NS = NSD_OBJECT_FEATURE_COUNT + 4;
+    int CHANGES__PARENT_NS = NSD_OBJECT_FEATURE_COUNT + 4;
 
     /**
-     * The feature id for the '<em><b>Service NS</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Service NS</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int CHANGES__SERVICE_NS = NSD_OBJECT_FEATURE_COUNT + 5;
+    int CHANGES__PARENT_SERVICE_NS = NSD_OBJECT_FEATURE_COUNT + 5;
 
     /**
      * The feature id for the '<em><b>Release</b></em>' attribute.
@@ -2437,22 +2437,22 @@ public interface NsdPackage extends EPackage {
     int CONSTRUCTED_ATTRIBUTE__NAME = TITLED_CLASS_FEATURE_COUNT + 1;
 
     /**
-     * The feature id for the '<em><b>Constructed Attributes</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Constructed Attributes</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int CONSTRUCTED_ATTRIBUTE__CONSTRUCTED_ATTRIBUTES = TITLED_CLASS_FEATURE_COUNT + 2;
+    int CONSTRUCTED_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTES = TITLED_CLASS_FEATURE_COUNT + 2;
 
     /**
-     * The feature id for the '<em><b>Service Type Realizations</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Service Type Realizations</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int CONSTRUCTED_ATTRIBUTE__SERVICE_TYPE_REALIZATIONS = TITLED_CLASS_FEATURE_COUNT + 3;
+    int CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_TYPE_REALIZATIONS = TITLED_CLASS_FEATURE_COUNT + 3;
 
     /**
      * The number of structural features of the '<em>Constructed Attribute</em>' class.
@@ -2509,13 +2509,13 @@ public interface NsdPackage extends EPackage {
     int CONSTRUCTED_ATTRIBUTES__CONSTRUCTED_ATTRIBUTE = NSD_OBJECT_FEATURE_COUNT + 0;
 
     /**
-     * The feature id for the '<em><b>NS</b></em>' container reference.
+     * The feature id for the '<em><b>Parent NS</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int CONSTRUCTED_ATTRIBUTES__NS = NSD_OBJECT_FEATURE_COUNT + 1;
+    int CONSTRUCTED_ATTRIBUTES__PARENT_NS = NSD_OBJECT_FEATURE_COUNT + 1;
 
     /**
      * The number of structural features of the '<em>Constructed Attributes</em>' class.
@@ -2581,13 +2581,13 @@ public interface NsdPackage extends EPackage {
     int COPYRIGHT_NOTICE__LICENSE = NSD_OBJECT_FEATURE_COUNT + 1;
 
     /**
-     * The feature id for the '<em><b>Copyrighted</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Copyrighted</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int COPYRIGHT_NOTICE__COPYRIGHTED = NSD_OBJECT_FEATURE_COUNT + 2;
+    int COPYRIGHT_NOTICE__PARENT_COPYRIGHTED = NSD_OBJECT_FEATURE_COUNT + 2;
 
     /**
      * The number of structural features of the '<em>Copyright Notice</em>' class.
@@ -2815,13 +2815,13 @@ public interface NsdPackage extends EPackage {
     int DATA_ATTRIBUTE__NAME = DOCUMENTED_CLASS_FEATURE_COUNT + 16;
 
     /**
-     * The feature id for the '<em><b>CDC</b></em>' container reference.
+     * The feature id for the '<em><b>Parent CDC</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int DATA_ATTRIBUTE__CDC = DOCUMENTED_CLASS_FEATURE_COUNT + 17;
+    int DATA_ATTRIBUTE__PARENT_CDC = DOCUMENTED_CLASS_FEATURE_COUNT + 17;
 
     /**
      * The feature id for the '<em><b>Referred By Sub Data Object As Size Attribute</b></em>' reference list.
@@ -3076,13 +3076,13 @@ public interface NsdPackage extends EPackage {
     int DATA_OBJECT__TYPE = DOCUMENTED_CLASS_FEATURE_COUNT + 10;
 
     /**
-     * The feature id for the '<em><b>Any LN Class</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Any LN Class</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int DATA_OBJECT__ANY_LN_CLASS = DOCUMENTED_CLASS_FEATURE_COUNT + 11;
+    int DATA_OBJECT__PARENT_ANY_LN_CLASS = DOCUMENTED_CLASS_FEATURE_COUNT + 11;
 
     /**
      * The feature id for the '<em><b>Refers To CDC</b></em>' reference.
@@ -3166,13 +3166,13 @@ public interface NsdPackage extends EPackage {
     int DATA_SET_MEMBER_OF__CB = NSD_OBJECT_FEATURE_COUNT + 0;
 
     /**
-     * The feature id for the '<em><b>Applicable Services</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Applicable Services</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int DATA_SET_MEMBER_OF__APPLICABLE_SERVICES = NSD_OBJECT_FEATURE_COUNT + 1;
+    int DATA_SET_MEMBER_OF__PARENT_APPLICABLE_SERVICES = NSD_OBJECT_FEATURE_COUNT + 1;
 
     /**
      * The number of structural features of the '<em>Data Set Member Of</em>' class.
@@ -3256,13 +3256,13 @@ public interface NsdPackage extends EPackage {
     int DOC__ID = NSD_OBJECT_FEATURE_COUNT + 3;
 
     /**
-     * The feature id for the '<em><b>NS Doc</b></em>' container reference.
+     * The feature id for the '<em><b>Parent NS Doc</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int DOC__NS_DOC = NSD_OBJECT_FEATURE_COUNT + 4;
+    int DOC__PARENT_NS_DOC = NSD_OBJECT_FEATURE_COUNT + 4;
 
     /**
      * The number of structural features of the '<em>Doc</em>' class.
@@ -3373,13 +3373,13 @@ public interface NsdPackage extends EPackage {
     int ENUMERATION__NAME = TITLED_CLASS_FEATURE_COUNT + 2;
 
     /**
-     * The feature id for the '<em><b>Enumerations</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Enumerations</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int ENUMERATION__ENUMERATIONS = TITLED_CLASS_FEATURE_COUNT + 3;
+    int ENUMERATION__PARENT_ENUMERATIONS = TITLED_CLASS_FEATURE_COUNT + 3;
 
     /**
      * The feature id for the '<em><b>Refers To Base Enumeration</b></em>' reference.
@@ -3454,13 +3454,13 @@ public interface NsdPackage extends EPackage {
     int ENUMERATIONS__ENUMERATION = NSD_OBJECT_FEATURE_COUNT + 0;
 
     /**
-     * The feature id for the '<em><b>NS</b></em>' container reference.
+     * The feature id for the '<em><b>Parent NS</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int ENUMERATIONS__NS = NSD_OBJECT_FEATURE_COUNT + 1;
+    int ENUMERATIONS__PARENT_NS = NSD_OBJECT_FEATURE_COUNT + 1;
 
     /**
      * The number of structural features of the '<em>Enumerations</em>' class.
@@ -3544,13 +3544,13 @@ public interface NsdPackage extends EPackage {
     int FUNCTIONAL_CONSTRAINT__TITLE_ID = NSD_OBJECT_FEATURE_COUNT + 3;
 
     /**
-     * The feature id for the '<em><b>Functional Constraints</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Functional Constraints</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int FUNCTIONAL_CONSTRAINT__FUNCTIONAL_CONSTRAINTS = NSD_OBJECT_FEATURE_COUNT + 4;
+    int FUNCTIONAL_CONSTRAINT__PARENT_FUNCTIONAL_CONSTRAINTS = NSD_OBJECT_FEATURE_COUNT + 4;
 
     /**
      * The feature id for the '<em><b>Referred By Data Attribute</b></em>' reference list.
@@ -3616,22 +3616,22 @@ public interface NsdPackage extends EPackage {
     int FUNCTIONAL_CONSTRAINTS__FUNCTIONAL_CONSTRAINT = NSD_OBJECT_FEATURE_COUNT + 0;
 
     /**
-     * The feature id for the '<em><b>NS</b></em>' container reference.
+     * The feature id for the '<em><b>Parent NS</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int FUNCTIONAL_CONSTRAINTS__NS = NSD_OBJECT_FEATURE_COUNT + 1;
+    int FUNCTIONAL_CONSTRAINTS__PARENT_NS = NSD_OBJECT_FEATURE_COUNT + 1;
 
     /**
-     * The feature id for the '<em><b>Service NS</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Service NS</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int FUNCTIONAL_CONSTRAINTS__SERVICE_NS = NSD_OBJECT_FEATURE_COUNT + 2;
+    int FUNCTIONAL_CONSTRAINTS__PARENT_SERVICE_NS = NSD_OBJECT_FEATURE_COUNT + 2;
 
     /**
      * The number of structural features of the '<em>Functional Constraints</em>' class.
@@ -3706,13 +3706,13 @@ public interface NsdPackage extends EPackage {
     int LICENSE__URI = NSD_OBJECT_FEATURE_COUNT + 2;
 
     /**
-     * The feature id for the '<em><b>Copyright Notice</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Copyright Notice</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int LICENSE__COPYRIGHT_NOTICE = NSD_OBJECT_FEATURE_COUNT + 3;
+    int LICENSE__PARENT_COPYRIGHT_NOTICE = NSD_OBJECT_FEATURE_COUNT + 3;
 
     /**
      * The number of structural features of the '<em>License</em>' class.
@@ -3805,13 +3805,13 @@ public interface NsdPackage extends EPackage {
     int LITERAL__NAME = DOCUMENTED_CLASS_FEATURE_COUNT + 1;
 
     /**
-     * The feature id for the '<em><b>Enumeration</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Enumeration</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int LITERAL__ENUMERATION = DOCUMENTED_CLASS_FEATURE_COUNT + 2;
+    int LITERAL__PARENT_ENUMERATION = DOCUMENTED_CLASS_FEATURE_COUNT + 2;
 
     /**
      * The number of structural features of the '<em>Literal</em>' class.
@@ -3949,13 +3949,13 @@ public interface NsdPackage extends EPackage {
     int LN_CLASS__NAME = ANY_LN_CLASS_FEATURE_COUNT + 2;
 
     /**
-     * The feature id for the '<em><b>LN Classes</b></em>' container reference.
+     * The feature id for the '<em><b>Parent LN Classes</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int LN_CLASS__LN_CLASSES = ANY_LN_CLASS_FEATURE_COUNT + 3;
+    int LN_CLASS__PARENT_LN_CLASSES = ANY_LN_CLASS_FEATURE_COUNT + 3;
 
     /**
      * The number of structural features of the '<em>LN Class</em>' class.
@@ -3985,13 +3985,13 @@ public interface NsdPackage extends EPackage {
     int LN_CLASS___GET_NAME = ANY_LN_CLASS___GET_NAME;
 
     /**
-     * The operation id for the '<em>Get LN Classes</em>' operation.
+     * The operation id for the '<em>Get Parent LN Classes</em>' operation.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int LN_CLASS___GET_LN_CLASSES = ANY_LN_CLASS___GET_LN_CLASSES;
+    int LN_CLASS___GET_PARENT_LN_CLASSES = ANY_LN_CLASS___GET_PARENT_LN_CLASSES;
 
     /**
      * The number of operations of the '<em>LN Class</em>' class.
@@ -4039,13 +4039,13 @@ public interface NsdPackage extends EPackage {
     int LN_CLASSES__LN_CLASS = NSD_OBJECT_FEATURE_COUNT + 1;
 
     /**
-     * The feature id for the '<em><b>NS</b></em>' container reference.
+     * The feature id for the '<em><b>Parent NS</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int LN_CLASSES__NS = NSD_OBJECT_FEATURE_COUNT + 2;
+    int LN_CLASSES__PARENT_NS = NSD_OBJECT_FEATURE_COUNT + 2;
 
     /**
      * The number of structural features of the '<em>LN Classes</em>' class.
@@ -4102,13 +4102,13 @@ public interface NsdPackage extends EPackage {
     int NOTICE__MIXED = NSD_OBJECT_FEATURE_COUNT + 0;
 
     /**
-     * The feature id for the '<em><b>Copyright Notice</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Copyright Notice</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int NOTICE__COPYRIGHT_NOTICE = NSD_OBJECT_FEATURE_COUNT + 1;
+    int NOTICE__PARENT_COPYRIGHT_NOTICE = NSD_OBJECT_FEATURE_COUNT + 1;
 
     /**
      * The number of structural features of the '<em>Notice</em>' class.
@@ -4597,13 +4597,13 @@ public interface NsdPackage extends EPackage {
     int PRESENCE_CONDITION__TITLE_ID = NSD_OBJECT_FEATURE_COUNT + 3;
 
     /**
-     * The feature id for the '<em><b>Presence Conditions</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Presence Conditions</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int PRESENCE_CONDITION__PRESENCE_CONDITIONS = NSD_OBJECT_FEATURE_COUNT + 4;
+    int PRESENCE_CONDITION__PARENT_PRESENCE_CONDITIONS = NSD_OBJECT_FEATURE_COUNT + 4;
 
     /**
      * The feature id for the '<em><b>Referred By Data Object</b></em>' reference list.
@@ -4705,22 +4705,22 @@ public interface NsdPackage extends EPackage {
     int PRESENCE_CONDITIONS__PRESENCE_CONDITION = NSD_OBJECT_FEATURE_COUNT + 0;
 
     /**
-     * The feature id for the '<em><b>NS</b></em>' container reference.
+     * The feature id for the '<em><b>Parent NS</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int PRESENCE_CONDITIONS__NS = NSD_OBJECT_FEATURE_COUNT + 1;
+    int PRESENCE_CONDITIONS__PARENT_NS = NSD_OBJECT_FEATURE_COUNT + 1;
 
     /**
-     * The feature id for the '<em><b>Service NS</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Service NS</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int PRESENCE_CONDITIONS__SERVICE_NS = NSD_OBJECT_FEATURE_COUNT + 2;
+    int PRESENCE_CONDITIONS__PARENT_SERVICE_NS = NSD_OBJECT_FEATURE_COUNT + 2;
 
     /**
      * The number of structural features of the '<em>Presence Conditions</em>' class.
@@ -4795,13 +4795,13 @@ public interface NsdPackage extends EPackage {
     int SERVICE_CDC__VARIANT = NSD_OBJECT_FEATURE_COUNT + 2;
 
     /**
-     * The feature id for the '<em><b>Service CD Cs</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Service CD Cs</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int SERVICE_CDC__SERVICE_CD_CS = NSD_OBJECT_FEATURE_COUNT + 3;
+    int SERVICE_CDC__PARENT_SERVICE_CD_CS = NSD_OBJECT_FEATURE_COUNT + 3;
 
     /**
      * The number of structural features of the '<em>Service CDC</em>' class.
@@ -4858,13 +4858,13 @@ public interface NsdPackage extends EPackage {
     int SERVICE_CD_CS__SERVICE_CDC = NSD_OBJECT_FEATURE_COUNT + 0;
 
     /**
-     * The feature id for the '<em><b>Service NS</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Service NS</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int SERVICE_CD_CS__SERVICE_NS = NSD_OBJECT_FEATURE_COUNT + 1;
+    int SERVICE_CD_CS__PARENT_SERVICE_NS = NSD_OBJECT_FEATURE_COUNT + 1;
 
     /**
      * The number of structural features of the '<em>Service CD Cs</em>' class.
@@ -4966,22 +4966,22 @@ public interface NsdPackage extends EPackage {
     int SERVICE_CONSTRUCTED_ATTRIBUTE__NAME = CONSTRUCTED_ATTRIBUTE__NAME;
 
     /**
-     * The feature id for the '<em><b>Constructed Attributes</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Constructed Attributes</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int SERVICE_CONSTRUCTED_ATTRIBUTE__CONSTRUCTED_ATTRIBUTES = CONSTRUCTED_ATTRIBUTE__CONSTRUCTED_ATTRIBUTES;
+    int SERVICE_CONSTRUCTED_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTES = CONSTRUCTED_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTES;
 
     /**
-     * The feature id for the '<em><b>Service Type Realizations</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Service Type Realizations</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int SERVICE_CONSTRUCTED_ATTRIBUTE__SERVICE_TYPE_REALIZATIONS = CONSTRUCTED_ATTRIBUTE__SERVICE_TYPE_REALIZATIONS;
+    int SERVICE_CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_TYPE_REALIZATIONS = CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_TYPE_REALIZATIONS;
 
     /**
      * The feature id for the '<em><b>Type Kind Parameterized</b></em>' attribute.
@@ -4993,13 +4993,13 @@ public interface NsdPackage extends EPackage {
     int SERVICE_CONSTRUCTED_ATTRIBUTE__TYPE_KIND_PARAMETERIZED = CONSTRUCTED_ATTRIBUTE_FEATURE_COUNT + 0;
 
     /**
-     * The feature id for the '<em><b>Service Constructed Attribute</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Service Constructed Attributes</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int SERVICE_CONSTRUCTED_ATTRIBUTE__SERVICE_CONSTRUCTED_ATTRIBUTE = CONSTRUCTED_ATTRIBUTE_FEATURE_COUNT + 1;
+    int SERVICE_CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_CONSTRUCTED_ATTRIBUTES = CONSTRUCTED_ATTRIBUTE_FEATURE_COUNT + 1;
 
     /**
      * The number of structural features of the '<em>Service Constructed Attribute</em>' class.
@@ -5056,13 +5056,13 @@ public interface NsdPackage extends EPackage {
     int SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_CONSTRUCTED_ATTRIBUTE = NSD_OBJECT_FEATURE_COUNT + 0;
 
     /**
-     * The feature id for the '<em><b>Service NS</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Service NS</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_NS = NSD_OBJECT_FEATURE_COUNT + 1;
+    int SERVICE_CONSTRUCTED_ATTRIBUTES__PARENT_SERVICE_NS = NSD_OBJECT_FEATURE_COUNT + 1;
 
     /**
      * The number of structural features of the '<em>Service Constructed Attributes</em>' class.
@@ -5218,13 +5218,13 @@ public interface NsdPackage extends EPackage {
     int SERVICE_DATA_ATTRIBUTE__NAME = DOCUMENTED_CLASS_FEATURE_COUNT + 8;
 
     /**
-     * The feature id for the '<em><b>Service CDC</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Service CDC</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int SERVICE_DATA_ATTRIBUTE__SERVICE_CDC = DOCUMENTED_CLASS_FEATURE_COUNT + 9;
+    int SERVICE_DATA_ATTRIBUTE__PARENT_SERVICE_CDC = DOCUMENTED_CLASS_FEATURE_COUNT + 9;
 
     /**
      * The number of structural features of the '<em>Service Data Attribute</em>' class.
@@ -5515,13 +5515,13 @@ public interface NsdPackage extends EPackage {
     int SERVICE_NS_USAGE__APPLIES_TO = NSD_OBJECT_FEATURE_COUNT + 5;
 
     /**
-     * The feature id for the '<em><b>Applicable Service NS</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Applicable Service NS</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int SERVICE_NS_USAGE__APPLICABLE_SERVICE_NS = NSD_OBJECT_FEATURE_COUNT + 6;
+    int SERVICE_NS_USAGE__PARENT_APPLICABLE_SERVICE_NS = NSD_OBJECT_FEATURE_COUNT + 6;
 
     /**
      * The number of structural features of the '<em>Service Ns Usage</em>' class.
@@ -5650,13 +5650,13 @@ public interface NsdPackage extends EPackage {
     int SERVICE_PARAMETER__NAME = DOCUMENTED_CLASS_FEATURE_COUNT + 5;
 
     /**
-     * The feature id for the '<em><b>CDC</b></em>' container reference.
+     * The feature id for the '<em><b>Parent CDC</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int SERVICE_PARAMETER__CDC = DOCUMENTED_CLASS_FEATURE_COUNT + 6;
+    int SERVICE_PARAMETER__PARENT_CDC = DOCUMENTED_CLASS_FEATURE_COUNT + 6;
 
     /**
      * The number of structural features of the '<em>Service Parameter</em>' class.
@@ -5713,13 +5713,13 @@ public interface NsdPackage extends EPackage {
     int SERVICE_TYPE_REALIZATIONS__SERVICE_TYPE_REALIZATION = NSD_OBJECT_FEATURE_COUNT + 0;
 
     /**
-     * The feature id for the '<em><b>Service NS</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Service NS</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int SERVICE_TYPE_REALIZATIONS__SERVICE_NS = NSD_OBJECT_FEATURE_COUNT + 1;
+    int SERVICE_TYPE_REALIZATIONS__PARENT_SERVICE_NS = NSD_OBJECT_FEATURE_COUNT + 1;
 
     /**
      * The number of structural features of the '<em>Service Type Realizations</em>' class.
@@ -5911,13 +5911,13 @@ public interface NsdPackage extends EPackage {
     int SUB_DATA_ATTRIBUTE__NAME = DOCUMENTED_CLASS_FEATURE_COUNT + 12;
 
     /**
-     * The feature id for the '<em><b>Constructed Attribute</b></em>' container reference.
+     * The feature id for the '<em><b>Parent Constructed Attribute</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE = DOCUMENTED_CLASS_FEATURE_COUNT + 13;
+    int SUB_DATA_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTE = DOCUMENTED_CLASS_FEATURE_COUNT + 13;
 
     /**
      * The feature id for the '<em><b>Refers To Presence Condition</b></em>' reference.
@@ -6100,13 +6100,13 @@ public interface NsdPackage extends EPackage {
     int SUB_DATA_OBJECT__TYPE = DOCUMENTED_CLASS_FEATURE_COUNT + 10;
 
     /**
-     * The feature id for the '<em><b>CDC</b></em>' container reference.
+     * The feature id for the '<em><b>Parent CDC</b></em>' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @generated
      * @ordered
      */
-    int SUB_DATA_OBJECT__CDC = DOCUMENTED_CLASS_FEATURE_COUNT + 11;
+    int SUB_DATA_OBJECT__PARENT_CDC = DOCUMENTED_CLASS_FEATURE_COUNT + 11;
 
     /**
      * The feature id for the '<em><b>Refers To CDC</b></em>' reference.
@@ -6790,15 +6790,15 @@ public interface NsdPackage extends EPackage {
     EClass getAppliesToType();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AppliesToType#getServiceNsUsage <em>Service Ns Usage</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AppliesToType#getParentServiceNsUsage <em>Parent Service Ns Usage</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Service Ns Usage</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.AppliesToType#getServiceNsUsage()
+     * @return the meta object for the container reference '<em>Parent Service Ns Usage</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.AppliesToType#getParentServiceNsUsage()
      * @see #getAppliesToType()
      * @generated
      */
-    EReference getAppliesToType_ServiceNsUsage();
+    EReference getAppliesToType_ParentServiceNsUsage();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DependsOn <em>Depends On</em>}'.
@@ -6811,15 +6811,15 @@ public interface NsdPackage extends EPackage {
     EClass getDependsOn();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DependsOn#getNS <em>NS</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DependsOn#getParentNS <em>Parent NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>NS</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DependsOn#getNS()
+     * @return the meta object for the container reference '<em>Parent NS</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DependsOn#getParentNS()
      * @see #getDependsOn()
      * @generated
      */
-    EReference getDependsOn_NS();
+    EReference getDependsOn_ParentNS();
 
     /**
      * Returns the meta object for the reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DependsOn#getRefersToNS <em>Refers To NS</em>}'.
@@ -6941,15 +6941,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getServiceType_Name();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceType#getApplicableServices <em>Applicable Services</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceType#getParentApplicableServices <em>Parent Applicable Services</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Applicable Services</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceType#getApplicableServices()
+     * @return the meta object for the container reference '<em>Parent Applicable Services</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceType#getParentApplicableServices()
      * @see #getServiceType()
      * @generated
      */
-    EReference getServiceType_ApplicableServices();
+    EReference getServiceType_ParentApplicableServices();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviation <em>Abbreviation</em>}'.
@@ -6984,15 +6984,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getAbbreviation_Name();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviation#getAbbreviations <em>Abbreviations</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviation#getParentAbbreviations <em>Parent Abbreviations</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Abbreviations</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviation#getAbbreviations()
+     * @return the meta object for the container reference '<em>Parent Abbreviations</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviation#getParentAbbreviations()
      * @see #getAbbreviation()
      * @generated
      */
-    EReference getAbbreviation_Abbreviations();
+    EReference getAbbreviation_ParentAbbreviations();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations <em>Abbreviations</em>}'.
@@ -7016,26 +7016,26 @@ public interface NsdPackage extends EPackage {
     EReference getAbbreviations_Abbreviation();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getNS <em>NS</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getParentNS <em>Parent NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>NS</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getNS()
+     * @return the meta object for the container reference '<em>Parent NS</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getParentNS()
      * @see #getAbbreviations()
      * @generated
      */
-    EReference getAbbreviations_NS();
+    EReference getAbbreviations_ParentNS();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getServiceNS <em>Service NS</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getParentServiceNS <em>Parent Service NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Service NS</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getServiceNS()
+     * @return the meta object for the container reference '<em>Parent Service NS</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getParentServiceNS()
      * @see #getAbbreviations()
      * @generated
      */
-    EReference getAbbreviations_ServiceNS();
+    EReference getAbbreviations_ParentServiceNS();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass <em>Abstract LN Class</em>}'.
@@ -7059,15 +7059,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getAbstractLNClass_Name();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass#getLNClasses <em>LN Classes</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass#getParentLNClasses <em>Parent LN Classes</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>LN Classes</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass#getLNClasses()
+     * @return the meta object for the container reference '<em>Parent LN Classes</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass#getParentLNClasses()
      * @see #getAbstractLNClass()
      * @generated
      */
-    EReference getAbstractLNClass_LNClasses();
+    EReference getAbstractLNClass_ParentLNClasses();
 
     /**
      * Returns the meta object for the reference list '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass#getReferredByAnyLNClass <em>Referred By Any LN Class</em>}'.
@@ -7134,14 +7134,14 @@ public interface NsdPackage extends EPackage {
     EOperation getAnyLNClass__GetName();
 
     /**
-     * Returns the meta object for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AnyLNClass#getLNClasses() <em>Get LN Classes</em>}' operation.
+     * Returns the meta object for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AnyLNClass#getParentLNClasses() <em>Get Parent LN Classes</em>}' operation.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the '<em>Get LN Classes</em>' operation.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.AnyLNClass#getLNClasses()
+     * @return the meta object for the '<em>Get Parent LN Classes</em>' operation.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.AnyLNClass#getParentLNClasses()
      * @generated
      */
-    EOperation getAnyLNClass__GetLNClasses();
+    EOperation getAnyLNClass__GetParentLNClasses();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServiceNS <em>Applicable Service NS</em>}'.
@@ -7219,15 +7219,15 @@ public interface NsdPackage extends EPackage {
     EReference getApplicableServices_DataSetMemberOf();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServices#getFunctionalConstraint <em>Functional Constraint</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServices#getParentFunctionalConstraint <em>Parent Functional Constraint</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Functional Constraint</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServices#getFunctionalConstraint()
+     * @return the meta object for the container reference '<em>Parent Functional Constraint</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServices#getParentFunctionalConstraint()
      * @see #getApplicableServices()
      * @generated
      */
-    EReference getApplicableServices_FunctionalConstraint();
+    EReference getApplicableServices_ParentFunctionalConstraint();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType <em>Basic Type</em>}'.
@@ -7262,15 +7262,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getBasicType_Name();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getBasicTypes <em>Basic Types</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getParentBasicTypes <em>Parent Basic Types</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Basic Types</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getBasicTypes()
+     * @return the meta object for the container reference '<em>Parent Basic Types</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getParentBasicTypes()
      * @see #getBasicType()
      * @generated
      */
-    EReference getBasicType_BasicTypes();
+    EReference getBasicType_ParentBasicTypes();
 
     /**
      * Returns the meta object for the reference list '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getReferredByDataAttribute <em>Referred By Data Attribute</em>}'.
@@ -7305,15 +7305,15 @@ public interface NsdPackage extends EPackage {
     EReference getBasicTypes_BasicType();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes#getNS <em>NS</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes#getParentNS <em>Parent NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>NS</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes#getNS()
+     * @return the meta object for the container reference '<em>Parent NS</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes#getParentNS()
      * @see #getBasicTypes()
      * @generated
      */
-    EReference getBasicTypes_NS();
+    EReference getBasicTypes_ParentNS();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC <em>CDC</em>}'.
@@ -7414,15 +7414,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getCDC_Variant();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getCDCs <em>CD Cs</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getParentCDCs <em>Parent CD Cs</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>CD Cs</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getCDCs()
+     * @return the meta object for the container reference '<em>Parent CD Cs</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getParentCDCs()
      * @see #getCDC()
      * @generated
      */
-    EReference getCDC_CDCs();
+    EReference getCDC_ParentCDCs();
 
     /**
      * Returns the meta object for the reference list '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getReferredByDataObject <em>Referred By Data Object</em>}'.
@@ -7468,15 +7468,15 @@ public interface NsdPackage extends EPackage {
     EReference getCDCs_CDC();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCs#getNS <em>NS</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCs#getParentNS <em>Parent NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>NS</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCs#getNS()
+     * @return the meta object for the container reference '<em>Parent NS</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCs#getParentNS()
      * @see #getCDCs()
      * @generated
      */
-    EReference getCDCs_NS();
+    EReference getCDCs_ParentNS();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes <em>Changes</em>}'.
@@ -7533,26 +7533,26 @@ public interface NsdPackage extends EPackage {
     EAttribute getChanges_Tissues();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getNS <em>NS</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getParentNS <em>Parent NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>NS</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getNS()
+     * @return the meta object for the container reference '<em>Parent NS</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getParentNS()
      * @see #getChanges()
      * @generated
      */
-    EReference getChanges_NS();
+    EReference getChanges_ParentNS();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getServiceNS <em>Service NS</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getParentServiceNS <em>Parent Service NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Service NS</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getServiceNS()
+     * @return the meta object for the container reference '<em>Parent Service NS</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getParentServiceNS()
      * @see #getChanges()
      * @generated
      */
-    EReference getChanges_ServiceNS();
+    EReference getChanges_ParentServiceNS();
 
     /**
      * Returns the meta object for the attribute '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getRelease <em>Release</em>}'.
@@ -7609,26 +7609,26 @@ public interface NsdPackage extends EPackage {
     EAttribute getConstructedAttribute_Name();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getConstructedAttributes <em>Constructed Attributes</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getParentConstructedAttributes <em>Parent Constructed Attributes</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Constructed Attributes</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getConstructedAttributes()
+     * @return the meta object for the container reference '<em>Parent Constructed Attributes</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getParentConstructedAttributes()
      * @see #getConstructedAttribute()
      * @generated
      */
-    EReference getConstructedAttribute_ConstructedAttributes();
+    EReference getConstructedAttribute_ParentConstructedAttributes();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getServiceTypeRealizations <em>Service Type Realizations</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getParentServiceTypeRealizations <em>Parent Service Type Realizations</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Service Type Realizations</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getServiceTypeRealizations()
+     * @return the meta object for the container reference '<em>Parent Service Type Realizations</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getParentServiceTypeRealizations()
      * @see #getConstructedAttribute()
      * @generated
      */
-    EReference getConstructedAttribute_ServiceTypeRealizations();
+    EReference getConstructedAttribute_ParentServiceTypeRealizations();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttributes <em>Constructed Attributes</em>}'.
@@ -7652,15 +7652,15 @@ public interface NsdPackage extends EPackage {
     EReference getConstructedAttributes_ConstructedAttribute();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttributes#getNS <em>NS</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttributes#getParentNS <em>Parent NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>NS</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttributes#getNS()
+     * @return the meta object for the container reference '<em>Parent NS</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttributes#getParentNS()
      * @see #getConstructedAttributes()
      * @generated
      */
-    EReference getConstructedAttributes_NS();
+    EReference getConstructedAttributes_ParentNS();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Copyrighted <em>Copyrighted</em>}'.
@@ -7716,15 +7716,15 @@ public interface NsdPackage extends EPackage {
     EReference getCopyrightNotice_License();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CopyrightNotice#getCopyrighted <em>Copyrighted</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CopyrightNotice#getParentCopyrighted <em>Parent Copyrighted</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Copyrighted</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.CopyrightNotice#getCopyrighted()
+     * @return the meta object for the container reference '<em>Parent Copyrighted</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.CopyrightNotice#getParentCopyrighted()
      * @see #getCopyrightNotice()
      * @generated
      */
-    EReference getCopyrightNotice_Copyrighted();
+    EReference getCopyrightNotice_ParentCopyrighted();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute <em>Data Attribute</em>}'.
@@ -7759,15 +7759,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getDataAttribute_Name();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getCDC <em>CDC</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getParentCDC <em>Parent CDC</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>CDC</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getCDC()
+     * @return the meta object for the container reference '<em>Parent CDC</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getParentCDC()
      * @see #getDataAttribute()
      * @generated
      */
-    EReference getDataAttribute_CDC();
+    EReference getDataAttribute_ParentCDC();
 
     /**
      * Returns the meta object for the reference list '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getReferredBySubDataObjectAsSizeAttribute <em>Referred By Sub Data Object As Size Attribute</em>}'.
@@ -7912,15 +7912,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getDataObject_Type();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject#getAnyLNClass <em>Any LN Class</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject#getParentAnyLNClass <em>Parent Any LN Class</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Any LN Class</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject#getAnyLNClass()
+     * @return the meta object for the container reference '<em>Parent Any LN Class</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject#getParentAnyLNClass()
      * @see #getDataObject()
      * @generated
      */
-    EReference getDataObject_AnyLNClass();
+    EReference getDataObject_ParentAnyLNClass();
 
     /**
      * Returns the meta object for the reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject#getRefersToCDC <em>Refers To CDC</em>}'.
@@ -7977,15 +7977,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getDataSetMemberOf_Cb();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataSetMemberOf#getApplicableServices <em>Applicable Services</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataSetMemberOf#getParentApplicableServices <em>Parent Applicable Services</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Applicable Services</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataSetMemberOf#getApplicableServices()
+     * @return the meta object for the container reference '<em>Parent Applicable Services</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataSetMemberOf#getParentApplicableServices()
      * @see #getDataSetMemberOf()
      * @generated
      */
-    EReference getDataSetMemberOf_ApplicableServices();
+    EReference getDataSetMemberOf_ParentApplicableServices();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc <em>Doc</em>}'.
@@ -8042,15 +8042,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getDoc_Id();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getNSDoc <em>NS Doc</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getParentNSDoc <em>Parent NS Doc</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>NS Doc</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getNSDoc()
+     * @return the meta object for the container reference '<em>Parent NS Doc</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc#getParentNSDoc()
      * @see #getDoc()
      * @generated
      */
-    EReference getDoc_NSDoc();
+    EReference getDoc_ParentNSDoc();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass <em>Documented Class</em>}'.
@@ -8139,15 +8139,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getEnumeration_Name();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getEnumerations <em>Enumerations</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getParentEnumerations <em>Parent Enumerations</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Enumerations</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getEnumerations()
+     * @return the meta object for the container reference '<em>Parent Enumerations</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getParentEnumerations()
      * @see #getEnumeration()
      * @generated
      */
-    EReference getEnumeration_Enumerations();
+    EReference getEnumeration_ParentEnumerations();
 
     /**
      * Returns the meta object for the reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getRefersToBaseEnumeration <em>Refers To Base Enumeration</em>}'.
@@ -8193,15 +8193,15 @@ public interface NsdPackage extends EPackage {
     EReference getEnumerations_Enumeration();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumerations#getNS <em>NS</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumerations#getParentNS <em>Parent NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>NS</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumerations#getNS()
+     * @return the meta object for the container reference '<em>Parent NS</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumerations#getParentNS()
      * @see #getEnumerations()
      * @generated
      */
-    EReference getEnumerations_NS();
+    EReference getEnumerations_ParentNS();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint <em>Functional Constraint</em>}'.
@@ -8258,15 +8258,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getFunctionalConstraint_TitleID();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint#getFunctionalConstraints <em>Functional Constraints</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint#getParentFunctionalConstraints <em>Parent Functional Constraints</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Functional Constraints</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint#getFunctionalConstraints()
+     * @return the meta object for the container reference '<em>Parent Functional Constraints</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint#getParentFunctionalConstraints()
      * @see #getFunctionalConstraint()
      * @generated
      */
-    EReference getFunctionalConstraint_FunctionalConstraints();
+    EReference getFunctionalConstraint_ParentFunctionalConstraints();
 
     /**
      * Returns the meta object for the reference list '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint#getReferredByDataAttribute <em>Referred By Data Attribute</em>}'.
@@ -8301,26 +8301,26 @@ public interface NsdPackage extends EPackage {
     EReference getFunctionalConstraints_FunctionalConstraint();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getNS <em>NS</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getParentNS <em>Parent NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>NS</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getNS()
+     * @return the meta object for the container reference '<em>Parent NS</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getParentNS()
      * @see #getFunctionalConstraints()
      * @generated
      */
-    EReference getFunctionalConstraints_NS();
+    EReference getFunctionalConstraints_ParentNS();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getServiceNS <em>Service NS</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getParentServiceNS <em>Parent Service NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Service NS</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getServiceNS()
+     * @return the meta object for the container reference '<em>Parent Service NS</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getParentServiceNS()
      * @see #getFunctionalConstraints()
      * @generated
      */
-    EReference getFunctionalConstraints_ServiceNS();
+    EReference getFunctionalConstraints_ParentServiceNS();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.License <em>License</em>}'.
@@ -8366,15 +8366,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getLicense_Uri();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.License#getCopyrightNotice <em>Copyright Notice</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.License#getParentCopyrightNotice <em>Parent Copyright Notice</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Copyright Notice</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.License#getCopyrightNotice()
+     * @return the meta object for the container reference '<em>Parent Copyright Notice</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.License#getParentCopyrightNotice()
      * @see #getLicense()
      * @generated
      */
-    EReference getLicense_CopyrightNotice();
+    EReference getLicense_ParentCopyrightNotice();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Literal <em>Literal</em>}'.
@@ -8409,15 +8409,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getLiteral_Name();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Literal#getEnumeration <em>Enumeration</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Literal#getParentEnumeration <em>Parent Enumeration</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Enumeration</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Literal#getEnumeration()
+     * @return the meta object for the container reference '<em>Parent Enumeration</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Literal#getParentEnumeration()
      * @see #getLiteral()
      * @generated
      */
-    EReference getLiteral_Enumeration();
+    EReference getLiteral_ParentEnumeration();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass <em>LN Class</em>}'.
@@ -8463,15 +8463,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getLNClass_Name();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass#getLNClasses <em>LN Classes</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass#getParentLNClasses <em>Parent LN Classes</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>LN Classes</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass#getLNClasses()
+     * @return the meta object for the container reference '<em>Parent LN Classes</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass#getParentLNClasses()
      * @see #getLNClass()
      * @generated
      */
-    EReference getLNClass_LNClasses();
+    EReference getLNClass_ParentLNClasses();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses <em>LN Classes</em>}'.
@@ -8506,15 +8506,15 @@ public interface NsdPackage extends EPackage {
     EReference getLNClasses_LNClass();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses#getNS <em>NS</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses#getParentNS <em>Parent NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>NS</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses#getNS()
+     * @return the meta object for the container reference '<em>Parent NS</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses#getParentNS()
      * @see #getLNClasses()
      * @generated
      */
-    EReference getLNClasses_NS();
+    EReference getLNClasses_ParentNS();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Notice <em>Notice</em>}'.
@@ -8538,15 +8538,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getNotice_Mixed();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Notice#getCopyrightNotice <em>Copyright Notice</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Notice#getParentCopyrightNotice <em>Parent Copyright Notice</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Copyright Notice</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Notice#getCopyrightNotice()
+     * @return the meta object for the container reference '<em>Parent Copyright Notice</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Notice#getParentCopyrightNotice()
      * @see #getNotice()
      * @generated
      */
-    EReference getNotice_CopyrightNotice();
+    EReference getNotice_ParentCopyrightNotice();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS <em>NS</em>}'.
@@ -8816,15 +8816,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getPresenceCondition_TitleID();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getPresenceConditions <em>Presence Conditions</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getParentPresenceConditions <em>Parent Presence Conditions</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Presence Conditions</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getPresenceConditions()
+     * @return the meta object for the container reference '<em>Parent Presence Conditions</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getParentPresenceConditions()
      * @see #getPresenceCondition()
      * @generated
      */
-    EReference getPresenceCondition_PresenceConditions();
+    EReference getPresenceCondition_ParentPresenceConditions();
 
     /**
      * Returns the meta object for the reference list '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getReferredByDataObject <em>Referred By Data Object</em>}'.
@@ -8903,26 +8903,26 @@ public interface NsdPackage extends EPackage {
     EReference getPresenceConditions_PresenceCondition();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getNS <em>NS</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getParentNS <em>Parent NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>NS</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getNS()
+     * @return the meta object for the container reference '<em>Parent NS</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getParentNS()
      * @see #getPresenceConditions()
      * @generated
      */
-    EReference getPresenceConditions_NS();
+    EReference getPresenceConditions_ParentNS();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getServiceNS <em>Service NS</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getParentServiceNS <em>Parent Service NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Service NS</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getServiceNS()
+     * @return the meta object for the container reference '<em>Parent Service NS</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getParentServiceNS()
      * @see #getPresenceConditions()
      * @generated
      */
-    EReference getPresenceConditions_ServiceNS();
+    EReference getPresenceConditions_ParentServiceNS();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDC <em>Service CDC</em>}'.
@@ -8968,15 +8968,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getServiceCDC_Variant();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDC#getServiceCDCs <em>Service CD Cs</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDC#getParentServiceCDCs <em>Parent Service CD Cs</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Service CD Cs</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDC#getServiceCDCs()
+     * @return the meta object for the container reference '<em>Parent Service CD Cs</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDC#getParentServiceCDCs()
      * @see #getServiceCDC()
      * @generated
      */
-    EReference getServiceCDC_ServiceCDCs();
+    EReference getServiceCDC_ParentServiceCDCs();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDCs <em>Service CD Cs</em>}'.
@@ -9000,15 +9000,15 @@ public interface NsdPackage extends EPackage {
     EReference getServiceCDCs_ServiceCDC();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDCs#getServiceNS <em>Service NS</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDCs#getParentServiceNS <em>Parent Service NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Service NS</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDCs#getServiceNS()
+     * @return the meta object for the container reference '<em>Parent Service NS</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDCs#getParentServiceNS()
      * @see #getServiceCDCs()
      * @generated
      */
-    EReference getServiceCDCs_ServiceNS();
+    EReference getServiceCDCs_ParentServiceNS();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttribute <em>Service Constructed Attribute</em>}'.
@@ -9032,15 +9032,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getServiceConstructedAttribute_TypeKindParameterized();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttribute#getServiceConstructedAttribute <em>Service Constructed Attribute</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttribute#getParentServiceConstructedAttributes <em>Parent Service Constructed Attributes</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Service Constructed Attribute</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttribute#getServiceConstructedAttribute()
+     * @return the meta object for the container reference '<em>Parent Service Constructed Attributes</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttribute#getParentServiceConstructedAttributes()
      * @see #getServiceConstructedAttribute()
      * @generated
      */
-    EReference getServiceConstructedAttribute_ServiceConstructedAttribute();
+    EReference getServiceConstructedAttribute_ParentServiceConstructedAttributes();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttributes <em>Service Constructed Attributes</em>}'.
@@ -9064,15 +9064,15 @@ public interface NsdPackage extends EPackage {
     EReference getServiceConstructedAttributes_ServiceConstructedAttribute();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttributes#getServiceNS <em>Service NS</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttributes#getParentServiceNS <em>Parent Service NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Service NS</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttributes#getServiceNS()
+     * @return the meta object for the container reference '<em>Parent Service NS</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttributes#getParentServiceNS()
      * @see #getServiceConstructedAttributes()
      * @generated
      */
-    EReference getServiceConstructedAttributes_ServiceNS();
+    EReference getServiceConstructedAttributes_ParentServiceNS();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceDataAttribute <em>Service Data Attribute</em>}'.
@@ -9107,15 +9107,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getServiceDataAttribute_Name();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceDataAttribute#getServiceCDC <em>Service CDC</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceDataAttribute#getParentServiceCDC <em>Parent Service CDC</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Service CDC</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceDataAttribute#getServiceCDC()
+     * @return the meta object for the container reference '<em>Parent Service CDC</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceDataAttribute#getParentServiceCDC()
      * @see #getServiceDataAttribute()
      * @generated
      */
-    EReference getServiceDataAttribute_ServiceCDC();
+    EReference getServiceDataAttribute_ParentServiceCDC();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNS <em>Service NS</em>}'.
@@ -9226,15 +9226,15 @@ public interface NsdPackage extends EPackage {
     EReference getServiceNsUsage_AppliesTo();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNsUsage#getApplicableServiceNS <em>Applicable Service NS</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNsUsage#getParentApplicableServiceNS <em>Parent Applicable Service NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Applicable Service NS</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNsUsage#getApplicableServiceNS()
+     * @return the meta object for the container reference '<em>Parent Applicable Service NS</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNsUsage#getParentApplicableServiceNS()
      * @see #getServiceNsUsage()
      * @generated
      */
-    EReference getServiceNsUsage_ApplicableServiceNS();
+    EReference getServiceNsUsage_ParentApplicableServiceNS();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceParameter <em>Service Parameter</em>}'.
@@ -9258,15 +9258,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getServiceParameter_Name();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceParameter#getCDC <em>CDC</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceParameter#getParentCDC <em>Parent CDC</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>CDC</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceParameter#getCDC()
+     * @return the meta object for the container reference '<em>Parent CDC</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceParameter#getParentCDC()
      * @see #getServiceParameter()
      * @generated
      */
-    EReference getServiceParameter_CDC();
+    EReference getServiceParameter_ParentCDC();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceTypeRealizations <em>Service Type Realizations</em>}'.
@@ -9290,15 +9290,15 @@ public interface NsdPackage extends EPackage {
     EReference getServiceTypeRealizations_ServiceTypeRealization();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceTypeRealizations#getServiceNS <em>Service NS</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceTypeRealizations#getParentServiceNS <em>Parent Service NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Service NS</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceTypeRealizations#getServiceNS()
+     * @return the meta object for the container reference '<em>Parent Service NS</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceTypeRealizations#getParentServiceNS()
      * @see #getServiceTypeRealizations()
      * @generated
      */
-    EReference getServiceTypeRealizations_ServiceNS();
+    EReference getServiceTypeRealizations_ParentServiceNS();
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute <em>Sub Data Attribute</em>}'.
@@ -9322,15 +9322,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getSubDataAttribute_Name();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getConstructedAttribute <em>Constructed Attribute</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getParentConstructedAttribute <em>Parent Constructed Attribute</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>Constructed Attribute</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getConstructedAttribute()
+     * @return the meta object for the container reference '<em>Parent Constructed Attribute</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getParentConstructedAttribute()
      * @see #getSubDataAttribute()
      * @generated
      */
-    EReference getSubDataAttribute_ConstructedAttribute();
+    EReference getSubDataAttribute_ParentConstructedAttribute();
 
     /**
      * Returns the meta object for the reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getRefersToPresenceCondition <em>Refers To Presence Condition</em>}'.
@@ -9376,15 +9376,15 @@ public interface NsdPackage extends EPackage {
     EAttribute getSubDataObject_Type();
 
     /**
-     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject#getCDC <em>CDC</em>}'.
+     * Returns the meta object for the container reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject#getParentCDC <em>Parent CDC</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @return the meta object for the container reference '<em>CDC</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject#getCDC()
+     * @return the meta object for the container reference '<em>Parent CDC</em>'.
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject#getParentCDC()
      * @see #getSubDataObject()
      * @generated
      */
-    EReference getSubDataObject_CDC();
+    EReference getSubDataObject_ParentCDC();
 
     /**
      * Returns the meta object for the reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject#getRefersToCDC <em>Refers To CDC</em>}'.
@@ -10090,12 +10090,12 @@ public interface NsdPackage extends EPackage {
         EClass APPLIES_TO_TYPE = eINSTANCE.getAppliesToType();
 
         /**
-         * The meta object literal for the '<em><b>Service Ns Usage</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Service Ns Usage</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference APPLIES_TO_TYPE__SERVICE_NS_USAGE = eINSTANCE.getAppliesToType_ServiceNsUsage();
+        EReference APPLIES_TO_TYPE__PARENT_SERVICE_NS_USAGE = eINSTANCE.getAppliesToType_ParentServiceNsUsage();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DependsOnImpl <em>Depends On</em>}' class.
@@ -10108,12 +10108,12 @@ public interface NsdPackage extends EPackage {
         EClass DEPENDS_ON = eINSTANCE.getDependsOn();
 
         /**
-         * The meta object literal for the '<em><b>NS</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent NS</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference DEPENDS_ON__NS = eINSTANCE.getDependsOn_NS();
+        EReference DEPENDS_ON__PARENT_NS = eINSTANCE.getDependsOn_ParentNS();
 
         /**
          * The meta object literal for the '<em><b>Refers To NS</b></em>' reference feature.
@@ -10208,12 +10208,12 @@ public interface NsdPackage extends EPackage {
         EAttribute SERVICE_TYPE__NAME = eINSTANCE.getServiceType_Name();
 
         /**
-         * The meta object literal for the '<em><b>Applicable Services</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Applicable Services</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference SERVICE_TYPE__APPLICABLE_SERVICES = eINSTANCE.getServiceType_ApplicableServices();
+        EReference SERVICE_TYPE__PARENT_APPLICABLE_SERVICES = eINSTANCE.getServiceType_ParentApplicableServices();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AbbreviationImpl <em>Abbreviation</em>}' class.
@@ -10242,12 +10242,12 @@ public interface NsdPackage extends EPackage {
         EAttribute ABBREVIATION__NAME = eINSTANCE.getAbbreviation_Name();
 
         /**
-         * The meta object literal for the '<em><b>Abbreviations</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Abbreviations</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference ABBREVIATION__ABBREVIATIONS = eINSTANCE.getAbbreviation_Abbreviations();
+        EReference ABBREVIATION__PARENT_ABBREVIATIONS = eINSTANCE.getAbbreviation_ParentAbbreviations();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AbbreviationsImpl <em>Abbreviations</em>}' class.
@@ -10268,20 +10268,20 @@ public interface NsdPackage extends EPackage {
         EReference ABBREVIATIONS__ABBREVIATION = eINSTANCE.getAbbreviations_Abbreviation();
 
         /**
-         * The meta object literal for the '<em><b>NS</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent NS</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference ABBREVIATIONS__NS = eINSTANCE.getAbbreviations_NS();
+        EReference ABBREVIATIONS__PARENT_NS = eINSTANCE.getAbbreviations_ParentNS();
 
         /**
-         * The meta object literal for the '<em><b>Service NS</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Service NS</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference ABBREVIATIONS__SERVICE_NS = eINSTANCE.getAbbreviations_ServiceNS();
+        EReference ABBREVIATIONS__PARENT_SERVICE_NS = eINSTANCE.getAbbreviations_ParentServiceNS();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AbstractLNClassImpl <em>Abstract LN Class</em>}' class.
@@ -10302,12 +10302,12 @@ public interface NsdPackage extends EPackage {
         EAttribute ABSTRACT_LN_CLASS__NAME = eINSTANCE.getAbstractLNClass_Name();
 
         /**
-         * The meta object literal for the '<em><b>LN Classes</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent LN Classes</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference ABSTRACT_LN_CLASS__LN_CLASSES = eINSTANCE.getAbstractLNClass_LNClasses();
+        EReference ABSTRACT_LN_CLASS__PARENT_LN_CLASSES = eINSTANCE.getAbstractLNClass_ParentLNClasses();
 
         /**
          * The meta object literal for the '<em><b>Referred By Any LN Class</b></em>' reference list feature.
@@ -10360,12 +10360,12 @@ public interface NsdPackage extends EPackage {
         EOperation ANY_LN_CLASS___GET_NAME = eINSTANCE.getAnyLNClass__GetName();
 
         /**
-         * The meta object literal for the '<em><b>Get LN Classes</b></em>' operation.
+         * The meta object literal for the '<em><b>Get Parent LN Classes</b></em>' operation.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EOperation ANY_LN_CLASS___GET_LN_CLASSES = eINSTANCE.getAnyLNClass__GetLNClasses();
+        EOperation ANY_LN_CLASS___GET_PARENT_LN_CLASSES = eINSTANCE.getAnyLNClass__GetParentLNClasses();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ApplicableServiceNSImpl <em>Applicable Service NS</em>}' class.
@@ -10428,12 +10428,13 @@ public interface NsdPackage extends EPackage {
         EReference APPLICABLE_SERVICES__DATA_SET_MEMBER_OF = eINSTANCE.getApplicableServices_DataSetMemberOf();
 
         /**
-         * The meta object literal for the '<em><b>Functional Constraint</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Functional Constraint</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference APPLICABLE_SERVICES__FUNCTIONAL_CONSTRAINT = eINSTANCE.getApplicableServices_FunctionalConstraint();
+        EReference APPLICABLE_SERVICES__PARENT_FUNCTIONAL_CONSTRAINT = eINSTANCE
+                .getApplicableServices_ParentFunctionalConstraint();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.BasicTypeImpl <em>Basic Type</em>}' class.
@@ -10462,12 +10463,12 @@ public interface NsdPackage extends EPackage {
         EAttribute BASIC_TYPE__NAME = eINSTANCE.getBasicType_Name();
 
         /**
-         * The meta object literal for the '<em><b>Basic Types</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Basic Types</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference BASIC_TYPE__BASIC_TYPES = eINSTANCE.getBasicType_BasicTypes();
+        EReference BASIC_TYPE__PARENT_BASIC_TYPES = eINSTANCE.getBasicType_ParentBasicTypes();
 
         /**
          * The meta object literal for the '<em><b>Referred By Data Attribute</b></em>' reference list feature.
@@ -10496,12 +10497,12 @@ public interface NsdPackage extends EPackage {
         EReference BASIC_TYPES__BASIC_TYPE = eINSTANCE.getBasicTypes_BasicType();
 
         /**
-         * The meta object literal for the '<em><b>NS</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent NS</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference BASIC_TYPES__NS = eINSTANCE.getBasicTypes_NS();
+        EReference BASIC_TYPES__PARENT_NS = eINSTANCE.getBasicTypes_ParentNS();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.CDCImpl <em>CDC</em>}' class.
@@ -10578,12 +10579,12 @@ public interface NsdPackage extends EPackage {
         EAttribute CDC__VARIANT = eINSTANCE.getCDC_Variant();
 
         /**
-         * The meta object literal for the '<em><b>CD Cs</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent CD Cs</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference CDC__CD_CS = eINSTANCE.getCDC_CDCs();
+        EReference CDC__PARENT_CD_CS = eINSTANCE.getCDC_ParentCDCs();
 
         /**
          * The meta object literal for the '<em><b>Referred By Data Object</b></em>' reference list feature.
@@ -10620,12 +10621,12 @@ public interface NsdPackage extends EPackage {
         EReference CD_CS__CDC = eINSTANCE.getCDCs_CDC();
 
         /**
-         * The meta object literal for the '<em><b>NS</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent NS</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference CD_CS__NS = eINSTANCE.getCDCs_NS();
+        EReference CD_CS__PARENT_NS = eINSTANCE.getCDCs_ParentNS();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ChangesImpl <em>Changes</em>}' class.
@@ -10670,20 +10671,20 @@ public interface NsdPackage extends EPackage {
         EAttribute CHANGES__TISSUES = eINSTANCE.getChanges_Tissues();
 
         /**
-         * The meta object literal for the '<em><b>NS</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent NS</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference CHANGES__NS = eINSTANCE.getChanges_NS();
+        EReference CHANGES__PARENT_NS = eINSTANCE.getChanges_ParentNS();
 
         /**
-         * The meta object literal for the '<em><b>Service NS</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Service NS</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference CHANGES__SERVICE_NS = eINSTANCE.getChanges_ServiceNS();
+        EReference CHANGES__PARENT_SERVICE_NS = eINSTANCE.getChanges_ParentServiceNS();
 
         /**
          * The meta object literal for the '<em><b>Release</b></em>' attribute feature.
@@ -10728,22 +10729,22 @@ public interface NsdPackage extends EPackage {
         EAttribute CONSTRUCTED_ATTRIBUTE__NAME = eINSTANCE.getConstructedAttribute_Name();
 
         /**
-         * The meta object literal for the '<em><b>Constructed Attributes</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Constructed Attributes</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference CONSTRUCTED_ATTRIBUTE__CONSTRUCTED_ATTRIBUTES = eINSTANCE
-                .getConstructedAttribute_ConstructedAttributes();
+        EReference CONSTRUCTED_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTES = eINSTANCE
+                .getConstructedAttribute_ParentConstructedAttributes();
 
         /**
-         * The meta object literal for the '<em><b>Service Type Realizations</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Service Type Realizations</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference CONSTRUCTED_ATTRIBUTE__SERVICE_TYPE_REALIZATIONS = eINSTANCE
-                .getConstructedAttribute_ServiceTypeRealizations();
+        EReference CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_TYPE_REALIZATIONS = eINSTANCE
+                .getConstructedAttribute_ParentServiceTypeRealizations();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ConstructedAttributesImpl <em>Constructed Attributes</em>}' class.
@@ -10765,12 +10766,12 @@ public interface NsdPackage extends EPackage {
                 .getConstructedAttributes_ConstructedAttribute();
 
         /**
-         * The meta object literal for the '<em><b>NS</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent NS</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference CONSTRUCTED_ATTRIBUTES__NS = eINSTANCE.getConstructedAttributes_NS();
+        EReference CONSTRUCTED_ATTRIBUTES__PARENT_NS = eINSTANCE.getConstructedAttributes_ParentNS();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.CopyrightedImpl <em>Copyrighted</em>}' class.
@@ -10817,12 +10818,12 @@ public interface NsdPackage extends EPackage {
         EReference COPYRIGHT_NOTICE__LICENSE = eINSTANCE.getCopyrightNotice_License();
 
         /**
-         * The meta object literal for the '<em><b>Copyrighted</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Copyrighted</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference COPYRIGHT_NOTICE__COPYRIGHTED = eINSTANCE.getCopyrightNotice_Copyrighted();
+        EReference COPYRIGHT_NOTICE__PARENT_COPYRIGHTED = eINSTANCE.getCopyrightNotice_ParentCopyrighted();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataAttributeImpl <em>Data Attribute</em>}' class.
@@ -10851,12 +10852,12 @@ public interface NsdPackage extends EPackage {
         EAttribute DATA_ATTRIBUTE__NAME = eINSTANCE.getDataAttribute_Name();
 
         /**
-         * The meta object literal for the '<em><b>CDC</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent CDC</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference DATA_ATTRIBUTE__CDC = eINSTANCE.getDataAttribute_CDC();
+        EReference DATA_ATTRIBUTE__PARENT_CDC = eINSTANCE.getDataAttribute_ParentCDC();
 
         /**
          * The meta object literal for the '<em><b>Referred By Sub Data Object As Size Attribute</b></em>' reference list feature.
@@ -10972,12 +10973,12 @@ public interface NsdPackage extends EPackage {
         EAttribute DATA_OBJECT__TYPE = eINSTANCE.getDataObject_Type();
 
         /**
-         * The meta object literal for the '<em><b>Any LN Class</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Any LN Class</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference DATA_OBJECT__ANY_LN_CLASS = eINSTANCE.getDataObject_AnyLNClass();
+        EReference DATA_OBJECT__PARENT_ANY_LN_CLASS = eINSTANCE.getDataObject_ParentAnyLNClass();
 
         /**
          * The meta object literal for the '<em><b>Refers To CDC</b></em>' reference feature.
@@ -11023,12 +11024,13 @@ public interface NsdPackage extends EPackage {
         EAttribute DATA_SET_MEMBER_OF__CB = eINSTANCE.getDataSetMemberOf_Cb();
 
         /**
-         * The meta object literal for the '<em><b>Applicable Services</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Applicable Services</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference DATA_SET_MEMBER_OF__APPLICABLE_SERVICES = eINSTANCE.getDataSetMemberOf_ApplicableServices();
+        EReference DATA_SET_MEMBER_OF__PARENT_APPLICABLE_SERVICES = eINSTANCE
+                .getDataSetMemberOf_ParentApplicableServices();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DocImpl <em>Doc</em>}' class.
@@ -11073,12 +11075,12 @@ public interface NsdPackage extends EPackage {
         EAttribute DOC__ID = eINSTANCE.getDoc_Id();
 
         /**
-         * The meta object literal for the '<em><b>NS Doc</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent NS Doc</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference DOC__NS_DOC = eINSTANCE.getDoc_NSDoc();
+        EReference DOC__PARENT_NS_DOC = eINSTANCE.getDoc_ParentNSDoc();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DocumentedClassImpl <em>Documented Class</em>}' class.
@@ -11149,12 +11151,12 @@ public interface NsdPackage extends EPackage {
         EAttribute ENUMERATION__NAME = eINSTANCE.getEnumeration_Name();
 
         /**
-         * The meta object literal for the '<em><b>Enumerations</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Enumerations</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference ENUMERATION__ENUMERATIONS = eINSTANCE.getEnumeration_Enumerations();
+        EReference ENUMERATION__PARENT_ENUMERATIONS = eINSTANCE.getEnumeration_ParentEnumerations();
 
         /**
          * The meta object literal for the '<em><b>Refers To Base Enumeration</b></em>' reference feature.
@@ -11192,12 +11194,12 @@ public interface NsdPackage extends EPackage {
         EReference ENUMERATIONS__ENUMERATION = eINSTANCE.getEnumerations_Enumeration();
 
         /**
-         * The meta object literal for the '<em><b>NS</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent NS</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference ENUMERATIONS__NS = eINSTANCE.getEnumerations_NS();
+        EReference ENUMERATIONS__PARENT_NS = eINSTANCE.getEnumerations_ParentNS();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.FunctionalConstraintImpl <em>Functional Constraint</em>}' class.
@@ -11242,13 +11244,13 @@ public interface NsdPackage extends EPackage {
         EAttribute FUNCTIONAL_CONSTRAINT__TITLE_ID = eINSTANCE.getFunctionalConstraint_TitleID();
 
         /**
-         * The meta object literal for the '<em><b>Functional Constraints</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Functional Constraints</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference FUNCTIONAL_CONSTRAINT__FUNCTIONAL_CONSTRAINTS = eINSTANCE
-                .getFunctionalConstraint_FunctionalConstraints();
+        EReference FUNCTIONAL_CONSTRAINT__PARENT_FUNCTIONAL_CONSTRAINTS = eINSTANCE
+                .getFunctionalConstraint_ParentFunctionalConstraints();
 
         /**
          * The meta object literal for the '<em><b>Referred By Data Attribute</b></em>' reference list feature.
@@ -11279,20 +11281,20 @@ public interface NsdPackage extends EPackage {
                 .getFunctionalConstraints_FunctionalConstraint();
 
         /**
-         * The meta object literal for the '<em><b>NS</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent NS</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference FUNCTIONAL_CONSTRAINTS__NS = eINSTANCE.getFunctionalConstraints_NS();
+        EReference FUNCTIONAL_CONSTRAINTS__PARENT_NS = eINSTANCE.getFunctionalConstraints_ParentNS();
 
         /**
-         * The meta object literal for the '<em><b>Service NS</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Service NS</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference FUNCTIONAL_CONSTRAINTS__SERVICE_NS = eINSTANCE.getFunctionalConstraints_ServiceNS();
+        EReference FUNCTIONAL_CONSTRAINTS__PARENT_SERVICE_NS = eINSTANCE.getFunctionalConstraints_ParentServiceNS();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LicenseImpl <em>License</em>}' class.
@@ -11329,12 +11331,12 @@ public interface NsdPackage extends EPackage {
         EAttribute LICENSE__URI = eINSTANCE.getLicense_Uri();
 
         /**
-         * The meta object literal for the '<em><b>Copyright Notice</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Copyright Notice</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference LICENSE__COPYRIGHT_NOTICE = eINSTANCE.getLicense_CopyrightNotice();
+        EReference LICENSE__PARENT_COPYRIGHT_NOTICE = eINSTANCE.getLicense_ParentCopyrightNotice();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LiteralImpl <em>Literal</em>}' class.
@@ -11363,12 +11365,12 @@ public interface NsdPackage extends EPackage {
         EAttribute LITERAL__NAME = eINSTANCE.getLiteral_Name();
 
         /**
-         * The meta object literal for the '<em><b>Enumeration</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Enumeration</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference LITERAL__ENUMERATION = eINSTANCE.getLiteral_Enumeration();
+        EReference LITERAL__PARENT_ENUMERATION = eINSTANCE.getLiteral_ParentEnumeration();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LNClassImpl <em>LN Class</em>}' class.
@@ -11405,12 +11407,12 @@ public interface NsdPackage extends EPackage {
         EAttribute LN_CLASS__NAME = eINSTANCE.getLNClass_Name();
 
         /**
-         * The meta object literal for the '<em><b>LN Classes</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent LN Classes</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference LN_CLASS__LN_CLASSES = eINSTANCE.getLNClass_LNClasses();
+        EReference LN_CLASS__PARENT_LN_CLASSES = eINSTANCE.getLNClass_ParentLNClasses();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LNClassesImpl <em>LN Classes</em>}' class.
@@ -11439,12 +11441,12 @@ public interface NsdPackage extends EPackage {
         EReference LN_CLASSES__LN_CLASS = eINSTANCE.getLNClasses_LNClass();
 
         /**
-         * The meta object literal for the '<em><b>NS</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent NS</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference LN_CLASSES__NS = eINSTANCE.getLNClasses_NS();
+        EReference LN_CLASSES__PARENT_NS = eINSTANCE.getLNClasses_ParentNS();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NoticeImpl <em>Notice</em>}' class.
@@ -11465,12 +11467,12 @@ public interface NsdPackage extends EPackage {
         EAttribute NOTICE__MIXED = eINSTANCE.getNotice_Mixed();
 
         /**
-         * The meta object literal for the '<em><b>Copyright Notice</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Copyright Notice</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference NOTICE__COPYRIGHT_NOTICE = eINSTANCE.getNotice_CopyrightNotice();
+        EReference NOTICE__PARENT_COPYRIGHT_NOTICE = eINSTANCE.getNotice_ParentCopyrightNotice();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NSImpl <em>NS</em>}' class.
@@ -11683,12 +11685,13 @@ public interface NsdPackage extends EPackage {
         EAttribute PRESENCE_CONDITION__TITLE_ID = eINSTANCE.getPresenceCondition_TitleID();
 
         /**
-         * The meta object literal for the '<em><b>Presence Conditions</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Presence Conditions</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference PRESENCE_CONDITION__PRESENCE_CONDITIONS = eINSTANCE.getPresenceCondition_PresenceConditions();
+        EReference PRESENCE_CONDITION__PARENT_PRESENCE_CONDITIONS = eINSTANCE
+                .getPresenceCondition_ParentPresenceConditions();
 
         /**
          * The meta object literal for the '<em><b>Referred By Data Object</b></em>' reference list feature.
@@ -11753,20 +11756,20 @@ public interface NsdPackage extends EPackage {
         EReference PRESENCE_CONDITIONS__PRESENCE_CONDITION = eINSTANCE.getPresenceConditions_PresenceCondition();
 
         /**
-         * The meta object literal for the '<em><b>NS</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent NS</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference PRESENCE_CONDITIONS__NS = eINSTANCE.getPresenceConditions_NS();
+        EReference PRESENCE_CONDITIONS__PARENT_NS = eINSTANCE.getPresenceConditions_ParentNS();
 
         /**
-         * The meta object literal for the '<em><b>Service NS</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Service NS</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference PRESENCE_CONDITIONS__SERVICE_NS = eINSTANCE.getPresenceConditions_ServiceNS();
+        EReference PRESENCE_CONDITIONS__PARENT_SERVICE_NS = eINSTANCE.getPresenceConditions_ParentServiceNS();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceCDCImpl <em>Service CDC</em>}' class.
@@ -11803,12 +11806,12 @@ public interface NsdPackage extends EPackage {
         EAttribute SERVICE_CDC__VARIANT = eINSTANCE.getServiceCDC_Variant();
 
         /**
-         * The meta object literal for the '<em><b>Service CD Cs</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Service CD Cs</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference SERVICE_CDC__SERVICE_CD_CS = eINSTANCE.getServiceCDC_ServiceCDCs();
+        EReference SERVICE_CDC__PARENT_SERVICE_CD_CS = eINSTANCE.getServiceCDC_ParentServiceCDCs();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceCDCsImpl <em>Service CD Cs</em>}' class.
@@ -11829,12 +11832,12 @@ public interface NsdPackage extends EPackage {
         EReference SERVICE_CD_CS__SERVICE_CDC = eINSTANCE.getServiceCDCs_ServiceCDC();
 
         /**
-         * The meta object literal for the '<em><b>Service NS</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Service NS</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference SERVICE_CD_CS__SERVICE_NS = eINSTANCE.getServiceCDCs_ServiceNS();
+        EReference SERVICE_CD_CS__PARENT_SERVICE_NS = eINSTANCE.getServiceCDCs_ParentServiceNS();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceConstructedAttributeImpl <em>Service Constructed Attribute</em>}' class.
@@ -11856,13 +11859,13 @@ public interface NsdPackage extends EPackage {
                 .getServiceConstructedAttribute_TypeKindParameterized();
 
         /**
-         * The meta object literal for the '<em><b>Service Constructed Attribute</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Service Constructed Attributes</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference SERVICE_CONSTRUCTED_ATTRIBUTE__SERVICE_CONSTRUCTED_ATTRIBUTE = eINSTANCE
-                .getServiceConstructedAttribute_ServiceConstructedAttribute();
+        EReference SERVICE_CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_CONSTRUCTED_ATTRIBUTES = eINSTANCE
+                .getServiceConstructedAttribute_ParentServiceConstructedAttributes();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceConstructedAttributesImpl <em>Service Constructed Attributes</em>}' class.
@@ -11884,12 +11887,13 @@ public interface NsdPackage extends EPackage {
                 .getServiceConstructedAttributes_ServiceConstructedAttribute();
 
         /**
-         * The meta object literal for the '<em><b>Service NS</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Service NS</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_NS = eINSTANCE.getServiceConstructedAttributes_ServiceNS();
+        EReference SERVICE_CONSTRUCTED_ATTRIBUTES__PARENT_SERVICE_NS = eINSTANCE
+                .getServiceConstructedAttributes_ParentServiceNS();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceDataAttributeImpl <em>Service Data Attribute</em>}' class.
@@ -11918,12 +11922,12 @@ public interface NsdPackage extends EPackage {
         EAttribute SERVICE_DATA_ATTRIBUTE__NAME = eINSTANCE.getServiceDataAttribute_Name();
 
         /**
-         * The meta object literal for the '<em><b>Service CDC</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Service CDC</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference SERVICE_DATA_ATTRIBUTE__SERVICE_CDC = eINSTANCE.getServiceDataAttribute_ServiceCDC();
+        EReference SERVICE_DATA_ATTRIBUTE__PARENT_SERVICE_CDC = eINSTANCE.getServiceDataAttribute_ParentServiceCDC();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceNSImpl <em>Service NS</em>}' class.
@@ -12010,12 +12014,13 @@ public interface NsdPackage extends EPackage {
         EReference SERVICE_NS_USAGE__APPLIES_TO = eINSTANCE.getServiceNsUsage_AppliesTo();
 
         /**
-         * The meta object literal for the '<em><b>Applicable Service NS</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Applicable Service NS</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference SERVICE_NS_USAGE__APPLICABLE_SERVICE_NS = eINSTANCE.getServiceNsUsage_ApplicableServiceNS();
+        EReference SERVICE_NS_USAGE__PARENT_APPLICABLE_SERVICE_NS = eINSTANCE
+                .getServiceNsUsage_ParentApplicableServiceNS();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceParameterImpl <em>Service Parameter</em>}' class.
@@ -12036,12 +12041,12 @@ public interface NsdPackage extends EPackage {
         EAttribute SERVICE_PARAMETER__NAME = eINSTANCE.getServiceParameter_Name();
 
         /**
-         * The meta object literal for the '<em><b>CDC</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent CDC</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference SERVICE_PARAMETER__CDC = eINSTANCE.getServiceParameter_CDC();
+        EReference SERVICE_PARAMETER__PARENT_CDC = eINSTANCE.getServiceParameter_ParentCDC();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceTypeRealizationsImpl <em>Service Type Realizations</em>}' class.
@@ -12063,12 +12068,13 @@ public interface NsdPackage extends EPackage {
                 .getServiceTypeRealizations_ServiceTypeRealization();
 
         /**
-         * The meta object literal for the '<em><b>Service NS</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Service NS</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference SERVICE_TYPE_REALIZATIONS__SERVICE_NS = eINSTANCE.getServiceTypeRealizations_ServiceNS();
+        EReference SERVICE_TYPE_REALIZATIONS__PARENT_SERVICE_NS = eINSTANCE
+                .getServiceTypeRealizations_ParentServiceNS();
 
         /**
          * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.SubDataAttributeImpl <em>Sub Data Attribute</em>}' class.
@@ -12089,12 +12095,13 @@ public interface NsdPackage extends EPackage {
         EAttribute SUB_DATA_ATTRIBUTE__NAME = eINSTANCE.getSubDataAttribute_Name();
 
         /**
-         * The meta object literal for the '<em><b>Constructed Attribute</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent Constructed Attribute</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE = eINSTANCE.getSubDataAttribute_ConstructedAttribute();
+        EReference SUB_DATA_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTE = eINSTANCE
+                .getSubDataAttribute_ParentConstructedAttribute();
 
         /**
          * The meta object literal for the '<em><b>Refers To Presence Condition</b></em>' reference feature.
@@ -12132,12 +12139,12 @@ public interface NsdPackage extends EPackage {
         EAttribute SUB_DATA_OBJECT__TYPE = eINSTANCE.getSubDataObject_Type();
 
         /**
-         * The meta object literal for the '<em><b>CDC</b></em>' container reference feature.
+         * The meta object literal for the '<em><b>Parent CDC</b></em>' container reference feature.
          * <!-- begin-user-doc -->
          * <!-- end-user-doc -->
          * @generated
          */
-        EReference SUB_DATA_OBJECT__CDC = eINSTANCE.getSubDataObject_CDC();
+        EReference SUB_DATA_OBJECT__PARENT_CDC = eINSTANCE.getSubDataObject_ParentCDC();
 
         /**
          * The meta object literal for the '<em><b>Refers To CDC</b></em>' reference feature.
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/PresenceCondition.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/PresenceCondition.java
index 328d7f5e6ba1132527a730f5ec2c166b253c782d..3d51b838bc92f664e4655200d79b018685551f22 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/PresenceCondition.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/PresenceCondition.java
@@ -34,7 +34,7 @@ import org.eclipse.emf.common.util.EList;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getDescID <em>Desc ID</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getName <em>Name</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getTitleID <em>Title ID</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getPresenceConditions <em>Presence Conditions</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getParentPresenceConditions <em>Parent Presence Conditions</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getReferredByDataObject <em>Referred By Data Object</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getReferredByDataObjectForDerivedStatistics <em>Referred By Data Object For Derived Statistics</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getReferredBySubDataObject <em>Referred By Sub Data Object</em>}</li>
@@ -250,32 +250,28 @@ public interface PresenceCondition extends NsdObject {
     boolean isSetTitleID();
 
     /**
-     * Returns the value of the '<em><b>Presence Conditions</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Presence Conditions</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getPresenceCondition <em>Presence Condition</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Presence Conditions</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Presence Conditions</em>' container reference.
-     * @see #setPresenceConditions(PresenceConditions)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getPresenceCondition_PresenceConditions()
+     * @return the value of the '<em>Parent Presence Conditions</em>' container reference.
+     * @see #setParentPresenceConditions(PresenceConditions)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getPresenceCondition_ParentPresenceConditions()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getPresenceCondition
      * @model opposite="presenceCondition" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    PresenceConditions getPresenceConditions();
+    PresenceConditions getParentPresenceConditions();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getPresenceConditions <em>Presence Conditions</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getParentPresenceConditions <em>Parent Presence Conditions</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Presence Conditions</em>' container reference.
-     * @see #getPresenceConditions()
+     * @param value the new value of the '<em>Parent Presence Conditions</em>' container reference.
+     * @see #getParentPresenceConditions()
      * @generated
      */
-    void setPresenceConditions( PresenceConditions value );
+    void setParentPresenceConditions( PresenceConditions value );
 
     /**
      * Returns the value of the '<em><b>Referred By Data Object</b></em>' reference list.
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/PresenceConditions.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/PresenceConditions.java
index a0b5819a315f410bb449bfe61615b546e4850c90..98ebf5ad257b8582b57c5540223725b19910f0e1 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/PresenceConditions.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/PresenceConditions.java
@@ -31,8 +31,8 @@ import org.eclipse.emf.common.util.EList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getPresenceCondition <em>Presence Condition</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getNS <em>NS</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getServiceNS <em>Service NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getParentNS <em>Parent NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getParentServiceNS <em>Parent Service NS</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getPresenceConditions()
@@ -45,15 +45,15 @@ public interface PresenceConditions extends NsdObject {
     /**
      * Returns the value of the '<em><b>Presence Condition</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getPresenceConditions <em>Presence Conditions</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getParentPresenceConditions <em>Parent Presence Conditions</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Presence Condition</em>' containment reference list.
      * @see #isSetPresenceCondition()
      * @see #unsetPresenceCondition()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getPresenceConditions_PresenceCondition()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getPresenceConditions
-     * @model opposite="presenceConditions" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getParentPresenceConditions
+     * @model opposite="parentPresenceConditions" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='PresenceCondition' namespace='##targetNamespace'"
      * @generated
      */
@@ -81,59 +81,51 @@ public interface PresenceConditions extends NsdObject {
     boolean isSetPresenceCondition();
 
     /**
-     * Returns the value of the '<em><b>NS</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent NS</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#getPresenceConditions <em>Presence Conditions</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>NS</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>NS</em>' container reference.
-     * @see #setNS(NS)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getPresenceConditions_NS()
+     * @return the value of the '<em>Parent NS</em>' container reference.
+     * @see #setParentNS(NS)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getPresenceConditions_ParentNS()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#getPresenceConditions
      * @model opposite="presenceConditions" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    NS getNS();
+    NS getParentNS();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getNS <em>NS</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getParentNS <em>Parent NS</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>NS</em>' container reference.
-     * @see #getNS()
+     * @param value the new value of the '<em>Parent NS</em>' container reference.
+     * @see #getParentNS()
      * @generated
      */
-    void setNS( NS value );
+    void setParentNS( NS value );
 
     /**
-     * Returns the value of the '<em><b>Service NS</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Service NS</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNS#getPresenceConditions <em>Presence Conditions</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Service NS</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Service NS</em>' container reference.
-     * @see #setServiceNS(ServiceNS)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getPresenceConditions_ServiceNS()
+     * @return the value of the '<em>Parent Service NS</em>' container reference.
+     * @see #setParentServiceNS(ServiceNS)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getPresenceConditions_ParentServiceNS()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNS#getPresenceConditions
      * @model opposite="presenceConditions" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    ServiceNS getServiceNS();
+    ServiceNS getParentServiceNS();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getServiceNS <em>Service NS</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getParentServiceNS <em>Parent Service NS</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Service NS</em>' container reference.
-     * @see #getServiceNS()
+     * @param value the new value of the '<em>Parent Service NS</em>' container reference.
+     * @see #getParentServiceNS()
      * @generated
      */
-    void setServiceNS( ServiceNS value );
+    void setParentServiceNS( ServiceNS value );
 
 } // PresenceConditions
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceCDC.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceCDC.java
index 37382165b5c4c467660915f5f336d989820fd409..26d5b29dc4fa56af6f2afe5f3c75ea72adf07218 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceCDC.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceCDC.java
@@ -33,7 +33,7 @@ import org.eclipse.emf.common.util.EList;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDC#getServiceDataAttribute <em>Service Data Attribute</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDC#getCdc <em>Cdc</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDC#getVariant <em>Variant</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDC#getServiceCDCs <em>Service CD Cs</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDC#getParentServiceCDCs <em>Parent Service CD Cs</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceCDC()
@@ -46,15 +46,15 @@ public interface ServiceCDC extends NsdObject {
     /**
      * Returns the value of the '<em><b>Service Data Attribute</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceDataAttribute}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceDataAttribute#getServiceCDC <em>Service CDC</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceDataAttribute#getParentServiceCDC <em>Parent Service CDC</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Service Data Attribute</em>' containment reference list.
      * @see #isSetServiceDataAttribute()
      * @see #unsetServiceDataAttribute()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceCDC_ServiceDataAttribute()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceDataAttribute#getServiceCDC
-     * @model opposite="serviceCDC" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceDataAttribute#getParentServiceCDC
+     * @model opposite="parentServiceCDC" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='ServiceDataAttribute' namespace='##targetNamespace'"
      * @generated
      */
@@ -182,31 +182,27 @@ public interface ServiceCDC extends NsdObject {
     boolean isSetVariant();
 
     /**
-     * Returns the value of the '<em><b>Service CD Cs</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Service CD Cs</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDCs#getServiceCDC <em>Service CDC</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Service CD Cs</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Service CD Cs</em>' container reference.
-     * @see #setServiceCDCs(ServiceCDCs)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceCDC_ServiceCDCs()
+     * @return the value of the '<em>Parent Service CD Cs</em>' container reference.
+     * @see #setParentServiceCDCs(ServiceCDCs)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceCDC_ParentServiceCDCs()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDCs#getServiceCDC
      * @model opposite="serviceCDC" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    ServiceCDCs getServiceCDCs();
+    ServiceCDCs getParentServiceCDCs();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDC#getServiceCDCs <em>Service CD Cs</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDC#getParentServiceCDCs <em>Parent Service CD Cs</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Service CD Cs</em>' container reference.
-     * @see #getServiceCDCs()
+     * @param value the new value of the '<em>Parent Service CD Cs</em>' container reference.
+     * @see #getParentServiceCDCs()
      * @generated
      */
-    void setServiceCDCs( ServiceCDCs value );
+    void setParentServiceCDCs( ServiceCDCs value );
 
 } // ServiceCDC
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceCDCs.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceCDCs.java
index 3cebdc7d2003c33f51c3956d6ba84803b0d52081..d2a4bc093d3a38994a855e159f32462c4c84b001 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceCDCs.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceCDCs.java
@@ -31,7 +31,7 @@ import org.eclipse.emf.common.util.EList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDCs#getServiceCDC <em>Service CDC</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDCs#getServiceNS <em>Service NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDCs#getParentServiceNS <em>Parent Service NS</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceCDCs()
@@ -42,15 +42,15 @@ public interface ServiceCDCs extends NsdObject {
     /**
      * Returns the value of the '<em><b>Service CDC</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDC}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDC#getServiceCDCs <em>Service CD Cs</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDC#getParentServiceCDCs <em>Parent Service CD Cs</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Service CDC</em>' containment reference list.
      * @see #isSetServiceCDC()
      * @see #unsetServiceCDC()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceCDCs_ServiceCDC()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDC#getServiceCDCs
-     * @model opposite="serviceCDCs" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDC#getParentServiceCDCs
+     * @model opposite="parentServiceCDCs" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='ServiceCDC' namespace='##targetNamespace'"
      * @generated
      */
@@ -78,31 +78,27 @@ public interface ServiceCDCs extends NsdObject {
     boolean isSetServiceCDC();
 
     /**
-     * Returns the value of the '<em><b>Service NS</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Service NS</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNS#getServiceCDCs <em>Service CD Cs</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Service NS</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Service NS</em>' container reference.
-     * @see #setServiceNS(ServiceNS)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceCDCs_ServiceNS()
+     * @return the value of the '<em>Parent Service NS</em>' container reference.
+     * @see #setParentServiceNS(ServiceNS)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceCDCs_ParentServiceNS()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNS#getServiceCDCs
      * @model opposite="serviceCDCs" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    ServiceNS getServiceNS();
+    ServiceNS getParentServiceNS();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDCs#getServiceNS <em>Service NS</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDCs#getParentServiceNS <em>Parent Service NS</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Service NS</em>' container reference.
-     * @see #getServiceNS()
+     * @param value the new value of the '<em>Parent Service NS</em>' container reference.
+     * @see #getParentServiceNS()
      * @generated
      */
-    void setServiceNS( ServiceNS value );
+    void setParentServiceNS( ServiceNS value );
 
 } // ServiceCDCs
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceConstructedAttribute.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceConstructedAttribute.java
index 7a14aed71f4d0a422426b12f0f54440b22185385..635c5d537fc923ea3f9d3c0a7a171bf675ab5357 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceConstructedAttribute.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceConstructedAttribute.java
@@ -29,7 +29,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttribute#isTypeKindParameterized <em>Type Kind Parameterized</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttribute#getServiceConstructedAttribute <em>Service Constructed Attribute</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttribute#getParentServiceConstructedAttributes <em>Parent Service Constructed Attributes</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceConstructedAttribute()
@@ -89,31 +89,27 @@ public interface ServiceConstructedAttribute extends ConstructedAttribute {
     boolean isSetTypeKindParameterized();
 
     /**
-     * Returns the value of the '<em><b>Service Constructed Attribute</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Service Constructed Attributes</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttributes#getServiceConstructedAttribute <em>Service Constructed Attribute</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Service Constructed Attribute</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Service Constructed Attribute</em>' container reference.
-     * @see #setServiceConstructedAttribute(ServiceConstructedAttributes)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceConstructedAttribute_ServiceConstructedAttribute()
+     * @return the value of the '<em>Parent Service Constructed Attributes</em>' container reference.
+     * @see #setParentServiceConstructedAttributes(ServiceConstructedAttributes)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceConstructedAttribute_ParentServiceConstructedAttributes()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttributes#getServiceConstructedAttribute
      * @model opposite="serviceConstructedAttribute" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    ServiceConstructedAttributes getServiceConstructedAttribute();
+    ServiceConstructedAttributes getParentServiceConstructedAttributes();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttribute#getServiceConstructedAttribute <em>Service Constructed Attribute</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttribute#getParentServiceConstructedAttributes <em>Parent Service Constructed Attributes</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Service Constructed Attribute</em>' container reference.
-     * @see #getServiceConstructedAttribute()
+     * @param value the new value of the '<em>Parent Service Constructed Attributes</em>' container reference.
+     * @see #getParentServiceConstructedAttributes()
      * @generated
      */
-    void setServiceConstructedAttribute( ServiceConstructedAttributes value );
+    void setParentServiceConstructedAttributes( ServiceConstructedAttributes value );
 
 } // ServiceConstructedAttribute
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceConstructedAttributes.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceConstructedAttributes.java
index 6a506bdd37c696c3686ae570819d00ddab83297b..9103254a22ab838d30ff715a3df8353b6085e950 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceConstructedAttributes.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceConstructedAttributes.java
@@ -31,7 +31,7 @@ import org.eclipse.emf.common.util.EList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttributes#getServiceConstructedAttribute <em>Service Constructed Attribute</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttributes#getServiceNS <em>Service NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttributes#getParentServiceNS <em>Parent Service NS</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceConstructedAttributes()
@@ -42,15 +42,15 @@ public interface ServiceConstructedAttributes extends NsdObject {
     /**
      * Returns the value of the '<em><b>Service Constructed Attribute</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttribute}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttribute#getServiceConstructedAttribute <em>Service Constructed Attribute</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttribute#getParentServiceConstructedAttributes <em>Parent Service Constructed Attributes</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Service Constructed Attribute</em>' containment reference list.
      * @see #isSetServiceConstructedAttribute()
      * @see #unsetServiceConstructedAttribute()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceConstructedAttributes_ServiceConstructedAttribute()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttribute#getServiceConstructedAttribute
-     * @model opposite="serviceConstructedAttribute" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttribute#getParentServiceConstructedAttributes
+     * @model opposite="parentServiceConstructedAttributes" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='ServiceConstructedAttribute' namespace='##targetNamespace'"
      * @generated
      */
@@ -78,31 +78,27 @@ public interface ServiceConstructedAttributes extends NsdObject {
     boolean isSetServiceConstructedAttribute();
 
     /**
-     * Returns the value of the '<em><b>Service NS</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Service NS</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNS#getServiceConstructedAttributes <em>Service Constructed Attributes</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Service NS</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Service NS</em>' container reference.
-     * @see #setServiceNS(ServiceNS)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceConstructedAttributes_ServiceNS()
+     * @return the value of the '<em>Parent Service NS</em>' container reference.
+     * @see #setParentServiceNS(ServiceNS)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceConstructedAttributes_ParentServiceNS()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNS#getServiceConstructedAttributes
      * @model opposite="serviceConstructedAttributes" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    ServiceNS getServiceNS();
+    ServiceNS getParentServiceNS();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttributes#getServiceNS <em>Service NS</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttributes#getParentServiceNS <em>Parent Service NS</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Service NS</em>' container reference.
-     * @see #getServiceNS()
+     * @param value the new value of the '<em>Parent Service NS</em>' container reference.
+     * @see #getParentServiceNS()
      * @generated
      */
-    void setServiceNS( ServiceNS value );
+    void setParentServiceNS( ServiceNS value );
 
 } // ServiceConstructedAttributes
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceDataAttribute.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceDataAttribute.java
index 9ec2fedfe82459d03754cea5437df571323f84ba..c170a48341a2eaeeb4fd654fd275400447acad97 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceDataAttribute.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceDataAttribute.java
@@ -30,7 +30,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceDataAttribute#getFc <em>Fc</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceDataAttribute#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceDataAttribute#getServiceCDC <em>Service CDC</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceDataAttribute#getParentServiceCDC <em>Parent Service CDC</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceDataAttribute()
@@ -141,31 +141,27 @@ public interface ServiceDataAttribute extends DocumentedClass, AgPresenceConditi
     boolean isSetName();
 
     /**
-     * Returns the value of the '<em><b>Service CDC</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Service CDC</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDC#getServiceDataAttribute <em>Service Data Attribute</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Service CDC</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Service CDC</em>' container reference.
-     * @see #setServiceCDC(ServiceCDC)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceDataAttribute_ServiceCDC()
+     * @return the value of the '<em>Parent Service CDC</em>' container reference.
+     * @see #setParentServiceCDC(ServiceCDC)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceDataAttribute_ParentServiceCDC()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDC#getServiceDataAttribute
      * @model opposite="serviceDataAttribute" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    ServiceCDC getServiceCDC();
+    ServiceCDC getParentServiceCDC();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceDataAttribute#getServiceCDC <em>Service CDC</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceDataAttribute#getParentServiceCDC <em>Parent Service CDC</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Service CDC</em>' container reference.
-     * @see #getServiceCDC()
+     * @param value the new value of the '<em>Parent Service CDC</em>' container reference.
+     * @see #getParentServiceCDC()
      * @generated
      */
-    void setServiceCDC( ServiceCDC value );
+    void setParentServiceCDC( ServiceCDC value );
 
 } // ServiceDataAttribute
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceNS.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceNS.java
index f326757debeed529d47695929a2638486cc3c75d..210700782b39d0da50b5b86adbbf1f461945555f 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceNS.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceNS.java
@@ -44,7 +44,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
 public interface ServiceNS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc {
     /**
      * Returns the value of the '<em><b>Changes</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getServiceNS <em>Service NS</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getParentServiceNS <em>Parent Service NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Changes</em>' containment reference.
@@ -52,8 +52,8 @@ public interface ServiceNS extends Copyrighted, AgNSIdentification, AgUML, AgNSd
      * @see #unsetChanges()
      * @see #setChanges(Changes)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceNS_Changes()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getServiceNS
-     * @model opposite="serviceNS" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes#getParentServiceNS
+     * @model opposite="parentServiceNS" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='Changes' namespace='##targetNamespace'"
      * @generated
      */
@@ -96,7 +96,7 @@ public interface ServiceNS extends Copyrighted, AgNSIdentification, AgUML, AgNSd
 
     /**
      * Returns the value of the '<em><b>Functional Constraints</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getServiceNS <em>Service NS</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getParentServiceNS <em>Parent Service NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Functional Constraints</em>' containment reference.
@@ -104,8 +104,8 @@ public interface ServiceNS extends Copyrighted, AgNSIdentification, AgUML, AgNSd
      * @see #unsetFunctionalConstraints()
      * @see #setFunctionalConstraints(FunctionalConstraints)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceNS_FunctionalConstraints()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getServiceNS
-     * @model opposite="serviceNS" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints#getParentServiceNS
+     * @model opposite="parentServiceNS" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='FunctionalConstraints' namespace='##targetNamespace'"
      * @generated
      */
@@ -148,7 +148,7 @@ public interface ServiceNS extends Copyrighted, AgNSIdentification, AgUML, AgNSd
 
     /**
      * Returns the value of the '<em><b>Presence Conditions</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getServiceNS <em>Service NS</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getParentServiceNS <em>Parent Service NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Presence Conditions</em>' containment reference.
@@ -156,8 +156,8 @@ public interface ServiceNS extends Copyrighted, AgNSIdentification, AgUML, AgNSd
      * @see #unsetPresenceConditions()
      * @see #setPresenceConditions(PresenceConditions)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceNS_PresenceConditions()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getServiceNS
-     * @model opposite="serviceNS" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions#getParentServiceNS
+     * @model opposite="parentServiceNS" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='PresenceConditions' namespace='##targetNamespace'"
      * @generated
      */
@@ -200,7 +200,7 @@ public interface ServiceNS extends Copyrighted, AgNSIdentification, AgUML, AgNSd
 
     /**
      * Returns the value of the '<em><b>Abbreviations</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getServiceNS <em>Service NS</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getParentServiceNS <em>Parent Service NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Abbreviations</em>' containment reference.
@@ -208,8 +208,8 @@ public interface ServiceNS extends Copyrighted, AgNSIdentification, AgUML, AgNSd
      * @see #unsetAbbreviations()
      * @see #setAbbreviations(Abbreviations)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceNS_Abbreviations()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getServiceNS
-     * @model opposite="serviceNS" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations#getParentServiceNS
+     * @model opposite="parentServiceNS" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='Abbreviations' namespace='##targetNamespace'"
      * @generated
      */
@@ -252,7 +252,7 @@ public interface ServiceNS extends Copyrighted, AgNSIdentification, AgUML, AgNSd
 
     /**
      * Returns the value of the '<em><b>Service Type Realizations</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceTypeRealizations#getServiceNS <em>Service NS</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceTypeRealizations#getParentServiceNS <em>Parent Service NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Service Type Realizations</em>' containment reference.
@@ -260,8 +260,8 @@ public interface ServiceNS extends Copyrighted, AgNSIdentification, AgUML, AgNSd
      * @see #unsetServiceTypeRealizations()
      * @see #setServiceTypeRealizations(ServiceTypeRealizations)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceNS_ServiceTypeRealizations()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceTypeRealizations#getServiceNS
-     * @model opposite="serviceNS" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceTypeRealizations#getParentServiceNS
+     * @model opposite="parentServiceNS" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='ServiceTypeRealizations' namespace='##targetNamespace'"
      * @generated
      */
@@ -304,7 +304,7 @@ public interface ServiceNS extends Copyrighted, AgNSIdentification, AgUML, AgNSd
 
     /**
      * Returns the value of the '<em><b>Service Constructed Attributes</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttributes#getServiceNS <em>Service NS</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttributes#getParentServiceNS <em>Parent Service NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Service Constructed Attributes</em>' containment reference.
@@ -312,8 +312,8 @@ public interface ServiceNS extends Copyrighted, AgNSIdentification, AgUML, AgNSd
      * @see #unsetServiceConstructedAttributes()
      * @see #setServiceConstructedAttributes(ServiceConstructedAttributes)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceNS_ServiceConstructedAttributes()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttributes#getServiceNS
-     * @model opposite="serviceNS" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttributes#getParentServiceNS
+     * @model opposite="parentServiceNS" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='ServiceConstructedAttributes' namespace='##targetNamespace'"
      * @generated
      */
@@ -356,7 +356,7 @@ public interface ServiceNS extends Copyrighted, AgNSIdentification, AgUML, AgNSd
 
     /**
      * Returns the value of the '<em><b>Service CD Cs</b></em>' containment reference.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDCs#getServiceNS <em>Service NS</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDCs#getParentServiceNS <em>Parent Service NS</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Service CD Cs</em>' containment reference.
@@ -364,8 +364,8 @@ public interface ServiceNS extends Copyrighted, AgNSIdentification, AgUML, AgNSd
      * @see #unsetServiceCDCs()
      * @see #setServiceCDCs(ServiceCDCs)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceNS_ServiceCDCs()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDCs#getServiceNS
-     * @model opposite="serviceNS" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDCs#getParentServiceNS
+     * @model opposite="parentServiceNS" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='ServiceCDCs' namespace='##targetNamespace'"
      * @generated
      */
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceNsUsage.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceNsUsage.java
index c2367570e63182e9f4eed2e20e61668e8a3babc0..39aa459bf4aa7f9b45f7f9969f9e1ec9d95f8f46 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceNsUsage.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceNsUsage.java
@@ -31,7 +31,7 @@ import org.eclipse.emf.common.util.EList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNsUsage#getAppliesTo <em>Applies To</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNsUsage#getApplicableServiceNS <em>Applicable Service NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNsUsage#getParentApplicableServiceNS <em>Parent Applicable Service NS</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceNsUsage()
@@ -42,15 +42,15 @@ public interface ServiceNsUsage extends NsdObject, AgNSIdentification {
     /**
      * Returns the value of the '<em><b>Applies To</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AppliesToType}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AppliesToType#getServiceNsUsage <em>Service Ns Usage</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AppliesToType#getParentServiceNsUsage <em>Parent Service Ns Usage</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Applies To</em>' containment reference list.
      * @see #isSetAppliesTo()
      * @see #unsetAppliesTo()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceNsUsage_AppliesTo()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.AppliesToType#getServiceNsUsage
-     * @model opposite="serviceNsUsage" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.AppliesToType#getParentServiceNsUsage
+     * @model opposite="parentServiceNsUsage" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='AppliesTo' namespace='##targetNamespace'"
      * @generated
      */
@@ -78,31 +78,27 @@ public interface ServiceNsUsage extends NsdObject, AgNSIdentification {
     boolean isSetAppliesTo();
 
     /**
-     * Returns the value of the '<em><b>Applicable Service NS</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Applicable Service NS</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServiceNS#getServiceNsUsage <em>Service Ns Usage</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Applicable Service NS</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Applicable Service NS</em>' container reference.
-     * @see #setApplicableServiceNS(ApplicableServiceNS)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceNsUsage_ApplicableServiceNS()
+     * @return the value of the '<em>Parent Applicable Service NS</em>' container reference.
+     * @see #setParentApplicableServiceNS(ApplicableServiceNS)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceNsUsage_ParentApplicableServiceNS()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServiceNS#getServiceNsUsage
      * @model opposite="serviceNsUsage" unsettable="true" ordered="false"
      * @generated
      */
-    ApplicableServiceNS getApplicableServiceNS();
+    ApplicableServiceNS getParentApplicableServiceNS();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNsUsage#getApplicableServiceNS <em>Applicable Service NS</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNsUsage#getParentApplicableServiceNS <em>Parent Applicable Service NS</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Applicable Service NS</em>' container reference.
-     * @see #getApplicableServiceNS()
+     * @param value the new value of the '<em>Parent Applicable Service NS</em>' container reference.
+     * @see #getParentApplicableServiceNS()
      * @generated
      */
-    void setApplicableServiceNS( ApplicableServiceNS value );
+    void setParentApplicableServiceNS( ApplicableServiceNS value );
 
 } // ServiceNsUsage
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceParameter.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceParameter.java
index f35130467f8a5f92217d45c74f9e504436409762..77d7ac0a0da710bd9d65415a4ce69d4d92f00a30 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceParameter.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceParameter.java
@@ -29,7 +29,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceParameter#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceParameter#getCDC <em>CDC</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceParameter#getParentCDC <em>Parent CDC</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceParameter()
@@ -90,31 +90,27 @@ public interface ServiceParameter extends DocumentedClass, AgAttributeTypeAndVal
     boolean isSetName();
 
     /**
-     * Returns the value of the '<em><b>CDC</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent CDC</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getServiceParameter <em>Service Parameter</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>CDC</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>CDC</em>' container reference.
-     * @see #setCDC(CDC)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceParameter_CDC()
+     * @return the value of the '<em>Parent CDC</em>' container reference.
+     * @see #setParentCDC(CDC)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceParameter_ParentCDC()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getServiceParameter
      * @model opposite="serviceParameter" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    CDC getCDC();
+    CDC getParentCDC();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceParameter#getCDC <em>CDC</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceParameter#getParentCDC <em>Parent CDC</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>CDC</em>' container reference.
-     * @see #getCDC()
+     * @param value the new value of the '<em>Parent CDC</em>' container reference.
+     * @see #getParentCDC()
      * @generated
      */
-    void setCDC( CDC value );
+    void setParentCDC( CDC value );
 
 } // ServiceParameter
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceType.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceType.java
index 7b190ca7ac98e90c02937be071f75e004852279d..e87a6d039f0ff2b501a3d717857b3e36210c0149 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceType.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceType.java
@@ -29,7 +29,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceType#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceType#getApplicableServices <em>Applicable Services</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceType#getParentApplicableServices <em>Parent Applicable Services</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceType()
@@ -97,31 +97,27 @@ public interface ServiceType extends NsdObject {
     boolean isSetName();
 
     /**
-     * Returns the value of the '<em><b>Applicable Services</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Applicable Services</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServices#getService <em>Service</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Applicable Services</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Applicable Services</em>' container reference.
-     * @see #setApplicableServices(ApplicableServices)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceType_ApplicableServices()
+     * @return the value of the '<em>Parent Applicable Services</em>' container reference.
+     * @see #setParentApplicableServices(ApplicableServices)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceType_ParentApplicableServices()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServices#getService
      * @model opposite="service" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    ApplicableServices getApplicableServices();
+    ApplicableServices getParentApplicableServices();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceType#getApplicableServices <em>Applicable Services</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceType#getParentApplicableServices <em>Parent Applicable Services</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Applicable Services</em>' container reference.
-     * @see #getApplicableServices()
+     * @param value the new value of the '<em>Parent Applicable Services</em>' container reference.
+     * @see #getParentApplicableServices()
      * @generated
      */
-    void setApplicableServices( ApplicableServices value );
+    void setParentApplicableServices( ApplicableServices value );
 
 } // ServiceType
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceTypeRealizations.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceTypeRealizations.java
index 8e98ee7e2ee7427f7cfc7b90a1e0100d6eb3eed8..5369401f27fc1276f0165eacc91c4f4eebc80597 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceTypeRealizations.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceTypeRealizations.java
@@ -31,7 +31,7 @@ import org.eclipse.emf.common.util.EList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceTypeRealizations#getServiceTypeRealization <em>Service Type Realization</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceTypeRealizations#getServiceNS <em>Service NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceTypeRealizations#getParentServiceNS <em>Parent Service NS</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceTypeRealizations()
@@ -42,15 +42,15 @@ public interface ServiceTypeRealizations extends NsdObject {
     /**
      * Returns the value of the '<em><b>Service Type Realization</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute}.
-     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getServiceTypeRealizations <em>Service Type Realizations</em>}'.
+     * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getParentServiceTypeRealizations <em>Parent Service Type Realizations</em>}'.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
      * @return the value of the '<em>Service Type Realization</em>' containment reference list.
      * @see #isSetServiceTypeRealization()
      * @see #unsetServiceTypeRealization()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceTypeRealizations_ServiceTypeRealization()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getServiceTypeRealizations
-     * @model opposite="serviceTypeRealizations" containment="true" unsettable="true" ordered="false"
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getParentServiceTypeRealizations
+     * @model opposite="parentServiceTypeRealizations" containment="true" unsettable="true" ordered="false"
      *        extendedMetaData="kind='element' name='ServiceTypeRealization' namespace='##targetNamespace'"
      * @generated
      */
@@ -78,31 +78,27 @@ public interface ServiceTypeRealizations extends NsdObject {
     boolean isSetServiceTypeRealization();
 
     /**
-     * Returns the value of the '<em><b>Service NS</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Service NS</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNS#getServiceTypeRealizations <em>Service Type Realizations</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Service NS</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Service NS</em>' container reference.
-     * @see #setServiceNS(ServiceNS)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceTypeRealizations_ServiceNS()
+     * @return the value of the '<em>Parent Service NS</em>' container reference.
+     * @see #setParentServiceNS(ServiceNS)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceTypeRealizations_ParentServiceNS()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNS#getServiceTypeRealizations
      * @model opposite="serviceTypeRealizations" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    ServiceNS getServiceNS();
+    ServiceNS getParentServiceNS();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceTypeRealizations#getServiceNS <em>Service NS</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceTypeRealizations#getParentServiceNS <em>Parent Service NS</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Service NS</em>' container reference.
-     * @see #getServiceNS()
+     * @param value the new value of the '<em>Parent Service NS</em>' container reference.
+     * @see #getParentServiceNS()
      * @generated
      */
-    void setServiceNS( ServiceNS value );
+    void setParentServiceNS( ServiceNS value );
 
 } // ServiceTypeRealizations
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/SubDataAttribute.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/SubDataAttribute.java
index c4307d68c6e0197f7f791e711f260c5739739c50..5006a1d5e6584896c9cdde871474f188127815f9 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/SubDataAttribute.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/SubDataAttribute.java
@@ -29,7 +29,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getConstructedAttribute <em>Constructed Attribute</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getParentConstructedAttribute <em>Parent Constructed Attribute</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getRefersToPresenceCondition <em>Refers To Presence Condition</em>}</li>
  * </ul>
  *
@@ -91,32 +91,28 @@ public interface SubDataAttribute extends DocumentedClass, AgPresenceCondition,
     boolean isSetName();
 
     /**
-     * Returns the value of the '<em><b>Constructed Attribute</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent Constructed Attribute</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getSubDataAttribute <em>Sub Data Attribute</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>Constructed Attribute</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>Constructed Attribute</em>' container reference.
-     * @see #setConstructedAttribute(ConstructedAttribute)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataAttribute_ConstructedAttribute()
+     * @return the value of the '<em>Parent Constructed Attribute</em>' container reference.
+     * @see #setParentConstructedAttribute(ConstructedAttribute)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataAttribute_ParentConstructedAttribute()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute#getSubDataAttribute
      * @model opposite="subDataAttribute" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    ConstructedAttribute getConstructedAttribute();
+    ConstructedAttribute getParentConstructedAttribute();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getConstructedAttribute <em>Constructed Attribute</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getParentConstructedAttribute <em>Parent Constructed Attribute</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Constructed Attribute</em>' container reference.
-     * @see #getConstructedAttribute()
+     * @param value the new value of the '<em>Parent Constructed Attribute</em>' container reference.
+     * @see #getParentConstructedAttribute()
      * @generated
      */
-    void setConstructedAttribute( ConstructedAttribute value );
+    void setParentConstructedAttribute( ConstructedAttribute value );
 
     /**
      * Returns the value of the '<em><b>Refers To Presence Condition</b></em>' reference.
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/SubDataObject.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/SubDataObject.java
index 0e59653c324c04935a1bb0883ae1ee55a3a8b7ac..d920786be8608c9e918999fce68fc3f13b539f17 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/SubDataObject.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/SubDataObject.java
@@ -30,7 +30,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd;
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject#getName <em>Name</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject#getType <em>Type</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject#getCDC <em>CDC</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject#getParentCDC <em>Parent CDC</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject#getRefersToCDC <em>Refers To CDC</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject#getRefersToPresenceCondition <em>Refers To Presence Condition</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject#getRefersToSizeAttribute <em>Refers To Size Attribute</em>}</li>
@@ -145,32 +145,28 @@ public interface SubDataObject extends DocumentedClass, AgPresenceCondition, AgA
     boolean isSetType();
 
     /**
-     * Returns the value of the '<em><b>CDC</b></em>' container reference.
+     * Returns the value of the '<em><b>Parent CDC</b></em>' container reference.
      * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getSubDataObject <em>Sub Data Object</em>}'.
      * <!-- begin-user-doc -->
-     * <p>
-     * If the meaning of the '<em>CDC</em>' container reference isn't clear,
-     * there really should be more of a description here...
-     * </p>
      * <!-- end-user-doc -->
-     * @return the value of the '<em>CDC</em>' container reference.
-     * @see #setCDC(CDC)
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataObject_CDC()
+     * @return the value of the '<em>Parent CDC</em>' container reference.
+     * @see #setParentCDC(CDC)
+     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataObject_ParentCDC()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC#getSubDataObject
      * @model opposite="subDataObject" resolveProxies="false" unsettable="true" ordered="false"
      * @generated
      */
-    CDC getCDC();
+    CDC getParentCDC();
 
     /**
-     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject#getCDC <em>CDC</em>}' container reference.
+     * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject#getParentCDC <em>Parent CDC</em>}' container reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @param value the new value of the '<em>CDC</em>' container reference.
-     * @see #getCDC()
+     * @param value the new value of the '<em>Parent CDC</em>' container reference.
+     * @see #getParentCDC()
      * @generated
      */
-    void setCDC( CDC value );
+    void setParentCDC( CDC value );
 
     /**
      * Returns the value of the '<em><b>Refers To CDC</b></em>' reference.
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbbreviationImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbbreviationImpl.java
index 6043d428410339ac376da2518e85d7226341f088..bd09b9f8e355ab7cd3f49461cabf2925585f6de8 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbbreviationImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbbreviationImpl.java
@@ -42,7 +42,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AbbreviationImpl#getDescID <em>Desc ID</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AbbreviationImpl#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AbbreviationImpl#getAbbreviations <em>Abbreviations</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AbbreviationImpl#getParentAbbreviations <em>Parent Abbreviations</em>}</li>
  * </ul>
  *
  * @generated
@@ -235,8 +235,8 @@ public class AbbreviationImpl extends NsdObjectImpl implements Abbreviation {
      * @generated
      */
     @Override
-    public Abbreviations getAbbreviations() {
-        if( eContainerFeatureID() != NsdPackage.ABBREVIATION__ABBREVIATIONS ) return null;
+    public Abbreviations getParentAbbreviations() {
+        if( eContainerFeatureID() != NsdPackage.ABBREVIATION__PARENT_ABBREVIATIONS ) return null;
         return ( Abbreviations ) eInternalContainer();
     }
 
@@ -245,8 +245,10 @@ public class AbbreviationImpl extends NsdObjectImpl implements Abbreviation {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetAbbreviations( Abbreviations newAbbreviations, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newAbbreviations, NsdPackage.ABBREVIATION__ABBREVIATIONS, msgs );
+    public NotificationChain basicSetParentAbbreviations( Abbreviations newParentAbbreviations,
+            NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentAbbreviations,
+                NsdPackage.ABBREVIATION__PARENT_ABBREVIATIONS, msgs );
         return msgs;
     }
 
@@ -256,23 +258,24 @@ public class AbbreviationImpl extends NsdObjectImpl implements Abbreviation {
      * @generated
      */
     @Override
-    public void setAbbreviations( Abbreviations newAbbreviations ) {
-        if( newAbbreviations != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.ABBREVIATION__ABBREVIATIONS && newAbbreviations != null ) ) {
-            if( EcoreUtil.isAncestor( this, newAbbreviations ) )
+    public void setParentAbbreviations( Abbreviations newParentAbbreviations ) {
+        if( newParentAbbreviations != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.ABBREVIATION__PARENT_ABBREVIATIONS
+                        && newParentAbbreviations != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentAbbreviations ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newAbbreviations != null )
-                msgs = ( ( InternalEObject ) newAbbreviations ).eInverseAdd( this,
+            if( newParentAbbreviations != null )
+                msgs = ( ( InternalEObject ) newParentAbbreviations ).eInverseAdd( this,
                         NsdPackage.ABBREVIATIONS__ABBREVIATION, Abbreviations.class, msgs );
-            msgs = basicSetAbbreviations( newAbbreviations, msgs );
+            msgs = basicSetParentAbbreviations( newParentAbbreviations, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.ABBREVIATION__ABBREVIATIONS,
-                    newAbbreviations, newAbbreviations ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.ABBREVIATION__PARENT_ABBREVIATIONS,
+                    newParentAbbreviations, newParentAbbreviations ) );
     }
 
     /**
@@ -283,10 +286,10 @@ public class AbbreviationImpl extends NsdObjectImpl implements Abbreviation {
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.ABBREVIATION__ABBREVIATIONS:
+        case NsdPackage.ABBREVIATION__PARENT_ABBREVIATIONS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetAbbreviations( ( Abbreviations ) otherEnd, msgs );
+            return basicSetParentAbbreviations( ( Abbreviations ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -299,8 +302,8 @@ public class AbbreviationImpl extends NsdObjectImpl implements Abbreviation {
     @Override
     public NotificationChain eInverseRemove( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.ABBREVIATION__ABBREVIATIONS:
-            return basicSetAbbreviations( null, msgs );
+        case NsdPackage.ABBREVIATION__PARENT_ABBREVIATIONS:
+            return basicSetParentAbbreviations( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -313,7 +316,7 @@ public class AbbreviationImpl extends NsdObjectImpl implements Abbreviation {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.ABBREVIATION__ABBREVIATIONS:
+        case NsdPackage.ABBREVIATION__PARENT_ABBREVIATIONS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.ABBREVIATIONS__ABBREVIATION,
                     Abbreviations.class, msgs );
         }
@@ -332,8 +335,8 @@ public class AbbreviationImpl extends NsdObjectImpl implements Abbreviation {
             return getDescID();
         case NsdPackage.ABBREVIATION__NAME:
             return getName();
-        case NsdPackage.ABBREVIATION__ABBREVIATIONS:
-            return getAbbreviations();
+        case NsdPackage.ABBREVIATION__PARENT_ABBREVIATIONS:
+            return getParentAbbreviations();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -352,8 +355,8 @@ public class AbbreviationImpl extends NsdObjectImpl implements Abbreviation {
         case NsdPackage.ABBREVIATION__NAME:
             setName( ( String ) newValue );
             return;
-        case NsdPackage.ABBREVIATION__ABBREVIATIONS:
-            setAbbreviations( ( Abbreviations ) newValue );
+        case NsdPackage.ABBREVIATION__PARENT_ABBREVIATIONS:
+            setParentAbbreviations( ( Abbreviations ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -373,8 +376,8 @@ public class AbbreviationImpl extends NsdObjectImpl implements Abbreviation {
         case NsdPackage.ABBREVIATION__NAME:
             unsetName();
             return;
-        case NsdPackage.ABBREVIATION__ABBREVIATIONS:
-            setAbbreviations( ( Abbreviations ) null );
+        case NsdPackage.ABBREVIATION__PARENT_ABBREVIATIONS:
+            setParentAbbreviations( ( Abbreviations ) null );
             return;
         }
         super.eUnset( featureID );
@@ -392,8 +395,8 @@ public class AbbreviationImpl extends NsdObjectImpl implements Abbreviation {
             return isSetDescID();
         case NsdPackage.ABBREVIATION__NAME:
             return isSetName();
-        case NsdPackage.ABBREVIATION__ABBREVIATIONS:
-            return getAbbreviations() != null;
+        case NsdPackage.ABBREVIATION__PARENT_ABBREVIATIONS:
+            return getParentAbbreviations() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbbreviationsImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbbreviationsImpl.java
index a8370a9d168cdd4dbe18dcec59ee8f03b2dcdfff..27daedad034395db8b7f1d326f0478dafff3857c 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbbreviationsImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbbreviationsImpl.java
@@ -49,8 +49,8 @@ import org.eclipse.emf.ecore.util.InternalEList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AbbreviationsImpl#getAbbreviation <em>Abbreviation</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AbbreviationsImpl#getNS <em>NS</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AbbreviationsImpl#getServiceNS <em>Service NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AbbreviationsImpl#getParentNS <em>Parent NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AbbreviationsImpl#getParentServiceNS <em>Parent Service NS</em>}</li>
  * </ul>
  *
  * @generated
@@ -94,7 +94,7 @@ public class AbbreviationsImpl extends NsdObjectImpl implements Abbreviations {
     public EList< Abbreviation > getAbbreviation() {
         if( abbreviation == null ) {
             abbreviation = new EObjectContainmentWithInverseEList.Unsettable< Abbreviation >( Abbreviation.class, this,
-                    NsdPackage.ABBREVIATIONS__ABBREVIATION, NsdPackage.ABBREVIATION__ABBREVIATIONS );
+                    NsdPackage.ABBREVIATIONS__ABBREVIATION, NsdPackage.ABBREVIATION__PARENT_ABBREVIATIONS );
         }
         return abbreviation;
     }
@@ -125,8 +125,8 @@ public class AbbreviationsImpl extends NsdObjectImpl implements Abbreviations {
      * @generated
      */
     @Override
-    public NS getNS() {
-        if( eContainerFeatureID() != NsdPackage.ABBREVIATIONS__NS ) return null;
+    public NS getParentNS() {
+        if( eContainerFeatureID() != NsdPackage.ABBREVIATIONS__PARENT_NS ) return null;
         return ( NS ) eInternalContainer();
     }
 
@@ -135,8 +135,8 @@ public class AbbreviationsImpl extends NsdObjectImpl implements Abbreviations {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetNS( NS newNS, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newNS, NsdPackage.ABBREVIATIONS__NS, msgs );
+    public NotificationChain basicSetParentNS( NS newParentNS, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentNS, NsdPackage.ABBREVIATIONS__PARENT_NS, msgs );
         return msgs;
     }
 
@@ -146,21 +146,23 @@ public class AbbreviationsImpl extends NsdObjectImpl implements Abbreviations {
      * @generated
      */
     @Override
-    public void setNS( NS newNS ) {
-        if( newNS != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.ABBREVIATIONS__NS && newNS != null ) ) {
-            if( EcoreUtil.isAncestor( this, newNS ) )
+    public void setParentNS( NS newParentNS ) {
+        if( newParentNS != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.ABBREVIATIONS__PARENT_NS && newParentNS != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentNS ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newNS != null )
-                msgs = ( ( InternalEObject ) newNS ).eInverseAdd( this, NsdPackage.NS__ABBREVIATIONS, NS.class, msgs );
-            msgs = basicSetNS( newNS, msgs );
+            if( newParentNS != null )
+                msgs = ( ( InternalEObject ) newParentNS ).eInverseAdd( this, NsdPackage.NS__ABBREVIATIONS, NS.class,
+                        msgs );
+            msgs = basicSetParentNS( newParentNS, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.ABBREVIATIONS__NS, newNS, newNS ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.ABBREVIATIONS__PARENT_NS, newParentNS,
+                    newParentNS ) );
     }
 
     /**
@@ -169,8 +171,8 @@ public class AbbreviationsImpl extends NsdObjectImpl implements Abbreviations {
      * @generated
      */
     @Override
-    public ServiceNS getServiceNS() {
-        if( eContainerFeatureID() != NsdPackage.ABBREVIATIONS__SERVICE_NS ) return null;
+    public ServiceNS getParentServiceNS() {
+        if( eContainerFeatureID() != NsdPackage.ABBREVIATIONS__PARENT_SERVICE_NS ) return null;
         return ( ServiceNS ) eInternalContainer();
     }
 
@@ -179,8 +181,9 @@ public class AbbreviationsImpl extends NsdObjectImpl implements Abbreviations {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetServiceNS( ServiceNS newServiceNS, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newServiceNS, NsdPackage.ABBREVIATIONS__SERVICE_NS, msgs );
+    public NotificationChain basicSetParentServiceNS( ServiceNS newParentServiceNS, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentServiceNS, NsdPackage.ABBREVIATIONS__PARENT_SERVICE_NS,
+                msgs );
         return msgs;
     }
 
@@ -190,23 +193,24 @@ public class AbbreviationsImpl extends NsdObjectImpl implements Abbreviations {
      * @generated
      */
     @Override
-    public void setServiceNS( ServiceNS newServiceNS ) {
-        if( newServiceNS != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.ABBREVIATIONS__SERVICE_NS && newServiceNS != null ) ) {
-            if( EcoreUtil.isAncestor( this, newServiceNS ) )
+    public void setParentServiceNS( ServiceNS newParentServiceNS ) {
+        if( newParentServiceNS != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.ABBREVIATIONS__PARENT_SERVICE_NS
+                        && newParentServiceNS != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentServiceNS ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newServiceNS != null )
-                msgs = ( ( InternalEObject ) newServiceNS ).eInverseAdd( this, NsdPackage.SERVICE_NS__ABBREVIATIONS,
-                        ServiceNS.class, msgs );
-            msgs = basicSetServiceNS( newServiceNS, msgs );
+            if( newParentServiceNS != null )
+                msgs = ( ( InternalEObject ) newParentServiceNS ).eInverseAdd( this,
+                        NsdPackage.SERVICE_NS__ABBREVIATIONS, ServiceNS.class, msgs );
+            msgs = basicSetParentServiceNS( newParentServiceNS, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.ABBREVIATIONS__SERVICE_NS, newServiceNS,
-                    newServiceNS ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.ABBREVIATIONS__PARENT_SERVICE_NS,
+                    newParentServiceNS, newParentServiceNS ) );
     }
 
     /**
@@ -221,14 +225,14 @@ public class AbbreviationsImpl extends NsdObjectImpl implements Abbreviations {
         case NsdPackage.ABBREVIATIONS__ABBREVIATION:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getAbbreviation() ).basicAdd( otherEnd,
                     msgs );
-        case NsdPackage.ABBREVIATIONS__NS:
+        case NsdPackage.ABBREVIATIONS__PARENT_NS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetNS( ( NS ) otherEnd, msgs );
-        case NsdPackage.ABBREVIATIONS__SERVICE_NS:
+            return basicSetParentNS( ( NS ) otherEnd, msgs );
+        case NsdPackage.ABBREVIATIONS__PARENT_SERVICE_NS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetServiceNS( ( ServiceNS ) otherEnd, msgs );
+            return basicSetParentServiceNS( ( ServiceNS ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -243,10 +247,10 @@ public class AbbreviationsImpl extends NsdObjectImpl implements Abbreviations {
         switch( featureID ) {
         case NsdPackage.ABBREVIATIONS__ABBREVIATION:
             return ( ( InternalEList< ? > ) getAbbreviation() ).basicRemove( otherEnd, msgs );
-        case NsdPackage.ABBREVIATIONS__NS:
-            return basicSetNS( null, msgs );
-        case NsdPackage.ABBREVIATIONS__SERVICE_NS:
-            return basicSetServiceNS( null, msgs );
+        case NsdPackage.ABBREVIATIONS__PARENT_NS:
+            return basicSetParentNS( null, msgs );
+        case NsdPackage.ABBREVIATIONS__PARENT_SERVICE_NS:
+            return basicSetParentServiceNS( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -259,9 +263,9 @@ public class AbbreviationsImpl extends NsdObjectImpl implements Abbreviations {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.ABBREVIATIONS__NS:
+        case NsdPackage.ABBREVIATIONS__PARENT_NS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.NS__ABBREVIATIONS, NS.class, msgs );
-        case NsdPackage.ABBREVIATIONS__SERVICE_NS:
+        case NsdPackage.ABBREVIATIONS__PARENT_SERVICE_NS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.SERVICE_NS__ABBREVIATIONS, ServiceNS.class,
                     msgs );
         }
@@ -278,10 +282,10 @@ public class AbbreviationsImpl extends NsdObjectImpl implements Abbreviations {
         switch( featureID ) {
         case NsdPackage.ABBREVIATIONS__ABBREVIATION:
             return getAbbreviation();
-        case NsdPackage.ABBREVIATIONS__NS:
-            return getNS();
-        case NsdPackage.ABBREVIATIONS__SERVICE_NS:
-            return getServiceNS();
+        case NsdPackage.ABBREVIATIONS__PARENT_NS:
+            return getParentNS();
+        case NsdPackage.ABBREVIATIONS__PARENT_SERVICE_NS:
+            return getParentServiceNS();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -299,11 +303,11 @@ public class AbbreviationsImpl extends NsdObjectImpl implements Abbreviations {
             getAbbreviation().clear();
             getAbbreviation().addAll( ( Collection< ? extends Abbreviation > ) newValue );
             return;
-        case NsdPackage.ABBREVIATIONS__NS:
-            setNS( ( NS ) newValue );
+        case NsdPackage.ABBREVIATIONS__PARENT_NS:
+            setParentNS( ( NS ) newValue );
             return;
-        case NsdPackage.ABBREVIATIONS__SERVICE_NS:
-            setServiceNS( ( ServiceNS ) newValue );
+        case NsdPackage.ABBREVIATIONS__PARENT_SERVICE_NS:
+            setParentServiceNS( ( ServiceNS ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -320,11 +324,11 @@ public class AbbreviationsImpl extends NsdObjectImpl implements Abbreviations {
         case NsdPackage.ABBREVIATIONS__ABBREVIATION:
             unsetAbbreviation();
             return;
-        case NsdPackage.ABBREVIATIONS__NS:
-            setNS( ( NS ) null );
+        case NsdPackage.ABBREVIATIONS__PARENT_NS:
+            setParentNS( ( NS ) null );
             return;
-        case NsdPackage.ABBREVIATIONS__SERVICE_NS:
-            setServiceNS( ( ServiceNS ) null );
+        case NsdPackage.ABBREVIATIONS__PARENT_SERVICE_NS:
+            setParentServiceNS( ( ServiceNS ) null );
             return;
         }
         super.eUnset( featureID );
@@ -340,10 +344,10 @@ public class AbbreviationsImpl extends NsdObjectImpl implements Abbreviations {
         switch( featureID ) {
         case NsdPackage.ABBREVIATIONS__ABBREVIATION:
             return isSetAbbreviation();
-        case NsdPackage.ABBREVIATIONS__NS:
-            return getNS() != null;
-        case NsdPackage.ABBREVIATIONS__SERVICE_NS:
-            return getServiceNS() != null;
+        case NsdPackage.ABBREVIATIONS__PARENT_NS:
+            return getParentNS() != null;
+        case NsdPackage.ABBREVIATIONS__PARENT_SERVICE_NS:
+            return getParentServiceNS() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbstractLNClassImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbstractLNClassImpl.java
index 3e56634d002473746fe8bb2dc4571c5ec1185f22..b55bdd5ca43145bd902178ca47fa51da98fd6772 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbstractLNClassImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbstractLNClassImpl.java
@@ -46,7 +46,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AbstractLNClassImpl#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AbstractLNClassImpl#getLNClasses <em>LN Classes</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AbstractLNClassImpl#getParentLNClasses <em>Parent LN Classes</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AbstractLNClassImpl#getReferredByAnyLNClass <em>Referred By Any LN Class</em>}</li>
  * </ul>
  *
@@ -169,8 +169,8 @@ public class AbstractLNClassImpl extends AnyLNClassImpl implements AbstractLNCla
      * @generated
      */
     @Override
-    public LNClasses getLNClasses() {
-        if( eContainerFeatureID() != NsdPackage.ABSTRACT_LN_CLASS__LN_CLASSES ) return null;
+    public LNClasses getParentLNClasses() {
+        if( eContainerFeatureID() != NsdPackage.ABSTRACT_LN_CLASS__PARENT_LN_CLASSES ) return null;
         return ( LNClasses ) eInternalContainer();
     }
 
@@ -179,8 +179,9 @@ public class AbstractLNClassImpl extends AnyLNClassImpl implements AbstractLNCla
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetLNClasses( LNClasses newLNClasses, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newLNClasses, NsdPackage.ABSTRACT_LN_CLASS__LN_CLASSES, msgs );
+    public NotificationChain basicSetParentLNClasses( LNClasses newParentLNClasses, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentLNClasses,
+                NsdPackage.ABSTRACT_LN_CLASS__PARENT_LN_CLASSES, msgs );
         return msgs;
     }
 
@@ -190,23 +191,24 @@ public class AbstractLNClassImpl extends AnyLNClassImpl implements AbstractLNCla
      * @generated
      */
     @Override
-    public void setLNClasses( LNClasses newLNClasses ) {
-        if( newLNClasses != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.ABSTRACT_LN_CLASS__LN_CLASSES && newLNClasses != null ) ) {
-            if( EcoreUtil.isAncestor( this, newLNClasses ) )
+    public void setParentLNClasses( LNClasses newParentLNClasses ) {
+        if( newParentLNClasses != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.ABSTRACT_LN_CLASS__PARENT_LN_CLASSES
+                        && newParentLNClasses != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentLNClasses ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newLNClasses != null )
-                msgs = ( ( InternalEObject ) newLNClasses ).eInverseAdd( this, NsdPackage.LN_CLASSES__ABSTRACT_LN_CLASS,
-                        LNClasses.class, msgs );
-            msgs = basicSetLNClasses( newLNClasses, msgs );
+            if( newParentLNClasses != null )
+                msgs = ( ( InternalEObject ) newParentLNClasses ).eInverseAdd( this,
+                        NsdPackage.LN_CLASSES__ABSTRACT_LN_CLASS, LNClasses.class, msgs );
+            msgs = basicSetParentLNClasses( newParentLNClasses, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.ABSTRACT_LN_CLASS__LN_CLASSES,
-                    newLNClasses, newLNClasses ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.ABSTRACT_LN_CLASS__PARENT_LN_CLASSES,
+                    newParentLNClasses, newParentLNClasses ) );
     }
 
     /**
@@ -253,10 +255,10 @@ public class AbstractLNClassImpl extends AnyLNClassImpl implements AbstractLNCla
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.ABSTRACT_LN_CLASS__LN_CLASSES:
+        case NsdPackage.ABSTRACT_LN_CLASS__PARENT_LN_CLASSES:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetLNClasses( ( LNClasses ) otherEnd, msgs );
+            return basicSetParentLNClasses( ( LNClasses ) otherEnd, msgs );
         case NsdPackage.ABSTRACT_LN_CLASS__REFERRED_BY_ANY_LN_CLASS:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getReferredByAnyLNClass() )
                     .basicAdd( otherEnd, msgs );
@@ -272,8 +274,8 @@ public class AbstractLNClassImpl extends AnyLNClassImpl implements AbstractLNCla
     @Override
     public NotificationChain eInverseRemove( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.ABSTRACT_LN_CLASS__LN_CLASSES:
-            return basicSetLNClasses( null, msgs );
+        case NsdPackage.ABSTRACT_LN_CLASS__PARENT_LN_CLASSES:
+            return basicSetParentLNClasses( null, msgs );
         case NsdPackage.ABSTRACT_LN_CLASS__REFERRED_BY_ANY_LN_CLASS:
             return ( ( InternalEList< ? > ) getReferredByAnyLNClass() ).basicRemove( otherEnd, msgs );
         }
@@ -288,7 +290,7 @@ public class AbstractLNClassImpl extends AnyLNClassImpl implements AbstractLNCla
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.ABSTRACT_LN_CLASS__LN_CLASSES:
+        case NsdPackage.ABSTRACT_LN_CLASS__PARENT_LN_CLASSES:
             return eInternalContainer().eInverseRemove( this, NsdPackage.LN_CLASSES__ABSTRACT_LN_CLASS, LNClasses.class,
                     msgs );
         }
@@ -305,8 +307,8 @@ public class AbstractLNClassImpl extends AnyLNClassImpl implements AbstractLNCla
         switch( featureID ) {
         case NsdPackage.ABSTRACT_LN_CLASS__NAME:
             return getName();
-        case NsdPackage.ABSTRACT_LN_CLASS__LN_CLASSES:
-            return getLNClasses();
+        case NsdPackage.ABSTRACT_LN_CLASS__PARENT_LN_CLASSES:
+            return getParentLNClasses();
         case NsdPackage.ABSTRACT_LN_CLASS__REFERRED_BY_ANY_LN_CLASS:
             return getReferredByAnyLNClass();
         }
@@ -325,8 +327,8 @@ public class AbstractLNClassImpl extends AnyLNClassImpl implements AbstractLNCla
         case NsdPackage.ABSTRACT_LN_CLASS__NAME:
             setName( ( String ) newValue );
             return;
-        case NsdPackage.ABSTRACT_LN_CLASS__LN_CLASSES:
-            setLNClasses( ( LNClasses ) newValue );
+        case NsdPackage.ABSTRACT_LN_CLASS__PARENT_LN_CLASSES:
+            setParentLNClasses( ( LNClasses ) newValue );
             return;
         case NsdPackage.ABSTRACT_LN_CLASS__REFERRED_BY_ANY_LN_CLASS:
             getReferredByAnyLNClass().clear();
@@ -347,8 +349,8 @@ public class AbstractLNClassImpl extends AnyLNClassImpl implements AbstractLNCla
         case NsdPackage.ABSTRACT_LN_CLASS__NAME:
             unsetName();
             return;
-        case NsdPackage.ABSTRACT_LN_CLASS__LN_CLASSES:
-            setLNClasses( ( LNClasses ) null );
+        case NsdPackage.ABSTRACT_LN_CLASS__PARENT_LN_CLASSES:
+            setParentLNClasses( ( LNClasses ) null );
             return;
         case NsdPackage.ABSTRACT_LN_CLASS__REFERRED_BY_ANY_LN_CLASS:
             unsetReferredByAnyLNClass();
@@ -367,8 +369,8 @@ public class AbstractLNClassImpl extends AnyLNClassImpl implements AbstractLNCla
         switch( featureID ) {
         case NsdPackage.ABSTRACT_LN_CLASS__NAME:
             return isSetName();
-        case NsdPackage.ABSTRACT_LN_CLASS__LN_CLASSES:
-            return getLNClasses() != null;
+        case NsdPackage.ABSTRACT_LN_CLASS__PARENT_LN_CLASSES:
+            return getParentLNClasses() != null;
         case NsdPackage.ABSTRACT_LN_CLASS__REFERRED_BY_ANY_LN_CLASS:
             return isSetReferredByAnyLNClass();
         }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AnyLNClassImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AnyLNClassImpl.java
index 87043bca53e26788f781021073b5953c9a06b4e6..c82c41c1da60d00564002d7208f3be3d36dfeb50 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AnyLNClassImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AnyLNClassImpl.java
@@ -25,6 +25,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject;
 import fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses;
 import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage;
 import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole;
+import fr.centralesupelec.edf.riseclipse.util.RiseClipseFatalException;
 
 import java.lang.reflect.InvocationTargetException;
 import java.util.Collection;
@@ -142,7 +143,7 @@ public abstract class AnyLNClassImpl extends TitledClassImpl implements AnyLNCla
     public EList< DataObject > getDataObject() {
         if( dataObject == null ) {
             dataObject = new EObjectContainmentWithInverseEList.Unsettable< DataObject >( DataObject.class, this,
-                    NsdPackage.ANY_LN_CLASS__DATA_OBJECT, NsdPackage.DATA_OBJECT__ANY_LN_CLASS );
+                    NsdPackage.ANY_LN_CLASS__DATA_OBJECT, NsdPackage.DATA_OBJECT__PARENT_ANY_LN_CLASS );
         }
         return dataObject;
     }
@@ -353,9 +354,8 @@ public abstract class AnyLNClassImpl extends TitledClassImpl implements AnyLNCla
      * @generated NOT
      */
     @Override
-    public LNClasses getLNClasses() {
-        // TODO: use a RiseClipseException ?
-        throw new UnsupportedOperationException();
+    public LNClasses getParentLNClasses() {
+        throw new RiseClipseFatalException( "AnyLNClass.getParentLNClasses() called", null );
     }
 
     /**
@@ -485,8 +485,8 @@ public abstract class AnyLNClassImpl extends TitledClassImpl implements AnyLNCla
         switch( operationID ) {
         case NsdPackage.ANY_LN_CLASS___GET_NAME:
             return getName();
-        case NsdPackage.ANY_LN_CLASS___GET_LN_CLASSES:
-            return getLNClasses();
+        case NsdPackage.ANY_LN_CLASS___GET_PARENT_LN_CLASSES:
+            return getParentLNClasses();
         }
         return super.eInvoke( operationID, arguments );
     }
@@ -521,7 +521,7 @@ public abstract class AnyLNClassImpl extends TitledClassImpl implements AnyLNCla
 
             // This code assumes that the referred AbstractLNClass is in the same NS
             // TODO: check that it is right
-            getLNClasses()
+            getParentLNClasses()
                     .getAbstractLNClass()
                     .stream()
                     .filter( abstractLNClass -> abstractLNClass.getName().equals( getBase() ) )
@@ -530,12 +530,12 @@ public abstract class AnyLNClassImpl extends TitledClassImpl implements AnyLNCla
 
             if( isSetRefersToAbstractLNClass() ) {
                 console.verbose( "AbstractLNClass (name: " + getBase() + ") refers by AnyLNClass (name: " + getName()
-                        + ") in NS (id:" + getLNClasses().getNS().getId() + ") found in NS (id:"
-                        + getRefersToAbstractLNClass().getLNClasses().getNS().getId() + ")" );
+                        + ") in NS (id:" + getParentLNClasses().getParentNS().getId() + ") found in NS (id:"
+                        + getRefersToAbstractLNClass().getParentLNClasses().getParentNS().getId() + ")" );
             }
             else {
                 console.error( "AbstractLNClass (name: " + getBase() + ") refers by AnyLNClass (name: " + getName()
-                        + ") in NS (id:" + getLNClasses().getNS().getId() + ") is unknown" );
+                        + ") in NS (id:" + getParentLNClasses().getParentNS().getId() + ") is unknown" );
             }
         }
 
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ApplicableServiceNSImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ApplicableServiceNSImpl.java
index 0a135f2877be9e981af063359a61f16a71d3184a..a635fb50466863b12da267856b7c4f531039848e 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ApplicableServiceNSImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ApplicableServiceNSImpl.java
@@ -152,7 +152,7 @@ public class ApplicableServiceNSImpl extends CopyrightedImpl implements Applicab
         if( serviceNsUsage == null ) {
             serviceNsUsage = new EObjectContainmentWithInverseEList.Unsettable< ServiceNsUsage >( ServiceNsUsage.class,
                     this, NsdPackage.APPLICABLE_SERVICE_NS__SERVICE_NS_USAGE,
-                    NsdPackage.SERVICE_NS_USAGE__APPLICABLE_SERVICE_NS );
+                    NsdPackage.SERVICE_NS_USAGE__PARENT_APPLICABLE_SERVICE_NS );
         }
         return serviceNsUsage;
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ApplicableServicesImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ApplicableServicesImpl.java
index bb9725cf2bde349395519c23eeb4cf136c4d5c63..b3cb2b5ae5ba38d3f06a783f6b0f1aa086c59787 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ApplicableServicesImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ApplicableServicesImpl.java
@@ -50,7 +50,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ApplicableServicesImpl#getService <em>Service</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ApplicableServicesImpl#getDataSetMemberOf <em>Data Set Member Of</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ApplicableServicesImpl#getFunctionalConstraint <em>Functional Constraint</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ApplicableServicesImpl#getParentFunctionalConstraint <em>Parent Functional Constraint</em>}</li>
  * </ul>
  *
  * @generated
@@ -104,7 +104,7 @@ public class ApplicableServicesImpl extends NsdObjectImpl implements ApplicableS
     public EList< ServiceType > getService() {
         if( service == null ) {
             service = new EObjectContainmentWithInverseEList.Unsettable< ServiceType >( ServiceType.class, this,
-                    NsdPackage.APPLICABLE_SERVICES__SERVICE, NsdPackage.SERVICE_TYPE__APPLICABLE_SERVICES );
+                    NsdPackage.APPLICABLE_SERVICES__SERVICE, NsdPackage.SERVICE_TYPE__PARENT_APPLICABLE_SERVICES );
         }
         return service;
     }
@@ -139,7 +139,7 @@ public class ApplicableServicesImpl extends NsdObjectImpl implements ApplicableS
         if( dataSetMemberOf == null ) {
             dataSetMemberOf = new EObjectContainmentWithInverseEList.Unsettable< DataSetMemberOf >(
                     DataSetMemberOf.class, this, NsdPackage.APPLICABLE_SERVICES__DATA_SET_MEMBER_OF,
-                    NsdPackage.DATA_SET_MEMBER_OF__APPLICABLE_SERVICES );
+                    NsdPackage.DATA_SET_MEMBER_OF__PARENT_APPLICABLE_SERVICES );
         }
         return dataSetMemberOf;
     }
@@ -170,8 +170,8 @@ public class ApplicableServicesImpl extends NsdObjectImpl implements ApplicableS
      * @generated
      */
     @Override
-    public FunctionalConstraint getFunctionalConstraint() {
-        if( eContainerFeatureID() != NsdPackage.APPLICABLE_SERVICES__FUNCTIONAL_CONSTRAINT ) return null;
+    public FunctionalConstraint getParentFunctionalConstraint() {
+        if( eContainerFeatureID() != NsdPackage.APPLICABLE_SERVICES__PARENT_FUNCTIONAL_CONSTRAINT ) return null;
         return ( FunctionalConstraint ) eInternalContainer();
     }
 
@@ -180,10 +180,10 @@ public class ApplicableServicesImpl extends NsdObjectImpl implements ApplicableS
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetFunctionalConstraint( FunctionalConstraint newFunctionalConstraint,
+    public NotificationChain basicSetParentFunctionalConstraint( FunctionalConstraint newParentFunctionalConstraint,
             NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newFunctionalConstraint,
-                NsdPackage.APPLICABLE_SERVICES__FUNCTIONAL_CONSTRAINT, msgs );
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentFunctionalConstraint,
+                NsdPackage.APPLICABLE_SERVICES__PARENT_FUNCTIONAL_CONSTRAINT, msgs );
         return msgs;
     }
 
@@ -193,25 +193,25 @@ public class ApplicableServicesImpl extends NsdObjectImpl implements ApplicableS
      * @generated
      */
     @Override
-    public void setFunctionalConstraint( FunctionalConstraint newFunctionalConstraint ) {
-        if( newFunctionalConstraint != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.APPLICABLE_SERVICES__FUNCTIONAL_CONSTRAINT
-                        && newFunctionalConstraint != null ) ) {
-            if( EcoreUtil.isAncestor( this, newFunctionalConstraint ) )
+    public void setParentFunctionalConstraint( FunctionalConstraint newParentFunctionalConstraint ) {
+        if( newParentFunctionalConstraint != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.APPLICABLE_SERVICES__PARENT_FUNCTIONAL_CONSTRAINT
+                        && newParentFunctionalConstraint != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentFunctionalConstraint ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newFunctionalConstraint != null )
-                msgs = ( ( InternalEObject ) newFunctionalConstraint ).eInverseAdd( this,
+            if( newParentFunctionalConstraint != null )
+                msgs = ( ( InternalEObject ) newParentFunctionalConstraint ).eInverseAdd( this,
                         NsdPackage.FUNCTIONAL_CONSTRAINT__APPLICABLE_SERVICES, FunctionalConstraint.class, msgs );
-            msgs = basicSetFunctionalConstraint( newFunctionalConstraint, msgs );
+            msgs = basicSetParentFunctionalConstraint( newParentFunctionalConstraint, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
             eNotify( new ENotificationImpl( this, Notification.SET,
-                    NsdPackage.APPLICABLE_SERVICES__FUNCTIONAL_CONSTRAINT, newFunctionalConstraint,
-                    newFunctionalConstraint ) );
+                    NsdPackage.APPLICABLE_SERVICES__PARENT_FUNCTIONAL_CONSTRAINT, newParentFunctionalConstraint,
+                    newParentFunctionalConstraint ) );
     }
 
     /**
@@ -229,10 +229,10 @@ public class ApplicableServicesImpl extends NsdObjectImpl implements ApplicableS
         case NsdPackage.APPLICABLE_SERVICES__DATA_SET_MEMBER_OF:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getDataSetMemberOf() )
                     .basicAdd( otherEnd, msgs );
-        case NsdPackage.APPLICABLE_SERVICES__FUNCTIONAL_CONSTRAINT:
+        case NsdPackage.APPLICABLE_SERVICES__PARENT_FUNCTIONAL_CONSTRAINT:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetFunctionalConstraint( ( FunctionalConstraint ) otherEnd, msgs );
+            return basicSetParentFunctionalConstraint( ( FunctionalConstraint ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -249,8 +249,8 @@ public class ApplicableServicesImpl extends NsdObjectImpl implements ApplicableS
             return ( ( InternalEList< ? > ) getService() ).basicRemove( otherEnd, msgs );
         case NsdPackage.APPLICABLE_SERVICES__DATA_SET_MEMBER_OF:
             return ( ( InternalEList< ? > ) getDataSetMemberOf() ).basicRemove( otherEnd, msgs );
-        case NsdPackage.APPLICABLE_SERVICES__FUNCTIONAL_CONSTRAINT:
-            return basicSetFunctionalConstraint( null, msgs );
+        case NsdPackage.APPLICABLE_SERVICES__PARENT_FUNCTIONAL_CONSTRAINT:
+            return basicSetParentFunctionalConstraint( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -263,7 +263,7 @@ public class ApplicableServicesImpl extends NsdObjectImpl implements ApplicableS
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.APPLICABLE_SERVICES__FUNCTIONAL_CONSTRAINT:
+        case NsdPackage.APPLICABLE_SERVICES__PARENT_FUNCTIONAL_CONSTRAINT:
             return eInternalContainer().eInverseRemove( this, NsdPackage.FUNCTIONAL_CONSTRAINT__APPLICABLE_SERVICES,
                     FunctionalConstraint.class, msgs );
         }
@@ -282,8 +282,8 @@ public class ApplicableServicesImpl extends NsdObjectImpl implements ApplicableS
             return getService();
         case NsdPackage.APPLICABLE_SERVICES__DATA_SET_MEMBER_OF:
             return getDataSetMemberOf();
-        case NsdPackage.APPLICABLE_SERVICES__FUNCTIONAL_CONSTRAINT:
-            return getFunctionalConstraint();
+        case NsdPackage.APPLICABLE_SERVICES__PARENT_FUNCTIONAL_CONSTRAINT:
+            return getParentFunctionalConstraint();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -305,8 +305,8 @@ public class ApplicableServicesImpl extends NsdObjectImpl implements ApplicableS
             getDataSetMemberOf().clear();
             getDataSetMemberOf().addAll( ( Collection< ? extends DataSetMemberOf > ) newValue );
             return;
-        case NsdPackage.APPLICABLE_SERVICES__FUNCTIONAL_CONSTRAINT:
-            setFunctionalConstraint( ( FunctionalConstraint ) newValue );
+        case NsdPackage.APPLICABLE_SERVICES__PARENT_FUNCTIONAL_CONSTRAINT:
+            setParentFunctionalConstraint( ( FunctionalConstraint ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -326,8 +326,8 @@ public class ApplicableServicesImpl extends NsdObjectImpl implements ApplicableS
         case NsdPackage.APPLICABLE_SERVICES__DATA_SET_MEMBER_OF:
             unsetDataSetMemberOf();
             return;
-        case NsdPackage.APPLICABLE_SERVICES__FUNCTIONAL_CONSTRAINT:
-            setFunctionalConstraint( ( FunctionalConstraint ) null );
+        case NsdPackage.APPLICABLE_SERVICES__PARENT_FUNCTIONAL_CONSTRAINT:
+            setParentFunctionalConstraint( ( FunctionalConstraint ) null );
             return;
         }
         super.eUnset( featureID );
@@ -345,8 +345,8 @@ public class ApplicableServicesImpl extends NsdObjectImpl implements ApplicableS
             return isSetService();
         case NsdPackage.APPLICABLE_SERVICES__DATA_SET_MEMBER_OF:
             return isSetDataSetMemberOf();
-        case NsdPackage.APPLICABLE_SERVICES__FUNCTIONAL_CONSTRAINT:
-            return getFunctionalConstraint() != null;
+        case NsdPackage.APPLICABLE_SERVICES__PARENT_FUNCTIONAL_CONSTRAINT:
+            return getParentFunctionalConstraint() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AppliesToTypeImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AppliesToTypeImpl.java
index 2b09baab81298a79e2ceb453f3eaf1f53e43d18a..31c4b62ea80c1f05039b8d4eb633d8707e8d4af0 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AppliesToTypeImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AppliesToTypeImpl.java
@@ -46,7 +46,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AppliesToTypeImpl#getId <em>Id</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AppliesToTypeImpl#getRevision <em>Revision</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AppliesToTypeImpl#getPublicationStage <em>Publication Stage</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AppliesToTypeImpl#getServiceNsUsage <em>Service Ns Usage</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.AppliesToTypeImpl#getParentServiceNsUsage <em>Parent Service Ns Usage</em>}</li>
  * </ul>
  *
  * @generated
@@ -482,8 +482,8 @@ public class AppliesToTypeImpl extends NsdObjectImpl implements AppliesToType {
      * @generated
      */
     @Override
-    public ServiceNsUsage getServiceNsUsage() {
-        if( eContainerFeatureID() != NsdPackage.APPLIES_TO_TYPE__SERVICE_NS_USAGE ) return null;
+    public ServiceNsUsage getParentServiceNsUsage() {
+        if( eContainerFeatureID() != NsdPackage.APPLIES_TO_TYPE__PARENT_SERVICE_NS_USAGE ) return null;
         return ( ServiceNsUsage ) eInternalContainer();
     }
 
@@ -492,9 +492,10 @@ public class AppliesToTypeImpl extends NsdObjectImpl implements AppliesToType {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetServiceNsUsage( ServiceNsUsage newServiceNsUsage, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newServiceNsUsage, NsdPackage.APPLIES_TO_TYPE__SERVICE_NS_USAGE,
-                msgs );
+    public NotificationChain basicSetParentServiceNsUsage( ServiceNsUsage newParentServiceNsUsage,
+            NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentServiceNsUsage,
+                NsdPackage.APPLIES_TO_TYPE__PARENT_SERVICE_NS_USAGE, msgs );
         return msgs;
     }
 
@@ -504,24 +505,24 @@ public class AppliesToTypeImpl extends NsdObjectImpl implements AppliesToType {
      * @generated
      */
     @Override
-    public void setServiceNsUsage( ServiceNsUsage newServiceNsUsage ) {
-        if( newServiceNsUsage != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.APPLIES_TO_TYPE__SERVICE_NS_USAGE
-                        && newServiceNsUsage != null ) ) {
-            if( EcoreUtil.isAncestor( this, newServiceNsUsage ) )
+    public void setParentServiceNsUsage( ServiceNsUsage newParentServiceNsUsage ) {
+        if( newParentServiceNsUsage != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.APPLIES_TO_TYPE__PARENT_SERVICE_NS_USAGE
+                        && newParentServiceNsUsage != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentServiceNsUsage ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newServiceNsUsage != null )
-                msgs = ( ( InternalEObject ) newServiceNsUsage ).eInverseAdd( this,
+            if( newParentServiceNsUsage != null )
+                msgs = ( ( InternalEObject ) newParentServiceNsUsage ).eInverseAdd( this,
                         NsdPackage.SERVICE_NS_USAGE__APPLIES_TO, ServiceNsUsage.class, msgs );
-            msgs = basicSetServiceNsUsage( newServiceNsUsage, msgs );
+            msgs = basicSetParentServiceNsUsage( newParentServiceNsUsage, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.APPLIES_TO_TYPE__SERVICE_NS_USAGE,
-                    newServiceNsUsage, newServiceNsUsage ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.APPLIES_TO_TYPE__PARENT_SERVICE_NS_USAGE,
+                    newParentServiceNsUsage, newParentServiceNsUsage ) );
     }
 
     /**
@@ -532,10 +533,10 @@ public class AppliesToTypeImpl extends NsdObjectImpl implements AppliesToType {
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.APPLIES_TO_TYPE__SERVICE_NS_USAGE:
+        case NsdPackage.APPLIES_TO_TYPE__PARENT_SERVICE_NS_USAGE:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetServiceNsUsage( ( ServiceNsUsage ) otherEnd, msgs );
+            return basicSetParentServiceNsUsage( ( ServiceNsUsage ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -548,8 +549,8 @@ public class AppliesToTypeImpl extends NsdObjectImpl implements AppliesToType {
     @Override
     public NotificationChain eInverseRemove( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.APPLIES_TO_TYPE__SERVICE_NS_USAGE:
-            return basicSetServiceNsUsage( null, msgs );
+        case NsdPackage.APPLIES_TO_TYPE__PARENT_SERVICE_NS_USAGE:
+            return basicSetParentServiceNsUsage( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -562,7 +563,7 @@ public class AppliesToTypeImpl extends NsdObjectImpl implements AppliesToType {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.APPLIES_TO_TYPE__SERVICE_NS_USAGE:
+        case NsdPackage.APPLIES_TO_TYPE__PARENT_SERVICE_NS_USAGE:
             return eInternalContainer().eInverseRemove( this, NsdPackage.SERVICE_NS_USAGE__APPLIES_TO,
                     ServiceNsUsage.class, msgs );
         }
@@ -587,8 +588,8 @@ public class AppliesToTypeImpl extends NsdObjectImpl implements AppliesToType {
             return getRevision();
         case NsdPackage.APPLIES_TO_TYPE__PUBLICATION_STAGE:
             return getPublicationStage();
-        case NsdPackage.APPLIES_TO_TYPE__SERVICE_NS_USAGE:
-            return getServiceNsUsage();
+        case NsdPackage.APPLIES_TO_TYPE__PARENT_SERVICE_NS_USAGE:
+            return getParentServiceNsUsage();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -616,8 +617,8 @@ public class AppliesToTypeImpl extends NsdObjectImpl implements AppliesToType {
         case NsdPackage.APPLIES_TO_TYPE__PUBLICATION_STAGE:
             setPublicationStage( ( PubStage ) newValue );
             return;
-        case NsdPackage.APPLIES_TO_TYPE__SERVICE_NS_USAGE:
-            setServiceNsUsage( ( ServiceNsUsage ) newValue );
+        case NsdPackage.APPLIES_TO_TYPE__PARENT_SERVICE_NS_USAGE:
+            setParentServiceNsUsage( ( ServiceNsUsage ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -646,8 +647,8 @@ public class AppliesToTypeImpl extends NsdObjectImpl implements AppliesToType {
         case NsdPackage.APPLIES_TO_TYPE__PUBLICATION_STAGE:
             unsetPublicationStage();
             return;
-        case NsdPackage.APPLIES_TO_TYPE__SERVICE_NS_USAGE:
-            setServiceNsUsage( ( ServiceNsUsage ) null );
+        case NsdPackage.APPLIES_TO_TYPE__PARENT_SERVICE_NS_USAGE:
+            setParentServiceNsUsage( ( ServiceNsUsage ) null );
             return;
         }
         super.eUnset( featureID );
@@ -671,8 +672,8 @@ public class AppliesToTypeImpl extends NsdObjectImpl implements AppliesToType {
             return isSetRevision();
         case NsdPackage.APPLIES_TO_TYPE__PUBLICATION_STAGE:
             return isSetPublicationStage();
-        case NsdPackage.APPLIES_TO_TYPE__SERVICE_NS_USAGE:
-            return getServiceNsUsage() != null;
+        case NsdPackage.APPLIES_TO_TYPE__PARENT_SERVICE_NS_USAGE:
+            return getParentServiceNsUsage() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/BasicTypeImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/BasicTypeImpl.java
index 8afd0617104ef1593c88092ac369181f7646d681..a8df985ddb82ea423cc485d278c07b96d03459f9 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/BasicTypeImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/BasicTypeImpl.java
@@ -47,7 +47,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.BasicTypeImpl#getDescID <em>Desc ID</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.BasicTypeImpl#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.BasicTypeImpl#getBasicTypes <em>Basic Types</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.BasicTypeImpl#getParentBasicTypes <em>Parent Basic Types</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.BasicTypeImpl#getReferredByDataAttribute <em>Referred By Data Attribute</em>}</li>
  * </ul>
  *
@@ -251,8 +251,8 @@ public class BasicTypeImpl extends NsdObjectImpl implements BasicType {
      * @generated
      */
     @Override
-    public BasicTypes getBasicTypes() {
-        if( eContainerFeatureID() != NsdPackage.BASIC_TYPE__BASIC_TYPES ) return null;
+    public BasicTypes getParentBasicTypes() {
+        if( eContainerFeatureID() != NsdPackage.BASIC_TYPE__PARENT_BASIC_TYPES ) return null;
         return ( BasicTypes ) eInternalContainer();
     }
 
@@ -261,8 +261,9 @@ public class BasicTypeImpl extends NsdObjectImpl implements BasicType {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetBasicTypes( BasicTypes newBasicTypes, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newBasicTypes, NsdPackage.BASIC_TYPE__BASIC_TYPES, msgs );
+    public NotificationChain basicSetParentBasicTypes( BasicTypes newParentBasicTypes, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentBasicTypes, NsdPackage.BASIC_TYPE__PARENT_BASIC_TYPES,
+                msgs );
         return msgs;
     }
 
@@ -272,23 +273,24 @@ public class BasicTypeImpl extends NsdObjectImpl implements BasicType {
      * @generated
      */
     @Override
-    public void setBasicTypes( BasicTypes newBasicTypes ) {
-        if( newBasicTypes != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.BASIC_TYPE__BASIC_TYPES && newBasicTypes != null ) ) {
-            if( EcoreUtil.isAncestor( this, newBasicTypes ) )
+    public void setParentBasicTypes( BasicTypes newParentBasicTypes ) {
+        if( newParentBasicTypes != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.BASIC_TYPE__PARENT_BASIC_TYPES
+                        && newParentBasicTypes != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentBasicTypes ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newBasicTypes != null )
-                msgs = ( ( InternalEObject ) newBasicTypes ).eInverseAdd( this, NsdPackage.BASIC_TYPES__BASIC_TYPE,
-                        BasicTypes.class, msgs );
-            msgs = basicSetBasicTypes( newBasicTypes, msgs );
+            if( newParentBasicTypes != null )
+                msgs = ( ( InternalEObject ) newParentBasicTypes ).eInverseAdd( this,
+                        NsdPackage.BASIC_TYPES__BASIC_TYPE, BasicTypes.class, msgs );
+            msgs = basicSetParentBasicTypes( newParentBasicTypes, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.BASIC_TYPE__BASIC_TYPES, newBasicTypes,
-                    newBasicTypes ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.BASIC_TYPE__PARENT_BASIC_TYPES,
+                    newParentBasicTypes, newParentBasicTypes ) );
     }
 
     /**
@@ -335,10 +337,10 @@ public class BasicTypeImpl extends NsdObjectImpl implements BasicType {
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.BASIC_TYPE__BASIC_TYPES:
+        case NsdPackage.BASIC_TYPE__PARENT_BASIC_TYPES:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetBasicTypes( ( BasicTypes ) otherEnd, msgs );
+            return basicSetParentBasicTypes( ( BasicTypes ) otherEnd, msgs );
         case NsdPackage.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getReferredByDataAttribute() )
                     .basicAdd( otherEnd, msgs );
@@ -354,8 +356,8 @@ public class BasicTypeImpl extends NsdObjectImpl implements BasicType {
     @Override
     public NotificationChain eInverseRemove( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.BASIC_TYPE__BASIC_TYPES:
-            return basicSetBasicTypes( null, msgs );
+        case NsdPackage.BASIC_TYPE__PARENT_BASIC_TYPES:
+            return basicSetParentBasicTypes( null, msgs );
         case NsdPackage.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE:
             return ( ( InternalEList< ? > ) getReferredByDataAttribute() ).basicRemove( otherEnd, msgs );
         }
@@ -370,7 +372,7 @@ public class BasicTypeImpl extends NsdObjectImpl implements BasicType {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.BASIC_TYPE__BASIC_TYPES:
+        case NsdPackage.BASIC_TYPE__PARENT_BASIC_TYPES:
             return eInternalContainer().eInverseRemove( this, NsdPackage.BASIC_TYPES__BASIC_TYPE, BasicTypes.class,
                     msgs );
         }
@@ -389,8 +391,8 @@ public class BasicTypeImpl extends NsdObjectImpl implements BasicType {
             return getDescID();
         case NsdPackage.BASIC_TYPE__NAME:
             return getName();
-        case NsdPackage.BASIC_TYPE__BASIC_TYPES:
-            return getBasicTypes();
+        case NsdPackage.BASIC_TYPE__PARENT_BASIC_TYPES:
+            return getParentBasicTypes();
         case NsdPackage.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE:
             return getReferredByDataAttribute();
         }
@@ -412,8 +414,8 @@ public class BasicTypeImpl extends NsdObjectImpl implements BasicType {
         case NsdPackage.BASIC_TYPE__NAME:
             setName( ( String ) newValue );
             return;
-        case NsdPackage.BASIC_TYPE__BASIC_TYPES:
-            setBasicTypes( ( BasicTypes ) newValue );
+        case NsdPackage.BASIC_TYPE__PARENT_BASIC_TYPES:
+            setParentBasicTypes( ( BasicTypes ) newValue );
             return;
         case NsdPackage.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE:
             getReferredByDataAttribute().clear();
@@ -437,8 +439,8 @@ public class BasicTypeImpl extends NsdObjectImpl implements BasicType {
         case NsdPackage.BASIC_TYPE__NAME:
             unsetName();
             return;
-        case NsdPackage.BASIC_TYPE__BASIC_TYPES:
-            setBasicTypes( ( BasicTypes ) null );
+        case NsdPackage.BASIC_TYPE__PARENT_BASIC_TYPES:
+            setParentBasicTypes( ( BasicTypes ) null );
             return;
         case NsdPackage.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE:
             unsetReferredByDataAttribute();
@@ -459,8 +461,8 @@ public class BasicTypeImpl extends NsdObjectImpl implements BasicType {
             return isSetDescID();
         case NsdPackage.BASIC_TYPE__NAME:
             return isSetName();
-        case NsdPackage.BASIC_TYPE__BASIC_TYPES:
-            return getBasicTypes() != null;
+        case NsdPackage.BASIC_TYPE__PARENT_BASIC_TYPES:
+            return getParentBasicTypes() != null;
         case NsdPackage.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE:
             return isSetReferredByDataAttribute();
         }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/BasicTypesImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/BasicTypesImpl.java
index 8b3961c6d2ab712146cf79271cbf45867ca5d904..954c432a5d4de465e9a734653881d11dfb31db83 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/BasicTypesImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/BasicTypesImpl.java
@@ -48,7 +48,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.BasicTypesImpl#getBasicType <em>Basic Type</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.BasicTypesImpl#getNS <em>NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.BasicTypesImpl#getParentNS <em>Parent NS</em>}</li>
  * </ul>
  *
  * @generated
@@ -92,7 +92,7 @@ public class BasicTypesImpl extends NsdObjectImpl implements BasicTypes {
     public EList< BasicType > getBasicType() {
         if( basicType == null ) {
             basicType = new EObjectContainmentWithInverseEList.Unsettable< BasicType >( BasicType.class, this,
-                    NsdPackage.BASIC_TYPES__BASIC_TYPE, NsdPackage.BASIC_TYPE__BASIC_TYPES );
+                    NsdPackage.BASIC_TYPES__BASIC_TYPE, NsdPackage.BASIC_TYPE__PARENT_BASIC_TYPES );
         }
         return basicType;
     }
@@ -123,8 +123,8 @@ public class BasicTypesImpl extends NsdObjectImpl implements BasicTypes {
      * @generated
      */
     @Override
-    public NS getNS() {
-        if( eContainerFeatureID() != NsdPackage.BASIC_TYPES__NS ) return null;
+    public NS getParentNS() {
+        if( eContainerFeatureID() != NsdPackage.BASIC_TYPES__PARENT_NS ) return null;
         return ( NS ) eInternalContainer();
     }
 
@@ -133,8 +133,8 @@ public class BasicTypesImpl extends NsdObjectImpl implements BasicTypes {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetNS( NS newNS, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newNS, NsdPackage.BASIC_TYPES__NS, msgs );
+    public NotificationChain basicSetParentNS( NS newParentNS, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentNS, NsdPackage.BASIC_TYPES__PARENT_NS, msgs );
         return msgs;
     }
 
@@ -144,21 +144,23 @@ public class BasicTypesImpl extends NsdObjectImpl implements BasicTypes {
      * @generated
      */
     @Override
-    public void setNS( NS newNS ) {
-        if( newNS != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.BASIC_TYPES__NS && newNS != null ) ) {
-            if( EcoreUtil.isAncestor( this, newNS ) )
+    public void setParentNS( NS newParentNS ) {
+        if( newParentNS != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.BASIC_TYPES__PARENT_NS && newParentNS != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentNS ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newNS != null )
-                msgs = ( ( InternalEObject ) newNS ).eInverseAdd( this, NsdPackage.NS__BASIC_TYPES, NS.class, msgs );
-            msgs = basicSetNS( newNS, msgs );
+            if( newParentNS != null )
+                msgs = ( ( InternalEObject ) newParentNS ).eInverseAdd( this, NsdPackage.NS__BASIC_TYPES, NS.class,
+                        msgs );
+            msgs = basicSetParentNS( newParentNS, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.BASIC_TYPES__NS, newNS, newNS ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.BASIC_TYPES__PARENT_NS, newParentNS,
+                    newParentNS ) );
     }
 
     /**
@@ -173,10 +175,10 @@ public class BasicTypesImpl extends NsdObjectImpl implements BasicTypes {
         case NsdPackage.BASIC_TYPES__BASIC_TYPE:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getBasicType() ).basicAdd( otherEnd,
                     msgs );
-        case NsdPackage.BASIC_TYPES__NS:
+        case NsdPackage.BASIC_TYPES__PARENT_NS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetNS( ( NS ) otherEnd, msgs );
+            return basicSetParentNS( ( NS ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -191,8 +193,8 @@ public class BasicTypesImpl extends NsdObjectImpl implements BasicTypes {
         switch( featureID ) {
         case NsdPackage.BASIC_TYPES__BASIC_TYPE:
             return ( ( InternalEList< ? > ) getBasicType() ).basicRemove( otherEnd, msgs );
-        case NsdPackage.BASIC_TYPES__NS:
-            return basicSetNS( null, msgs );
+        case NsdPackage.BASIC_TYPES__PARENT_NS:
+            return basicSetParentNS( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -205,7 +207,7 @@ public class BasicTypesImpl extends NsdObjectImpl implements BasicTypes {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.BASIC_TYPES__NS:
+        case NsdPackage.BASIC_TYPES__PARENT_NS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.NS__BASIC_TYPES, NS.class, msgs );
         }
         return super.eBasicRemoveFromContainerFeature( msgs );
@@ -221,8 +223,8 @@ public class BasicTypesImpl extends NsdObjectImpl implements BasicTypes {
         switch( featureID ) {
         case NsdPackage.BASIC_TYPES__BASIC_TYPE:
             return getBasicType();
-        case NsdPackage.BASIC_TYPES__NS:
-            return getNS();
+        case NsdPackage.BASIC_TYPES__PARENT_NS:
+            return getParentNS();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -240,8 +242,8 @@ public class BasicTypesImpl extends NsdObjectImpl implements BasicTypes {
             getBasicType().clear();
             getBasicType().addAll( ( Collection< ? extends BasicType > ) newValue );
             return;
-        case NsdPackage.BASIC_TYPES__NS:
-            setNS( ( NS ) newValue );
+        case NsdPackage.BASIC_TYPES__PARENT_NS:
+            setParentNS( ( NS ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -258,8 +260,8 @@ public class BasicTypesImpl extends NsdObjectImpl implements BasicTypes {
         case NsdPackage.BASIC_TYPES__BASIC_TYPE:
             unsetBasicType();
             return;
-        case NsdPackage.BASIC_TYPES__NS:
-            setNS( ( NS ) null );
+        case NsdPackage.BASIC_TYPES__PARENT_NS:
+            setParentNS( ( NS ) null );
             return;
         }
         super.eUnset( featureID );
@@ -275,8 +277,8 @@ public class BasicTypesImpl extends NsdObjectImpl implements BasicTypes {
         switch( featureID ) {
         case NsdPackage.BASIC_TYPES__BASIC_TYPE:
             return isSetBasicType();
-        case NsdPackage.BASIC_TYPES__NS:
-            return getNS() != null;
+        case NsdPackage.BASIC_TYPES__PARENT_NS:
+            return getParentNS() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/CDCImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/CDCImpl.java
index 2c5741cbf9f1d25973dc20a5c2f1c7e71c29b88c..499f9c43ce34dee12928c48f545254780c6173ba 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/CDCImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/CDCImpl.java
@@ -59,7 +59,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.CDCImpl#isStatistics <em>Statistics</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.CDCImpl#isTypeKindParameterized <em>Type Kind Parameterized</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.CDCImpl#getVariant <em>Variant</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.CDCImpl#getCDCs <em>CD Cs</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.CDCImpl#getParentCDCs <em>Parent CD Cs</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.CDCImpl#getReferredByDataObject <em>Referred By Data Object</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.CDCImpl#getReferredBySubDataObject <em>Referred By Sub Data Object</em>}</li>
  * </ul>
@@ -299,7 +299,7 @@ public class CDCImpl extends TitledClassImpl implements CDC {
     public EList< SubDataObject > getSubDataObject() {
         if( subDataObject == null ) {
             subDataObject = new EObjectContainmentWithInverseEList.Unsettable< SubDataObject >( SubDataObject.class,
-                    this, NsdPackage.CDC__SUB_DATA_OBJECT, NsdPackage.SUB_DATA_OBJECT__CDC );
+                    this, NsdPackage.CDC__SUB_DATA_OBJECT, NsdPackage.SUB_DATA_OBJECT__PARENT_CDC );
         }
         return subDataObject;
     }
@@ -333,7 +333,7 @@ public class CDCImpl extends TitledClassImpl implements CDC {
     public EList< DataAttribute > getDataAttribute() {
         if( dataAttribute == null ) {
             dataAttribute = new EObjectContainmentWithInverseEList.Unsettable< DataAttribute >( DataAttribute.class,
-                    this, NsdPackage.CDC__DATA_ATTRIBUTE, NsdPackage.DATA_ATTRIBUTE__CDC );
+                    this, NsdPackage.CDC__DATA_ATTRIBUTE, NsdPackage.DATA_ATTRIBUTE__PARENT_CDC );
         }
         return dataAttribute;
     }
@@ -400,11 +400,11 @@ public class CDCImpl extends TitledClassImpl implements CDC {
         if( newServiceParameter != serviceParameter ) {
             NotificationChain msgs = null;
             if( serviceParameter != null )
-                msgs = ( ( InternalEObject ) serviceParameter ).eInverseRemove( this, NsdPackage.SERVICE_PARAMETER__CDC,
-                        ServiceParameter.class, msgs );
+                msgs = ( ( InternalEObject ) serviceParameter ).eInverseRemove( this,
+                        NsdPackage.SERVICE_PARAMETER__PARENT_CDC, ServiceParameter.class, msgs );
             if( newServiceParameter != null )
-                msgs = ( ( InternalEObject ) newServiceParameter ).eInverseAdd( this, NsdPackage.SERVICE_PARAMETER__CDC,
-                        ServiceParameter.class, msgs );
+                msgs = ( ( InternalEObject ) newServiceParameter ).eInverseAdd( this,
+                        NsdPackage.SERVICE_PARAMETER__PARENT_CDC, ServiceParameter.class, msgs );
             msgs = basicSetServiceParameter( newServiceParameter, msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -447,8 +447,8 @@ public class CDCImpl extends TitledClassImpl implements CDC {
     public void unsetServiceParameter() {
         if( serviceParameter != null ) {
             NotificationChain msgs = null;
-            msgs = ( ( InternalEObject ) serviceParameter ).eInverseRemove( this, NsdPackage.SERVICE_PARAMETER__CDC,
-                    ServiceParameter.class, msgs );
+            msgs = ( ( InternalEObject ) serviceParameter ).eInverseRemove( this,
+                    NsdPackage.SERVICE_PARAMETER__PARENT_CDC, ServiceParameter.class, msgs );
             msgs = basicUnsetServiceParameter( msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -737,8 +737,8 @@ public class CDCImpl extends TitledClassImpl implements CDC {
      * @generated
      */
     @Override
-    public CDCs getCDCs() {
-        if( eContainerFeatureID() != NsdPackage.CDC__CD_CS ) return null;
+    public CDCs getParentCDCs() {
+        if( eContainerFeatureID() != NsdPackage.CDC__PARENT_CD_CS ) return null;
         return ( CDCs ) eInternalContainer();
     }
 
@@ -747,8 +747,8 @@ public class CDCImpl extends TitledClassImpl implements CDC {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetCDCs( CDCs newCDCs, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newCDCs, NsdPackage.CDC__CD_CS, msgs );
+    public NotificationChain basicSetParentCDCs( CDCs newParentCDCs, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentCDCs, NsdPackage.CDC__PARENT_CD_CS, msgs );
         return msgs;
     }
 
@@ -758,20 +758,23 @@ public class CDCImpl extends TitledClassImpl implements CDC {
      * @generated
      */
     @Override
-    public void setCDCs( CDCs newCDCs ) {
-        if( newCDCs != eInternalContainer() || ( eContainerFeatureID() != NsdPackage.CDC__CD_CS && newCDCs != null ) ) {
-            if( EcoreUtil.isAncestor( this, newCDCs ) )
+    public void setParentCDCs( CDCs newParentCDCs ) {
+        if( newParentCDCs != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.CDC__PARENT_CD_CS && newParentCDCs != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentCDCs ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newCDCs != null )
-                msgs = ( ( InternalEObject ) newCDCs ).eInverseAdd( this, NsdPackage.CD_CS__CDC, CDCs.class, msgs );
-            msgs = basicSetCDCs( newCDCs, msgs );
+            if( newParentCDCs != null )
+                msgs = ( ( InternalEObject ) newParentCDCs ).eInverseAdd( this, NsdPackage.CD_CS__CDC, CDCs.class,
+                        msgs );
+            msgs = basicSetParentCDCs( newParentCDCs, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.CDC__CD_CS, newCDCs, newCDCs ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.CDC__PARENT_CD_CS, newParentCDCs,
+                    newParentCDCs ) );
     }
 
     /**
@@ -862,10 +865,10 @@ public class CDCImpl extends TitledClassImpl implements CDC {
                 msgs = ( ( InternalEObject ) serviceParameter ).eInverseRemove( this,
                         EOPPOSITE_FEATURE_BASE - NsdPackage.CDC__SERVICE_PARAMETER, null, msgs );
             return basicSetServiceParameter( ( ServiceParameter ) otherEnd, msgs );
-        case NsdPackage.CDC__CD_CS:
+        case NsdPackage.CDC__PARENT_CD_CS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetCDCs( ( CDCs ) otherEnd, msgs );
+            return basicSetParentCDCs( ( CDCs ) otherEnd, msgs );
         case NsdPackage.CDC__REFERRED_BY_DATA_OBJECT:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getReferredByDataObject() )
                     .basicAdd( otherEnd, msgs );
@@ -890,8 +893,8 @@ public class CDCImpl extends TitledClassImpl implements CDC {
             return ( ( InternalEList< ? > ) getDataAttribute() ).basicRemove( otherEnd, msgs );
         case NsdPackage.CDC__SERVICE_PARAMETER:
             return basicUnsetServiceParameter( msgs );
-        case NsdPackage.CDC__CD_CS:
-            return basicSetCDCs( null, msgs );
+        case NsdPackage.CDC__PARENT_CD_CS:
+            return basicSetParentCDCs( null, msgs );
         case NsdPackage.CDC__REFERRED_BY_DATA_OBJECT:
             return ( ( InternalEList< ? > ) getReferredByDataObject() ).basicRemove( otherEnd, msgs );
         case NsdPackage.CDC__REFERRED_BY_SUB_DATA_OBJECT:
@@ -908,7 +911,7 @@ public class CDCImpl extends TitledClassImpl implements CDC {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.CDC__CD_CS:
+        case NsdPackage.CDC__PARENT_CD_CS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.CD_CS__CDC, CDCs.class, msgs );
         }
         return super.eBasicRemoveFromContainerFeature( msgs );
@@ -938,8 +941,8 @@ public class CDCImpl extends TitledClassImpl implements CDC {
             return isTypeKindParameterized();
         case NsdPackage.CDC__VARIANT:
             return getVariant();
-        case NsdPackage.CDC__CD_CS:
-            return getCDCs();
+        case NsdPackage.CDC__PARENT_CD_CS:
+            return getParentCDCs();
         case NsdPackage.CDC__REFERRED_BY_DATA_OBJECT:
             return getReferredByDataObject();
         case NsdPackage.CDC__REFERRED_BY_SUB_DATA_OBJECT:
@@ -983,8 +986,8 @@ public class CDCImpl extends TitledClassImpl implements CDC {
         case NsdPackage.CDC__VARIANT:
             setVariant( ( String ) newValue );
             return;
-        case NsdPackage.CDC__CD_CS:
-            setCDCs( ( CDCs ) newValue );
+        case NsdPackage.CDC__PARENT_CD_CS:
+            setParentCDCs( ( CDCs ) newValue );
             return;
         case NsdPackage.CDC__REFERRED_BY_DATA_OBJECT:
             getReferredByDataObject().clear();
@@ -1030,8 +1033,8 @@ public class CDCImpl extends TitledClassImpl implements CDC {
         case NsdPackage.CDC__VARIANT:
             unsetVariant();
             return;
-        case NsdPackage.CDC__CD_CS:
-            setCDCs( ( CDCs ) null );
+        case NsdPackage.CDC__PARENT_CD_CS:
+            setParentCDCs( ( CDCs ) null );
             return;
         case NsdPackage.CDC__REFERRED_BY_DATA_OBJECT:
             unsetReferredByDataObject();
@@ -1067,8 +1070,8 @@ public class CDCImpl extends TitledClassImpl implements CDC {
             return isSetTypeKindParameterized();
         case NsdPackage.CDC__VARIANT:
             return isSetVariant();
-        case NsdPackage.CDC__CD_CS:
-            return getCDCs() != null;
+        case NsdPackage.CDC__PARENT_CD_CS:
+            return getParentCDCs() != null;
         case NsdPackage.CDC__REFERRED_BY_DATA_OBJECT:
             return isSetReferredByDataObject();
         case NsdPackage.CDC__REFERRED_BY_SUB_DATA_OBJECT:
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/CDCsImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/CDCsImpl.java
index 3925b1f942ebee76720524a98930951b014ed0ea..2e0952d353850c5f860ce3dde51d1f54a7411321 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/CDCsImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/CDCsImpl.java
@@ -48,7 +48,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.CDCsImpl#getCDC <em>CDC</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.CDCsImpl#getNS <em>NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.CDCsImpl#getParentNS <em>Parent NS</em>}</li>
  * </ul>
  *
  * @generated
@@ -92,7 +92,7 @@ public class CDCsImpl extends NsdObjectImpl implements CDCs {
     public EList< CDC > getCDC() {
         if( cDC == null ) {
             cDC = new EObjectContainmentWithInverseEList.Unsettable< CDC >( CDC.class, this, NsdPackage.CD_CS__CDC,
-                    NsdPackage.CDC__CD_CS );
+                    NsdPackage.CDC__PARENT_CD_CS );
         }
         return cDC;
     }
@@ -123,8 +123,8 @@ public class CDCsImpl extends NsdObjectImpl implements CDCs {
      * @generated
      */
     @Override
-    public NS getNS() {
-        if( eContainerFeatureID() != NsdPackage.CD_CS__NS ) return null;
+    public NS getParentNS() {
+        if( eContainerFeatureID() != NsdPackage.CD_CS__PARENT_NS ) return null;
         return ( NS ) eInternalContainer();
     }
 
@@ -133,8 +133,8 @@ public class CDCsImpl extends NsdObjectImpl implements CDCs {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetNS( NS newNS, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newNS, NsdPackage.CD_CS__NS, msgs );
+    public NotificationChain basicSetParentNS( NS newParentNS, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentNS, NsdPackage.CD_CS__PARENT_NS, msgs );
         return msgs;
     }
 
@@ -144,20 +144,22 @@ public class CDCsImpl extends NsdObjectImpl implements CDCs {
      * @generated
      */
     @Override
-    public void setNS( NS newNS ) {
-        if( newNS != eInternalContainer() || ( eContainerFeatureID() != NsdPackage.CD_CS__NS && newNS != null ) ) {
-            if( EcoreUtil.isAncestor( this, newNS ) )
+    public void setParentNS( NS newParentNS ) {
+        if( newParentNS != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.CD_CS__PARENT_NS && newParentNS != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentNS ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newNS != null )
-                msgs = ( ( InternalEObject ) newNS ).eInverseAdd( this, NsdPackage.NS__CD_CS, NS.class, msgs );
-            msgs = basicSetNS( newNS, msgs );
+            if( newParentNS != null )
+                msgs = ( ( InternalEObject ) newParentNS ).eInverseAdd( this, NsdPackage.NS__CD_CS, NS.class, msgs );
+            msgs = basicSetParentNS( newParentNS, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.CD_CS__NS, newNS, newNS ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.CD_CS__PARENT_NS, newParentNS,
+                    newParentNS ) );
     }
 
     /**
@@ -171,10 +173,10 @@ public class CDCsImpl extends NsdObjectImpl implements CDCs {
         switch( featureID ) {
         case NsdPackage.CD_CS__CDC:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getCDC() ).basicAdd( otherEnd, msgs );
-        case NsdPackage.CD_CS__NS:
+        case NsdPackage.CD_CS__PARENT_NS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetNS( ( NS ) otherEnd, msgs );
+            return basicSetParentNS( ( NS ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -189,8 +191,8 @@ public class CDCsImpl extends NsdObjectImpl implements CDCs {
         switch( featureID ) {
         case NsdPackage.CD_CS__CDC:
             return ( ( InternalEList< ? > ) getCDC() ).basicRemove( otherEnd, msgs );
-        case NsdPackage.CD_CS__NS:
-            return basicSetNS( null, msgs );
+        case NsdPackage.CD_CS__PARENT_NS:
+            return basicSetParentNS( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -203,7 +205,7 @@ public class CDCsImpl extends NsdObjectImpl implements CDCs {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.CD_CS__NS:
+        case NsdPackage.CD_CS__PARENT_NS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.NS__CD_CS, NS.class, msgs );
         }
         return super.eBasicRemoveFromContainerFeature( msgs );
@@ -219,8 +221,8 @@ public class CDCsImpl extends NsdObjectImpl implements CDCs {
         switch( featureID ) {
         case NsdPackage.CD_CS__CDC:
             return getCDC();
-        case NsdPackage.CD_CS__NS:
-            return getNS();
+        case NsdPackage.CD_CS__PARENT_NS:
+            return getParentNS();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -238,8 +240,8 @@ public class CDCsImpl extends NsdObjectImpl implements CDCs {
             getCDC().clear();
             getCDC().addAll( ( Collection< ? extends CDC > ) newValue );
             return;
-        case NsdPackage.CD_CS__NS:
-            setNS( ( NS ) newValue );
+        case NsdPackage.CD_CS__PARENT_NS:
+            setParentNS( ( NS ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -256,8 +258,8 @@ public class CDCsImpl extends NsdObjectImpl implements CDCs {
         case NsdPackage.CD_CS__CDC:
             unsetCDC();
             return;
-        case NsdPackage.CD_CS__NS:
-            setNS( ( NS ) null );
+        case NsdPackage.CD_CS__PARENT_NS:
+            setParentNS( ( NS ) null );
             return;
         }
         super.eUnset( featureID );
@@ -273,8 +275,8 @@ public class CDCsImpl extends NsdObjectImpl implements CDCs {
         switch( featureID ) {
         case NsdPackage.CD_CS__CDC:
             return isSetCDC();
-        case NsdPackage.CD_CS__NS:
-            return getNS() != null;
+        case NsdPackage.CD_CS__PARENT_NS:
+            return getParentNS() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ChangesImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ChangesImpl.java
index 381bc76b167d76fc7060718bb072e1420650490f..59c82c0185b1a6663f223cf60001392338a44af3 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ChangesImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ChangesImpl.java
@@ -47,8 +47,8 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ChangesImpl#getDate <em>Date</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ChangesImpl#getRevision <em>Revision</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ChangesImpl#getTissues <em>Tissues</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ChangesImpl#getNS <em>NS</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ChangesImpl#getServiceNS <em>Service NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ChangesImpl#getParentNS <em>Parent NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ChangesImpl#getParentServiceNS <em>Parent Service NS</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ChangesImpl#getRelease <em>Release</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ChangesImpl#getVersion <em>Version</em>}</li>
  * </ul>
@@ -463,8 +463,8 @@ public class ChangesImpl extends NsdObjectImpl implements Changes {
      * @generated
      */
     @Override
-    public NS getNS() {
-        if( eContainerFeatureID() != NsdPackage.CHANGES__NS ) return null;
+    public NS getParentNS() {
+        if( eContainerFeatureID() != NsdPackage.CHANGES__PARENT_NS ) return null;
         return ( NS ) eInternalContainer();
     }
 
@@ -473,8 +473,8 @@ public class ChangesImpl extends NsdObjectImpl implements Changes {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetNS( NS newNS, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newNS, NsdPackage.CHANGES__NS, msgs );
+    public NotificationChain basicSetParentNS( NS newParentNS, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentNS, NsdPackage.CHANGES__PARENT_NS, msgs );
         return msgs;
     }
 
@@ -484,20 +484,22 @@ public class ChangesImpl extends NsdObjectImpl implements Changes {
      * @generated
      */
     @Override
-    public void setNS( NS newNS ) {
-        if( newNS != eInternalContainer() || ( eContainerFeatureID() != NsdPackage.CHANGES__NS && newNS != null ) ) {
-            if( EcoreUtil.isAncestor( this, newNS ) )
+    public void setParentNS( NS newParentNS ) {
+        if( newParentNS != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.CHANGES__PARENT_NS && newParentNS != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentNS ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newNS != null )
-                msgs = ( ( InternalEObject ) newNS ).eInverseAdd( this, NsdPackage.NS__CHANGES, NS.class, msgs );
-            msgs = basicSetNS( newNS, msgs );
+            if( newParentNS != null )
+                msgs = ( ( InternalEObject ) newParentNS ).eInverseAdd( this, NsdPackage.NS__CHANGES, NS.class, msgs );
+            msgs = basicSetParentNS( newParentNS, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.CHANGES__NS, newNS, newNS ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.CHANGES__PARENT_NS, newParentNS,
+                    newParentNS ) );
     }
 
     /**
@@ -506,8 +508,8 @@ public class ChangesImpl extends NsdObjectImpl implements Changes {
      * @generated
      */
     @Override
-    public ServiceNS getServiceNS() {
-        if( eContainerFeatureID() != NsdPackage.CHANGES__SERVICE_NS ) return null;
+    public ServiceNS getParentServiceNS() {
+        if( eContainerFeatureID() != NsdPackage.CHANGES__PARENT_SERVICE_NS ) return null;
         return ( ServiceNS ) eInternalContainer();
     }
 
@@ -516,8 +518,9 @@ public class ChangesImpl extends NsdObjectImpl implements Changes {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetServiceNS( ServiceNS newServiceNS, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newServiceNS, NsdPackage.CHANGES__SERVICE_NS, msgs );
+    public NotificationChain basicSetParentServiceNS( ServiceNS newParentServiceNS, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentServiceNS, NsdPackage.CHANGES__PARENT_SERVICE_NS,
+                msgs );
         return msgs;
     }
 
@@ -527,23 +530,23 @@ public class ChangesImpl extends NsdObjectImpl implements Changes {
      * @generated
      */
     @Override
-    public void setServiceNS( ServiceNS newServiceNS ) {
-        if( newServiceNS != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.CHANGES__SERVICE_NS && newServiceNS != null ) ) {
-            if( EcoreUtil.isAncestor( this, newServiceNS ) )
+    public void setParentServiceNS( ServiceNS newParentServiceNS ) {
+        if( newParentServiceNS != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.CHANGES__PARENT_SERVICE_NS && newParentServiceNS != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentServiceNS ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newServiceNS != null )
-                msgs = ( ( InternalEObject ) newServiceNS ).eInverseAdd( this, NsdPackage.SERVICE_NS__CHANGES,
+            if( newParentServiceNS != null )
+                msgs = ( ( InternalEObject ) newParentServiceNS ).eInverseAdd( this, NsdPackage.SERVICE_NS__CHANGES,
                         ServiceNS.class, msgs );
-            msgs = basicSetServiceNS( newServiceNS, msgs );
+            msgs = basicSetParentServiceNS( newParentServiceNS, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.CHANGES__SERVICE_NS, newServiceNS,
-                    newServiceNS ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.CHANGES__PARENT_SERVICE_NS,
+                    newParentServiceNS, newParentServiceNS ) );
     }
 
     /**
@@ -658,14 +661,14 @@ public class ChangesImpl extends NsdObjectImpl implements Changes {
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.CHANGES__NS:
+        case NsdPackage.CHANGES__PARENT_NS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetNS( ( NS ) otherEnd, msgs );
-        case NsdPackage.CHANGES__SERVICE_NS:
+            return basicSetParentNS( ( NS ) otherEnd, msgs );
+        case NsdPackage.CHANGES__PARENT_SERVICE_NS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetServiceNS( ( ServiceNS ) otherEnd, msgs );
+            return basicSetParentServiceNS( ( ServiceNS ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -678,10 +681,10 @@ public class ChangesImpl extends NsdObjectImpl implements Changes {
     @Override
     public NotificationChain eInverseRemove( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.CHANGES__NS:
-            return basicSetNS( null, msgs );
-        case NsdPackage.CHANGES__SERVICE_NS:
-            return basicSetServiceNS( null, msgs );
+        case NsdPackage.CHANGES__PARENT_NS:
+            return basicSetParentNS( null, msgs );
+        case NsdPackage.CHANGES__PARENT_SERVICE_NS:
+            return basicSetParentServiceNS( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -694,9 +697,9 @@ public class ChangesImpl extends NsdObjectImpl implements Changes {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.CHANGES__NS:
+        case NsdPackage.CHANGES__PARENT_NS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.NS__CHANGES, NS.class, msgs );
-        case NsdPackage.CHANGES__SERVICE_NS:
+        case NsdPackage.CHANGES__PARENT_SERVICE_NS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.SERVICE_NS__CHANGES, ServiceNS.class, msgs );
         }
         return super.eBasicRemoveFromContainerFeature( msgs );
@@ -718,10 +721,10 @@ public class ChangesImpl extends NsdObjectImpl implements Changes {
             return getRevision();
         case NsdPackage.CHANGES__TISSUES:
             return getTissues();
-        case NsdPackage.CHANGES__NS:
-            return getNS();
-        case NsdPackage.CHANGES__SERVICE_NS:
-            return getServiceNS();
+        case NsdPackage.CHANGES__PARENT_NS:
+            return getParentNS();
+        case NsdPackage.CHANGES__PARENT_SERVICE_NS:
+            return getParentServiceNS();
         case NsdPackage.CHANGES__RELEASE:
             return getRelease();
         case NsdPackage.CHANGES__VERSION:
@@ -750,11 +753,11 @@ public class ChangesImpl extends NsdObjectImpl implements Changes {
         case NsdPackage.CHANGES__TISSUES:
             setTissues( ( String ) newValue );
             return;
-        case NsdPackage.CHANGES__NS:
-            setNS( ( NS ) newValue );
+        case NsdPackage.CHANGES__PARENT_NS:
+            setParentNS( ( NS ) newValue );
             return;
-        case NsdPackage.CHANGES__SERVICE_NS:
-            setServiceNS( ( ServiceNS ) newValue );
+        case NsdPackage.CHANGES__PARENT_SERVICE_NS:
+            setParentServiceNS( ( ServiceNS ) newValue );
             return;
         case NsdPackage.CHANGES__RELEASE:
             setRelease( ( Integer ) newValue );
@@ -786,11 +789,11 @@ public class ChangesImpl extends NsdObjectImpl implements Changes {
         case NsdPackage.CHANGES__TISSUES:
             unsetTissues();
             return;
-        case NsdPackage.CHANGES__NS:
-            setNS( ( NS ) null );
+        case NsdPackage.CHANGES__PARENT_NS:
+            setParentNS( ( NS ) null );
             return;
-        case NsdPackage.CHANGES__SERVICE_NS:
-            setServiceNS( ( ServiceNS ) null );
+        case NsdPackage.CHANGES__PARENT_SERVICE_NS:
+            setParentServiceNS( ( ServiceNS ) null );
             return;
         case NsdPackage.CHANGES__RELEASE:
             unsetRelease();
@@ -818,10 +821,10 @@ public class ChangesImpl extends NsdObjectImpl implements Changes {
             return isSetRevision();
         case NsdPackage.CHANGES__TISSUES:
             return isSetTissues();
-        case NsdPackage.CHANGES__NS:
-            return getNS() != null;
-        case NsdPackage.CHANGES__SERVICE_NS:
-            return getServiceNS() != null;
+        case NsdPackage.CHANGES__PARENT_NS:
+            return getParentNS() != null;
+        case NsdPackage.CHANGES__PARENT_SERVICE_NS:
+            return getParentServiceNS() != null;
         case NsdPackage.CHANGES__RELEASE:
             return isSetRelease();
         case NsdPackage.CHANGES__VERSION:
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ConstructedAttributeImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ConstructedAttributeImpl.java
index 7cd1e568d1ff421b310815e9109611f49a28563b..8dd1185cbe3fe3ec89045240ba7c0e8166273606 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ConstructedAttributeImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ConstructedAttributeImpl.java
@@ -50,8 +50,8 @@ import org.eclipse.emf.ecore.util.InternalEList;
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ConstructedAttributeImpl#getSubDataAttribute <em>Sub Data Attribute</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ConstructedAttributeImpl#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ConstructedAttributeImpl#getConstructedAttributes <em>Constructed Attributes</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ConstructedAttributeImpl#getServiceTypeRealizations <em>Service Type Realizations</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ConstructedAttributeImpl#getParentConstructedAttributes <em>Parent Constructed Attributes</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ConstructedAttributeImpl#getParentServiceTypeRealizations <em>Parent Service Type Realizations</em>}</li>
  * </ul>
  *
  * @generated
@@ -125,7 +125,7 @@ public class ConstructedAttributeImpl extends TitledClassImpl implements Constru
         if( subDataAttribute == null ) {
             subDataAttribute = new EObjectContainmentWithInverseEList.Unsettable< SubDataAttribute >(
                     SubDataAttribute.class, this, NsdPackage.CONSTRUCTED_ATTRIBUTE__SUB_DATA_ATTRIBUTE,
-                    NsdPackage.SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE );
+                    NsdPackage.SUB_DATA_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTE );
         }
         return subDataAttribute;
     }
@@ -208,8 +208,8 @@ public class ConstructedAttributeImpl extends TitledClassImpl implements Constru
      * @generated
      */
     @Override
-    public ConstructedAttributes getConstructedAttributes() {
-        if( eContainerFeatureID() != NsdPackage.CONSTRUCTED_ATTRIBUTE__CONSTRUCTED_ATTRIBUTES ) return null;
+    public ConstructedAttributes getParentConstructedAttributes() {
+        if( eContainerFeatureID() != NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTES ) return null;
         return ( ConstructedAttributes ) eInternalContainer();
     }
 
@@ -218,10 +218,10 @@ public class ConstructedAttributeImpl extends TitledClassImpl implements Constru
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetConstructedAttributes( ConstructedAttributes newConstructedAttributes,
+    public NotificationChain basicSetParentConstructedAttributes( ConstructedAttributes newParentConstructedAttributes,
             NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newConstructedAttributes,
-                NsdPackage.CONSTRUCTED_ATTRIBUTE__CONSTRUCTED_ATTRIBUTES, msgs );
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentConstructedAttributes,
+                NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTES, msgs );
         return msgs;
     }
 
@@ -231,25 +231,25 @@ public class ConstructedAttributeImpl extends TitledClassImpl implements Constru
      * @generated
      */
     @Override
-    public void setConstructedAttributes( ConstructedAttributes newConstructedAttributes ) {
-        if( newConstructedAttributes != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.CONSTRUCTED_ATTRIBUTE__CONSTRUCTED_ATTRIBUTES
-                        && newConstructedAttributes != null ) ) {
-            if( EcoreUtil.isAncestor( this, newConstructedAttributes ) )
+    public void setParentConstructedAttributes( ConstructedAttributes newParentConstructedAttributes ) {
+        if( newParentConstructedAttributes != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTES
+                        && newParentConstructedAttributes != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentConstructedAttributes ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newConstructedAttributes != null )
-                msgs = ( ( InternalEObject ) newConstructedAttributes ).eInverseAdd( this,
+            if( newParentConstructedAttributes != null )
+                msgs = ( ( InternalEObject ) newParentConstructedAttributes ).eInverseAdd( this,
                         NsdPackage.CONSTRUCTED_ATTRIBUTES__CONSTRUCTED_ATTRIBUTE, ConstructedAttributes.class, msgs );
-            msgs = basicSetConstructedAttributes( newConstructedAttributes, msgs );
+            msgs = basicSetParentConstructedAttributes( newParentConstructedAttributes, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
             eNotify( new ENotificationImpl( this, Notification.SET,
-                    NsdPackage.CONSTRUCTED_ATTRIBUTE__CONSTRUCTED_ATTRIBUTES, newConstructedAttributes,
-                    newConstructedAttributes ) );
+                    NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTES, newParentConstructedAttributes,
+                    newParentConstructedAttributes ) );
     }
 
     /**
@@ -258,8 +258,8 @@ public class ConstructedAttributeImpl extends TitledClassImpl implements Constru
      * @generated
      */
     @Override
-    public ServiceTypeRealizations getServiceTypeRealizations() {
-        if( eContainerFeatureID() != NsdPackage.CONSTRUCTED_ATTRIBUTE__SERVICE_TYPE_REALIZATIONS ) return null;
+    public ServiceTypeRealizations getParentServiceTypeRealizations() {
+        if( eContainerFeatureID() != NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_TYPE_REALIZATIONS ) return null;
         return ( ServiceTypeRealizations ) eInternalContainer();
     }
 
@@ -268,10 +268,10 @@ public class ConstructedAttributeImpl extends TitledClassImpl implements Constru
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetServiceTypeRealizations( ServiceTypeRealizations newServiceTypeRealizations,
-            NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newServiceTypeRealizations,
-                NsdPackage.CONSTRUCTED_ATTRIBUTE__SERVICE_TYPE_REALIZATIONS, msgs );
+    public NotificationChain basicSetParentServiceTypeRealizations(
+            ServiceTypeRealizations newParentServiceTypeRealizations, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentServiceTypeRealizations,
+                NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_TYPE_REALIZATIONS, msgs );
         return msgs;
     }
 
@@ -281,26 +281,26 @@ public class ConstructedAttributeImpl extends TitledClassImpl implements Constru
      * @generated
      */
     @Override
-    public void setServiceTypeRealizations( ServiceTypeRealizations newServiceTypeRealizations ) {
-        if( newServiceTypeRealizations != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.CONSTRUCTED_ATTRIBUTE__SERVICE_TYPE_REALIZATIONS
-                        && newServiceTypeRealizations != null ) ) {
-            if( EcoreUtil.isAncestor( this, newServiceTypeRealizations ) )
+    public void setParentServiceTypeRealizations( ServiceTypeRealizations newParentServiceTypeRealizations ) {
+        if( newParentServiceTypeRealizations != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_TYPE_REALIZATIONS
+                        && newParentServiceTypeRealizations != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentServiceTypeRealizations ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newServiceTypeRealizations != null )
-                msgs = ( ( InternalEObject ) newServiceTypeRealizations ).eInverseAdd( this,
+            if( newParentServiceTypeRealizations != null )
+                msgs = ( ( InternalEObject ) newParentServiceTypeRealizations ).eInverseAdd( this,
                         NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_TYPE_REALIZATION, ServiceTypeRealizations.class,
                         msgs );
-            msgs = basicSetServiceTypeRealizations( newServiceTypeRealizations, msgs );
+            msgs = basicSetParentServiceTypeRealizations( newParentServiceTypeRealizations, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
             eNotify( new ENotificationImpl( this, Notification.SET,
-                    NsdPackage.CONSTRUCTED_ATTRIBUTE__SERVICE_TYPE_REALIZATIONS, newServiceTypeRealizations,
-                    newServiceTypeRealizations ) );
+                    NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_TYPE_REALIZATIONS,
+                    newParentServiceTypeRealizations, newParentServiceTypeRealizations ) );
     }
 
     /**
@@ -315,14 +315,14 @@ public class ConstructedAttributeImpl extends TitledClassImpl implements Constru
         case NsdPackage.CONSTRUCTED_ATTRIBUTE__SUB_DATA_ATTRIBUTE:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getSubDataAttribute() )
                     .basicAdd( otherEnd, msgs );
-        case NsdPackage.CONSTRUCTED_ATTRIBUTE__CONSTRUCTED_ATTRIBUTES:
+        case NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTES:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetConstructedAttributes( ( ConstructedAttributes ) otherEnd, msgs );
-        case NsdPackage.CONSTRUCTED_ATTRIBUTE__SERVICE_TYPE_REALIZATIONS:
+            return basicSetParentConstructedAttributes( ( ConstructedAttributes ) otherEnd, msgs );
+        case NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_TYPE_REALIZATIONS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetServiceTypeRealizations( ( ServiceTypeRealizations ) otherEnd, msgs );
+            return basicSetParentServiceTypeRealizations( ( ServiceTypeRealizations ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -337,10 +337,10 @@ public class ConstructedAttributeImpl extends TitledClassImpl implements Constru
         switch( featureID ) {
         case NsdPackage.CONSTRUCTED_ATTRIBUTE__SUB_DATA_ATTRIBUTE:
             return ( ( InternalEList< ? > ) getSubDataAttribute() ).basicRemove( otherEnd, msgs );
-        case NsdPackage.CONSTRUCTED_ATTRIBUTE__CONSTRUCTED_ATTRIBUTES:
-            return basicSetConstructedAttributes( null, msgs );
-        case NsdPackage.CONSTRUCTED_ATTRIBUTE__SERVICE_TYPE_REALIZATIONS:
-            return basicSetServiceTypeRealizations( null, msgs );
+        case NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTES:
+            return basicSetParentConstructedAttributes( null, msgs );
+        case NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_TYPE_REALIZATIONS:
+            return basicSetParentServiceTypeRealizations( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -353,10 +353,10 @@ public class ConstructedAttributeImpl extends TitledClassImpl implements Constru
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.CONSTRUCTED_ATTRIBUTE__CONSTRUCTED_ATTRIBUTES:
+        case NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTES:
             return eInternalContainer().eInverseRemove( this, NsdPackage.CONSTRUCTED_ATTRIBUTES__CONSTRUCTED_ATTRIBUTE,
                     ConstructedAttributes.class, msgs );
-        case NsdPackage.CONSTRUCTED_ATTRIBUTE__SERVICE_TYPE_REALIZATIONS:
+        case NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_TYPE_REALIZATIONS:
             return eInternalContainer().eInverseRemove( this,
                     NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_TYPE_REALIZATION, ServiceTypeRealizations.class,
                     msgs );
@@ -376,10 +376,10 @@ public class ConstructedAttributeImpl extends TitledClassImpl implements Constru
             return getSubDataAttribute();
         case NsdPackage.CONSTRUCTED_ATTRIBUTE__NAME:
             return getName();
-        case NsdPackage.CONSTRUCTED_ATTRIBUTE__CONSTRUCTED_ATTRIBUTES:
-            return getConstructedAttributes();
-        case NsdPackage.CONSTRUCTED_ATTRIBUTE__SERVICE_TYPE_REALIZATIONS:
-            return getServiceTypeRealizations();
+        case NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTES:
+            return getParentConstructedAttributes();
+        case NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_TYPE_REALIZATIONS:
+            return getParentServiceTypeRealizations();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -400,11 +400,11 @@ public class ConstructedAttributeImpl extends TitledClassImpl implements Constru
         case NsdPackage.CONSTRUCTED_ATTRIBUTE__NAME:
             setName( ( String ) newValue );
             return;
-        case NsdPackage.CONSTRUCTED_ATTRIBUTE__CONSTRUCTED_ATTRIBUTES:
-            setConstructedAttributes( ( ConstructedAttributes ) newValue );
+        case NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTES:
+            setParentConstructedAttributes( ( ConstructedAttributes ) newValue );
             return;
-        case NsdPackage.CONSTRUCTED_ATTRIBUTE__SERVICE_TYPE_REALIZATIONS:
-            setServiceTypeRealizations( ( ServiceTypeRealizations ) newValue );
+        case NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_TYPE_REALIZATIONS:
+            setParentServiceTypeRealizations( ( ServiceTypeRealizations ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -424,11 +424,11 @@ public class ConstructedAttributeImpl extends TitledClassImpl implements Constru
         case NsdPackage.CONSTRUCTED_ATTRIBUTE__NAME:
             unsetName();
             return;
-        case NsdPackage.CONSTRUCTED_ATTRIBUTE__CONSTRUCTED_ATTRIBUTES:
-            setConstructedAttributes( ( ConstructedAttributes ) null );
+        case NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTES:
+            setParentConstructedAttributes( ( ConstructedAttributes ) null );
             return;
-        case NsdPackage.CONSTRUCTED_ATTRIBUTE__SERVICE_TYPE_REALIZATIONS:
-            setServiceTypeRealizations( ( ServiceTypeRealizations ) null );
+        case NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_TYPE_REALIZATIONS:
+            setParentServiceTypeRealizations( ( ServiceTypeRealizations ) null );
             return;
         }
         super.eUnset( featureID );
@@ -446,10 +446,10 @@ public class ConstructedAttributeImpl extends TitledClassImpl implements Constru
             return isSetSubDataAttribute();
         case NsdPackage.CONSTRUCTED_ATTRIBUTE__NAME:
             return isSetName();
-        case NsdPackage.CONSTRUCTED_ATTRIBUTE__CONSTRUCTED_ATTRIBUTES:
-            return getConstructedAttributes() != null;
-        case NsdPackage.CONSTRUCTED_ATTRIBUTE__SERVICE_TYPE_REALIZATIONS:
-            return getServiceTypeRealizations() != null;
+        case NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTES:
+            return getParentConstructedAttributes() != null;
+        case NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_TYPE_REALIZATIONS:
+            return getParentServiceTypeRealizations() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ConstructedAttributesImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ConstructedAttributesImpl.java
index a73ae2888e952203c1e00eda305896c7ef2f80cd..d573f98c7a59535b74fae13d1b3177bc8b2ea525 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ConstructedAttributesImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ConstructedAttributesImpl.java
@@ -48,7 +48,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ConstructedAttributesImpl#getConstructedAttribute <em>Constructed Attribute</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ConstructedAttributesImpl#getNS <em>NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ConstructedAttributesImpl#getParentNS <em>Parent NS</em>}</li>
  * </ul>
  *
  * @generated
@@ -93,7 +93,7 @@ public class ConstructedAttributesImpl extends NsdObjectImpl implements Construc
         if( constructedAttribute == null ) {
             constructedAttribute = new EObjectContainmentWithInverseEList.Unsettable< ConstructedAttribute >(
                     ConstructedAttribute.class, this, NsdPackage.CONSTRUCTED_ATTRIBUTES__CONSTRUCTED_ATTRIBUTE,
-                    NsdPackage.CONSTRUCTED_ATTRIBUTE__CONSTRUCTED_ATTRIBUTES );
+                    NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTES );
         }
         return constructedAttribute;
     }
@@ -124,8 +124,8 @@ public class ConstructedAttributesImpl extends NsdObjectImpl implements Construc
      * @generated
      */
     @Override
-    public NS getNS() {
-        if( eContainerFeatureID() != NsdPackage.CONSTRUCTED_ATTRIBUTES__NS ) return null;
+    public NS getParentNS() {
+        if( eContainerFeatureID() != NsdPackage.CONSTRUCTED_ATTRIBUTES__PARENT_NS ) return null;
         return ( NS ) eInternalContainer();
     }
 
@@ -134,8 +134,9 @@ public class ConstructedAttributesImpl extends NsdObjectImpl implements Construc
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetNS( NS newNS, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newNS, NsdPackage.CONSTRUCTED_ATTRIBUTES__NS, msgs );
+    public NotificationChain basicSetParentNS( NS newParentNS, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentNS, NsdPackage.CONSTRUCTED_ATTRIBUTES__PARENT_NS,
+                msgs );
         return msgs;
     }
 
@@ -145,23 +146,23 @@ public class ConstructedAttributesImpl extends NsdObjectImpl implements Construc
      * @generated
      */
     @Override
-    public void setNS( NS newNS ) {
-        if( newNS != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.CONSTRUCTED_ATTRIBUTES__NS && newNS != null ) ) {
-            if( EcoreUtil.isAncestor( this, newNS ) )
+    public void setParentNS( NS newParentNS ) {
+        if( newParentNS != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.CONSTRUCTED_ATTRIBUTES__PARENT_NS && newParentNS != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentNS ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newNS != null )
-                msgs = ( ( InternalEObject ) newNS ).eInverseAdd( this, NsdPackage.NS__CONSTRUCTED_ATTRIBUTES, NS.class,
-                        msgs );
-            msgs = basicSetNS( newNS, msgs );
+            if( newParentNS != null )
+                msgs = ( ( InternalEObject ) newParentNS ).eInverseAdd( this, NsdPackage.NS__CONSTRUCTED_ATTRIBUTES,
+                        NS.class, msgs );
+            msgs = basicSetParentNS( newParentNS, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.CONSTRUCTED_ATTRIBUTES__NS, newNS,
-                    newNS ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.CONSTRUCTED_ATTRIBUTES__PARENT_NS,
+                    newParentNS, newParentNS ) );
     }
 
     /**
@@ -176,10 +177,10 @@ public class ConstructedAttributesImpl extends NsdObjectImpl implements Construc
         case NsdPackage.CONSTRUCTED_ATTRIBUTES__CONSTRUCTED_ATTRIBUTE:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getConstructedAttribute() )
                     .basicAdd( otherEnd, msgs );
-        case NsdPackage.CONSTRUCTED_ATTRIBUTES__NS:
+        case NsdPackage.CONSTRUCTED_ATTRIBUTES__PARENT_NS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetNS( ( NS ) otherEnd, msgs );
+            return basicSetParentNS( ( NS ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -194,8 +195,8 @@ public class ConstructedAttributesImpl extends NsdObjectImpl implements Construc
         switch( featureID ) {
         case NsdPackage.CONSTRUCTED_ATTRIBUTES__CONSTRUCTED_ATTRIBUTE:
             return ( ( InternalEList< ? > ) getConstructedAttribute() ).basicRemove( otherEnd, msgs );
-        case NsdPackage.CONSTRUCTED_ATTRIBUTES__NS:
-            return basicSetNS( null, msgs );
+        case NsdPackage.CONSTRUCTED_ATTRIBUTES__PARENT_NS:
+            return basicSetParentNS( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -208,7 +209,7 @@ public class ConstructedAttributesImpl extends NsdObjectImpl implements Construc
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.CONSTRUCTED_ATTRIBUTES__NS:
+        case NsdPackage.CONSTRUCTED_ATTRIBUTES__PARENT_NS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.NS__CONSTRUCTED_ATTRIBUTES, NS.class, msgs );
         }
         return super.eBasicRemoveFromContainerFeature( msgs );
@@ -224,8 +225,8 @@ public class ConstructedAttributesImpl extends NsdObjectImpl implements Construc
         switch( featureID ) {
         case NsdPackage.CONSTRUCTED_ATTRIBUTES__CONSTRUCTED_ATTRIBUTE:
             return getConstructedAttribute();
-        case NsdPackage.CONSTRUCTED_ATTRIBUTES__NS:
-            return getNS();
+        case NsdPackage.CONSTRUCTED_ATTRIBUTES__PARENT_NS:
+            return getParentNS();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -243,8 +244,8 @@ public class ConstructedAttributesImpl extends NsdObjectImpl implements Construc
             getConstructedAttribute().clear();
             getConstructedAttribute().addAll( ( Collection< ? extends ConstructedAttribute > ) newValue );
             return;
-        case NsdPackage.CONSTRUCTED_ATTRIBUTES__NS:
-            setNS( ( NS ) newValue );
+        case NsdPackage.CONSTRUCTED_ATTRIBUTES__PARENT_NS:
+            setParentNS( ( NS ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -261,8 +262,8 @@ public class ConstructedAttributesImpl extends NsdObjectImpl implements Construc
         case NsdPackage.CONSTRUCTED_ATTRIBUTES__CONSTRUCTED_ATTRIBUTE:
             unsetConstructedAttribute();
             return;
-        case NsdPackage.CONSTRUCTED_ATTRIBUTES__NS:
-            setNS( ( NS ) null );
+        case NsdPackage.CONSTRUCTED_ATTRIBUTES__PARENT_NS:
+            setParentNS( ( NS ) null );
             return;
         }
         super.eUnset( featureID );
@@ -278,8 +279,8 @@ public class ConstructedAttributesImpl extends NsdObjectImpl implements Construc
         switch( featureID ) {
         case NsdPackage.CONSTRUCTED_ATTRIBUTES__CONSTRUCTED_ATTRIBUTE:
             return isSetConstructedAttribute();
-        case NsdPackage.CONSTRUCTED_ATTRIBUTES__NS:
-            return getNS() != null;
+        case NsdPackage.CONSTRUCTED_ATTRIBUTES__PARENT_NS:
+            return getParentNS() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/CopyrightNoticeImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/CopyrightNoticeImpl.java
index fd859aa222debb80cf657e645b3246dff640330d..6070f7c448b6053500f565a889c18894a6b7a288 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/CopyrightNoticeImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/CopyrightNoticeImpl.java
@@ -44,7 +44,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.CopyrightNoticeImpl#getNotice <em>Notice</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.CopyrightNoticeImpl#getLicense <em>License</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.CopyrightNoticeImpl#getCopyrighted <em>Copyrighted</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.CopyrightNoticeImpl#getParentCopyrighted <em>Parent Copyrighted</em>}</li>
  * </ul>
  *
  * @generated
@@ -148,10 +148,10 @@ public class CopyrightNoticeImpl extends NsdObjectImpl implements CopyrightNotic
         if( newNotice != notice ) {
             NotificationChain msgs = null;
             if( notice != null )
-                msgs = ( ( InternalEObject ) notice ).eInverseRemove( this, NsdPackage.NOTICE__COPYRIGHT_NOTICE,
+                msgs = ( ( InternalEObject ) notice ).eInverseRemove( this, NsdPackage.NOTICE__PARENT_COPYRIGHT_NOTICE,
                         Notice.class, msgs );
             if( newNotice != null )
-                msgs = ( ( InternalEObject ) newNotice ).eInverseAdd( this, NsdPackage.NOTICE__COPYRIGHT_NOTICE,
+                msgs = ( ( InternalEObject ) newNotice ).eInverseAdd( this, NsdPackage.NOTICE__PARENT_COPYRIGHT_NOTICE,
                         Notice.class, msgs );
             msgs = basicSetNotice( newNotice, msgs );
             if( msgs != null ) msgs.dispatch();
@@ -195,7 +195,7 @@ public class CopyrightNoticeImpl extends NsdObjectImpl implements CopyrightNotic
     public void unsetNotice() {
         if( notice != null ) {
             NotificationChain msgs = null;
-            msgs = ( ( InternalEObject ) notice ).eInverseRemove( this, NsdPackage.NOTICE__COPYRIGHT_NOTICE,
+            msgs = ( ( InternalEObject ) notice ).eInverseRemove( this, NsdPackage.NOTICE__PARENT_COPYRIGHT_NOTICE,
                     Notice.class, msgs );
             msgs = basicUnsetNotice( msgs );
             if( msgs != null ) msgs.dispatch();
@@ -260,11 +260,11 @@ public class CopyrightNoticeImpl extends NsdObjectImpl implements CopyrightNotic
         if( newLicense != license ) {
             NotificationChain msgs = null;
             if( license != null )
-                msgs = ( ( InternalEObject ) license ).eInverseRemove( this, NsdPackage.LICENSE__COPYRIGHT_NOTICE,
-                        License.class, msgs );
+                msgs = ( ( InternalEObject ) license ).eInverseRemove( this,
+                        NsdPackage.LICENSE__PARENT_COPYRIGHT_NOTICE, License.class, msgs );
             if( newLicense != null )
-                msgs = ( ( InternalEObject ) newLicense ).eInverseAdd( this, NsdPackage.LICENSE__COPYRIGHT_NOTICE,
-                        License.class, msgs );
+                msgs = ( ( InternalEObject ) newLicense ).eInverseAdd( this,
+                        NsdPackage.LICENSE__PARENT_COPYRIGHT_NOTICE, License.class, msgs );
             msgs = basicSetLicense( newLicense, msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -307,7 +307,7 @@ public class CopyrightNoticeImpl extends NsdObjectImpl implements CopyrightNotic
     public void unsetLicense() {
         if( license != null ) {
             NotificationChain msgs = null;
-            msgs = ( ( InternalEObject ) license ).eInverseRemove( this, NsdPackage.LICENSE__COPYRIGHT_NOTICE,
+            msgs = ( ( InternalEObject ) license ).eInverseRemove( this, NsdPackage.LICENSE__PARENT_COPYRIGHT_NOTICE,
                     License.class, msgs );
             msgs = basicUnsetLicense( msgs );
             if( msgs != null ) msgs.dispatch();
@@ -337,8 +337,8 @@ public class CopyrightNoticeImpl extends NsdObjectImpl implements CopyrightNotic
      * @generated
      */
     @Override
-    public Copyrighted getCopyrighted() {
-        if( eContainerFeatureID() != NsdPackage.COPYRIGHT_NOTICE__COPYRIGHTED ) return null;
+    public Copyrighted getParentCopyrighted() {
+        if( eContainerFeatureID() != NsdPackage.COPYRIGHT_NOTICE__PARENT_COPYRIGHTED ) return null;
         return ( Copyrighted ) eInternalContainer();
     }
 
@@ -347,8 +347,9 @@ public class CopyrightNoticeImpl extends NsdObjectImpl implements CopyrightNotic
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetCopyrighted( Copyrighted newCopyrighted, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newCopyrighted, NsdPackage.COPYRIGHT_NOTICE__COPYRIGHTED, msgs );
+    public NotificationChain basicSetParentCopyrighted( Copyrighted newParentCopyrighted, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentCopyrighted,
+                NsdPackage.COPYRIGHT_NOTICE__PARENT_COPYRIGHTED, msgs );
         return msgs;
     }
 
@@ -358,23 +359,24 @@ public class CopyrightNoticeImpl extends NsdObjectImpl implements CopyrightNotic
      * @generated
      */
     @Override
-    public void setCopyrighted( Copyrighted newCopyrighted ) {
-        if( newCopyrighted != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.COPYRIGHT_NOTICE__COPYRIGHTED && newCopyrighted != null ) ) {
-            if( EcoreUtil.isAncestor( this, newCopyrighted ) )
+    public void setParentCopyrighted( Copyrighted newParentCopyrighted ) {
+        if( newParentCopyrighted != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.COPYRIGHT_NOTICE__PARENT_COPYRIGHTED
+                        && newParentCopyrighted != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentCopyrighted ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newCopyrighted != null )
-                msgs = ( ( InternalEObject ) newCopyrighted ).eInverseAdd( this, NsdPackage.COPYRIGHTED__COPYRIGHT,
-                        Copyrighted.class, msgs );
-            msgs = basicSetCopyrighted( newCopyrighted, msgs );
+            if( newParentCopyrighted != null )
+                msgs = ( ( InternalEObject ) newParentCopyrighted ).eInverseAdd( this,
+                        NsdPackage.COPYRIGHTED__COPYRIGHT, Copyrighted.class, msgs );
+            msgs = basicSetParentCopyrighted( newParentCopyrighted, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.COPYRIGHT_NOTICE__COPYRIGHTED,
-                    newCopyrighted, newCopyrighted ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.COPYRIGHT_NOTICE__PARENT_COPYRIGHTED,
+                    newParentCopyrighted, newParentCopyrighted ) );
     }
 
     /**
@@ -395,10 +397,10 @@ public class CopyrightNoticeImpl extends NsdObjectImpl implements CopyrightNotic
                 msgs = ( ( InternalEObject ) license ).eInverseRemove( this,
                         EOPPOSITE_FEATURE_BASE - NsdPackage.COPYRIGHT_NOTICE__LICENSE, null, msgs );
             return basicSetLicense( ( License ) otherEnd, msgs );
-        case NsdPackage.COPYRIGHT_NOTICE__COPYRIGHTED:
+        case NsdPackage.COPYRIGHT_NOTICE__PARENT_COPYRIGHTED:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetCopyrighted( ( Copyrighted ) otherEnd, msgs );
+            return basicSetParentCopyrighted( ( Copyrighted ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -415,8 +417,8 @@ public class CopyrightNoticeImpl extends NsdObjectImpl implements CopyrightNotic
             return basicUnsetNotice( msgs );
         case NsdPackage.COPYRIGHT_NOTICE__LICENSE:
             return basicUnsetLicense( msgs );
-        case NsdPackage.COPYRIGHT_NOTICE__COPYRIGHTED:
-            return basicSetCopyrighted( null, msgs );
+        case NsdPackage.COPYRIGHT_NOTICE__PARENT_COPYRIGHTED:
+            return basicSetParentCopyrighted( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -429,7 +431,7 @@ public class CopyrightNoticeImpl extends NsdObjectImpl implements CopyrightNotic
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.COPYRIGHT_NOTICE__COPYRIGHTED:
+        case NsdPackage.COPYRIGHT_NOTICE__PARENT_COPYRIGHTED:
             return eInternalContainer().eInverseRemove( this, NsdPackage.COPYRIGHTED__COPYRIGHT, Copyrighted.class,
                     msgs );
         }
@@ -448,8 +450,8 @@ public class CopyrightNoticeImpl extends NsdObjectImpl implements CopyrightNotic
             return getNotice();
         case NsdPackage.COPYRIGHT_NOTICE__LICENSE:
             return getLicense();
-        case NsdPackage.COPYRIGHT_NOTICE__COPYRIGHTED:
-            return getCopyrighted();
+        case NsdPackage.COPYRIGHT_NOTICE__PARENT_COPYRIGHTED:
+            return getParentCopyrighted();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -468,8 +470,8 @@ public class CopyrightNoticeImpl extends NsdObjectImpl implements CopyrightNotic
         case NsdPackage.COPYRIGHT_NOTICE__LICENSE:
             setLicense( ( License ) newValue );
             return;
-        case NsdPackage.COPYRIGHT_NOTICE__COPYRIGHTED:
-            setCopyrighted( ( Copyrighted ) newValue );
+        case NsdPackage.COPYRIGHT_NOTICE__PARENT_COPYRIGHTED:
+            setParentCopyrighted( ( Copyrighted ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -489,8 +491,8 @@ public class CopyrightNoticeImpl extends NsdObjectImpl implements CopyrightNotic
         case NsdPackage.COPYRIGHT_NOTICE__LICENSE:
             unsetLicense();
             return;
-        case NsdPackage.COPYRIGHT_NOTICE__COPYRIGHTED:
-            setCopyrighted( ( Copyrighted ) null );
+        case NsdPackage.COPYRIGHT_NOTICE__PARENT_COPYRIGHTED:
+            setParentCopyrighted( ( Copyrighted ) null );
             return;
         }
         super.eUnset( featureID );
@@ -508,8 +510,8 @@ public class CopyrightNoticeImpl extends NsdObjectImpl implements CopyrightNotic
             return isSetNotice();
         case NsdPackage.COPYRIGHT_NOTICE__LICENSE:
             return isSetLicense();
-        case NsdPackage.COPYRIGHT_NOTICE__COPYRIGHTED:
-            return getCopyrighted() != null;
+        case NsdPackage.COPYRIGHT_NOTICE__PARENT_COPYRIGHTED:
+            return getParentCopyrighted() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/CopyrightedImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/CopyrightedImpl.java
index 6c4273c1fa573417806e6a77cb40ff161018fd68..0a286d3b2f704c4aeba50407d5707d9af8990304 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/CopyrightedImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/CopyrightedImpl.java
@@ -124,11 +124,11 @@ public class CopyrightedImpl extends NsdObjectImpl implements Copyrighted {
         if( newCopyright != copyright ) {
             NotificationChain msgs = null;
             if( copyright != null )
-                msgs = ( ( InternalEObject ) copyright ).eInverseRemove( this, NsdPackage.COPYRIGHT_NOTICE__COPYRIGHTED,
-                        CopyrightNotice.class, msgs );
+                msgs = ( ( InternalEObject ) copyright ).eInverseRemove( this,
+                        NsdPackage.COPYRIGHT_NOTICE__PARENT_COPYRIGHTED, CopyrightNotice.class, msgs );
             if( newCopyright != null )
-                msgs = ( ( InternalEObject ) newCopyright ).eInverseAdd( this, NsdPackage.COPYRIGHT_NOTICE__COPYRIGHTED,
-                        CopyrightNotice.class, msgs );
+                msgs = ( ( InternalEObject ) newCopyright ).eInverseAdd( this,
+                        NsdPackage.COPYRIGHT_NOTICE__PARENT_COPYRIGHTED, CopyrightNotice.class, msgs );
             msgs = basicSetCopyright( newCopyright, msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -171,8 +171,8 @@ public class CopyrightedImpl extends NsdObjectImpl implements Copyrighted {
     public void unsetCopyright() {
         if( copyright != null ) {
             NotificationChain msgs = null;
-            msgs = ( ( InternalEObject ) copyright ).eInverseRemove( this, NsdPackage.COPYRIGHT_NOTICE__COPYRIGHTED,
-                    CopyrightNotice.class, msgs );
+            msgs = ( ( InternalEObject ) copyright ).eInverseRemove( this,
+                    NsdPackage.COPYRIGHT_NOTICE__PARENT_COPYRIGHTED, CopyrightNotice.class, msgs );
             msgs = basicUnsetCopyright( msgs );
             if( msgs != null ) msgs.dispatch();
         }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataAttributeImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataAttributeImpl.java
index d6d0c1c1c1765bc48ae32882792056b37d562106..11b0f13fcffe0c0847917539c519e4fe5d23ca1c 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataAttributeImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataAttributeImpl.java
@@ -79,7 +79,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataAttributeImpl#getMinValue <em>Min Value</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataAttributeImpl#getFc <em>Fc</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataAttributeImpl#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataAttributeImpl#getCDC <em>CDC</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataAttributeImpl#getParentCDC <em>Parent CDC</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataAttributeImpl#getReferredBySubDataObjectAsSizeAttribute <em>Referred By Sub Data Object As Size Attribute</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataAttributeImpl#getReferredBySubDataObjectAsMaxIndexAttribute <em>Referred By Sub Data Object As Max Index Attribute</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataAttributeImpl#getRefersToFunctionalConstraint <em>Refers To Functional Constraint</em>}</li>
@@ -1262,6 +1262,52 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib
         return nameESet;
     }
 
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public CDC getParentCDC() {
+        if( eContainerFeatureID() != NsdPackage.DATA_ATTRIBUTE__PARENT_CDC ) return null;
+        return ( CDC ) eInternalContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetParentCDC( CDC newParentCDC, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentCDC, NsdPackage.DATA_ATTRIBUTE__PARENT_CDC, msgs );
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public void setParentCDC( CDC newParentCDC ) {
+        if( newParentCDC != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.DATA_ATTRIBUTE__PARENT_CDC && newParentCDC != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentCDC ) )
+                throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
+            NotificationChain msgs = null;
+            if( eInternalContainer() != null )
+                msgs = eBasicRemoveFromContainer( msgs );
+            if( newParentCDC != null )
+                msgs = ( ( InternalEObject ) newParentCDC ).eInverseAdd( this, NsdPackage.CDC__DATA_ATTRIBUTE,
+                        CDC.class, msgs );
+            msgs = basicSetParentCDC( newParentCDC, msgs );
+            if( msgs != null ) msgs.dispatch();
+        }
+        else if( eNotificationRequired() )
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.DATA_ATTRIBUTE__PARENT_CDC, newParentCDC,
+                    newParentCDC ) );
+    }
+
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1626,51 +1672,6 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib
         return typeKindESet;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public CDC getCDC() {
-        if( eContainerFeatureID() != NsdPackage.DATA_ATTRIBUTE__CDC ) return null;
-        return ( CDC ) eInternalContainer();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public NotificationChain basicSetCDC( CDC newCDC, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newCDC, NsdPackage.DATA_ATTRIBUTE__CDC, msgs );
-        return msgs;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void setCDC( CDC newCDC ) {
-        if( newCDC != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.DATA_ATTRIBUTE__CDC && newCDC != null ) ) {
-            if( EcoreUtil.isAncestor( this, newCDC ) )
-                throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
-            NotificationChain msgs = null;
-            if( eInternalContainer() != null )
-                msgs = eBasicRemoveFromContainer( msgs );
-            if( newCDC != null )
-                msgs = ( ( InternalEObject ) newCDC ).eInverseAdd( this, NsdPackage.CDC__DATA_ATTRIBUTE, CDC.class,
-                        msgs );
-            msgs = basicSetCDC( newCDC, msgs );
-            if( msgs != null ) msgs.dispatch();
-        }
-        else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.DATA_ATTRIBUTE__CDC, newCDC, newCDC ) );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -2420,10 +2421,10 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.DATA_ATTRIBUTE__CDC:
+        case NsdPackage.DATA_ATTRIBUTE__PARENT_CDC:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetCDC( ( CDC ) otherEnd, msgs );
+            return basicSetParentCDC( ( CDC ) otherEnd, msgs );
         case NsdPackage.DATA_ATTRIBUTE__REFERRED_BY_SUB_DATA_OBJECT_AS_SIZE_ATTRIBUTE:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getReferredBySubDataObjectAsSizeAttribute() )
                     .basicAdd( otherEnd, msgs );
@@ -2476,8 +2477,8 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib
     @Override
     public NotificationChain eInverseRemove( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.DATA_ATTRIBUTE__CDC:
-            return basicSetCDC( null, msgs );
+        case NsdPackage.DATA_ATTRIBUTE__PARENT_CDC:
+            return basicSetParentCDC( null, msgs );
         case NsdPackage.DATA_ATTRIBUTE__REFERRED_BY_SUB_DATA_OBJECT_AS_SIZE_ATTRIBUTE:
             return ( ( InternalEList< ? > ) getReferredBySubDataObjectAsSizeAttribute() ).basicRemove( otherEnd, msgs );
         case NsdPackage.DATA_ATTRIBUTE__REFERRED_BY_SUB_DATA_OBJECT_AS_MAX_INDEX_ATTRIBUTE:
@@ -2510,7 +2511,7 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.DATA_ATTRIBUTE__CDC:
+        case NsdPackage.DATA_ATTRIBUTE__PARENT_CDC:
             return eInternalContainer().eInverseRemove( this, NsdPackage.CDC__DATA_ATTRIBUTE, CDC.class, msgs );
         }
         return super.eBasicRemoveFromContainerFeature( msgs );
@@ -2558,8 +2559,8 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib
             return getFc();
         case NsdPackage.DATA_ATTRIBUTE__NAME:
             return getName();
-        case NsdPackage.DATA_ATTRIBUTE__CDC:
-            return getCDC();
+        case NsdPackage.DATA_ATTRIBUTE__PARENT_CDC:
+            return getParentCDC();
         case NsdPackage.DATA_ATTRIBUTE__REFERRED_BY_SUB_DATA_OBJECT_AS_SIZE_ATTRIBUTE:
             return getReferredBySubDataObjectAsSizeAttribute();
         case NsdPackage.DATA_ATTRIBUTE__REFERRED_BY_SUB_DATA_OBJECT_AS_MAX_INDEX_ATTRIBUTE:
@@ -2642,8 +2643,8 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib
         case NsdPackage.DATA_ATTRIBUTE__NAME:
             setName( ( String ) newValue );
             return;
-        case NsdPackage.DATA_ATTRIBUTE__CDC:
-            setCDC( ( CDC ) newValue );
+        case NsdPackage.DATA_ATTRIBUTE__PARENT_CDC:
+            setParentCDC( ( CDC ) newValue );
             return;
         case NsdPackage.DATA_ATTRIBUTE__REFERRED_BY_SUB_DATA_OBJECT_AS_SIZE_ATTRIBUTE:
             getReferredBySubDataObjectAsSizeAttribute().clear();
@@ -2741,8 +2742,8 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib
         case NsdPackage.DATA_ATTRIBUTE__NAME:
             unsetName();
             return;
-        case NsdPackage.DATA_ATTRIBUTE__CDC:
-            setCDC( ( CDC ) null );
+        case NsdPackage.DATA_ATTRIBUTE__PARENT_CDC:
+            setParentCDC( ( CDC ) null );
             return;
         case NsdPackage.DATA_ATTRIBUTE__REFERRED_BY_SUB_DATA_OBJECT_AS_SIZE_ATTRIBUTE:
             unsetReferredBySubDataObjectAsSizeAttribute();
@@ -2817,8 +2818,8 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib
             return isSetFc();
         case NsdPackage.DATA_ATTRIBUTE__NAME:
             return isSetName();
-        case NsdPackage.DATA_ATTRIBUTE__CDC:
-            return getCDC() != null;
+        case NsdPackage.DATA_ATTRIBUTE__PARENT_CDC:
+            return getParentCDC() != null;
         case NsdPackage.DATA_ATTRIBUTE__REFERRED_BY_SUB_DATA_OBJECT_AS_SIZE_ATTRIBUTE:
             return isSetReferredBySubDataObjectAsSizeAttribute();
         case NsdPackage.DATA_ATTRIBUTE__REFERRED_BY_SUB_DATA_OBJECT_AS_MAX_INDEX_ATTRIBUTE:
@@ -3090,7 +3091,7 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib
     public boolean buildExplicitLinks( IRiseClipseConsole console, boolean forceUpdate ) {
         if( super.buildExplicitLinks( console, forceUpdate ) ) return true;
 
-        NS ns = getCDC().getCDCs().getNS();
+        NS ns = getParentCDC().getParentCDCs().getParentNS();
 
         if( isSetFc() ) {
             FunctionalConstraint foundFC = ns.findFunctionalConstraint( getFc(), console );
@@ -3103,7 +3104,8 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib
                 setRefersToFunctionalConstraint( foundFC );
                 console.verbose( "FunctionalConstraint (abbreviation: " + getFc() + ") refers by DataAttribute (name: "
                         + getName() + ") in NS (id:" + ns.getId() + ") found in NS (id:"
-                        + getRefersToFunctionalConstraint().getFunctionalConstraints().getNS().getId() + ")" );
+                        + getRefersToFunctionalConstraint().getParentFunctionalConstraints().getParentNS().getId()
+                        + ")" );
             }
         }
 
@@ -3118,12 +3120,12 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib
                 setRefersToPresenceCondition( foundPC );
                 console.verbose( "PresenceCondition (name: " + getPresCond() + ") refers by DataAttribute (name: "
                         + getName() + ") in NS (id:" + ns.getId() + ") found in NS (id:"
-                        + getRefersToPresenceCondition().getPresenceConditions().getNS().getId() + ")" );
+                        + getRefersToPresenceCondition().getParentPresenceConditions().getParentNS().getId() + ")" );
             }
         }
 
         if( isSetSizeAttribute() ) {
-            getCDC()
+            getParentCDC()
                     .getDataAttribute()
                     .stream()
                     .filter( att -> att.getName().equals( getSizeAttribute() ) )
@@ -3143,7 +3145,7 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib
         }
 
         if( isSetMaxIndexAttribute() ) {
-            getCDC()
+            getParentCDC()
                     .getDataAttribute()
                     .stream()
                     .filter( att -> att.getName().equals( getMaxIndexAttribute() ) )
@@ -3173,7 +3175,7 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib
                 setRefersToBasicType( foundBT );
                 console.verbose( "BasicType (name: " + getType() + ") refers as type by DataAttribute (name: "
                         + getName() + ") in NS (id:" + ns.getId() + ") found in NS (id:"
-                        + getRefersToBasicType().getBasicTypes().getNS().getId() + ")" );
+                        + getRefersToBasicType().getParentBasicTypes().getParentNS().getId() + ")" );
             }
         }
 
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataObjectImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataObjectImpl.java
index 6c035c64488122671edd784e78dcbcc680cdb52a..30c0d5daf1f8bec2adef14b5e7cfd79beaf07ab7 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataObjectImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataObjectImpl.java
@@ -60,7 +60,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataObjectImpl#getName <em>Name</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataObjectImpl#isTransient <em>Transient</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataObjectImpl#getType <em>Type</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataObjectImpl#getAnyLNClass <em>Any LN Class</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataObjectImpl#getParentAnyLNClass <em>Parent Any LN Class</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataObjectImpl#getRefersToCDC <em>Refers To CDC</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataObjectImpl#getRefersToPresenceCondition <em>Refers To Presence Condition</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataObjectImpl#getRefersToPresenceConditionDerivedStatistics <em>Refers To Presence Condition Derived Statistics</em>}</li>
@@ -932,6 +932,54 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject {
         return typeESet;
     }
 
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public AnyLNClass getParentAnyLNClass() {
+        if( eContainerFeatureID() != NsdPackage.DATA_OBJECT__PARENT_ANY_LN_CLASS ) return null;
+        return ( AnyLNClass ) eInternalContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetParentAnyLNClass( AnyLNClass newParentAnyLNClass, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentAnyLNClass, NsdPackage.DATA_OBJECT__PARENT_ANY_LN_CLASS,
+                msgs );
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public void setParentAnyLNClass( AnyLNClass newParentAnyLNClass ) {
+        if( newParentAnyLNClass != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.DATA_OBJECT__PARENT_ANY_LN_CLASS
+                        && newParentAnyLNClass != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentAnyLNClass ) )
+                throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
+            NotificationChain msgs = null;
+            if( eInternalContainer() != null )
+                msgs = eBasicRemoveFromContainer( msgs );
+            if( newParentAnyLNClass != null )
+                msgs = ( ( InternalEObject ) newParentAnyLNClass ).eInverseAdd( this,
+                        NsdPackage.ANY_LN_CLASS__DATA_OBJECT, AnyLNClass.class, msgs );
+            msgs = basicSetParentAnyLNClass( newParentAnyLNClass, msgs );
+            if( msgs != null ) msgs.dispatch();
+        }
+        else if( eNotificationRequired() )
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.DATA_OBJECT__PARENT_ANY_LN_CLASS,
+                    newParentAnyLNClass, newParentAnyLNClass ) );
+    }
+
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1036,52 +1084,6 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject {
         return underlyingTypeKindESet;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public AnyLNClass getAnyLNClass() {
-        if( eContainerFeatureID() != NsdPackage.DATA_OBJECT__ANY_LN_CLASS ) return null;
-        return ( AnyLNClass ) eInternalContainer();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public NotificationChain basicSetAnyLNClass( AnyLNClass newAnyLNClass, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newAnyLNClass, NsdPackage.DATA_OBJECT__ANY_LN_CLASS, msgs );
-        return msgs;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void setAnyLNClass( AnyLNClass newAnyLNClass ) {
-        if( newAnyLNClass != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.DATA_OBJECT__ANY_LN_CLASS && newAnyLNClass != null ) ) {
-            if( EcoreUtil.isAncestor( this, newAnyLNClass ) )
-                throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
-            NotificationChain msgs = null;
-            if( eInternalContainer() != null )
-                msgs = eBasicRemoveFromContainer( msgs );
-            if( newAnyLNClass != null )
-                msgs = ( ( InternalEObject ) newAnyLNClass ).eInverseAdd( this, NsdPackage.ANY_LN_CLASS__DATA_OBJECT,
-                        AnyLNClass.class, msgs );
-            msgs = basicSetAnyLNClass( newAnyLNClass, msgs );
-            if( msgs != null ) msgs.dispatch();
-        }
-        else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.DATA_OBJECT__ANY_LN_CLASS, newAnyLNClass,
-                    newAnyLNClass ) );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1444,10 +1446,10 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject {
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.DATA_OBJECT__ANY_LN_CLASS:
+        case NsdPackage.DATA_OBJECT__PARENT_ANY_LN_CLASS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetAnyLNClass( ( AnyLNClass ) otherEnd, msgs );
+            return basicSetParentAnyLNClass( ( AnyLNClass ) otherEnd, msgs );
         case NsdPackage.DATA_OBJECT__REFERS_TO_CDC:
             if( refersToCDC != null )
                 msgs = ( ( InternalEObject ) refersToCDC ).eInverseRemove( this,
@@ -1476,8 +1478,8 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject {
     @Override
     public NotificationChain eInverseRemove( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.DATA_OBJECT__ANY_LN_CLASS:
-            return basicSetAnyLNClass( null, msgs );
+        case NsdPackage.DATA_OBJECT__PARENT_ANY_LN_CLASS:
+            return basicSetParentAnyLNClass( null, msgs );
         case NsdPackage.DATA_OBJECT__REFERS_TO_CDC:
             return basicUnsetRefersToCDC( msgs );
         case NsdPackage.DATA_OBJECT__REFERS_TO_PRESENCE_CONDITION:
@@ -1496,7 +1498,7 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.DATA_OBJECT__ANY_LN_CLASS:
+        case NsdPackage.DATA_OBJECT__PARENT_ANY_LN_CLASS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.ANY_LN_CLASS__DATA_OBJECT, AnyLNClass.class,
                     msgs );
         }
@@ -1533,8 +1535,8 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject {
             return isTransient();
         case NsdPackage.DATA_OBJECT__TYPE:
             return getType();
-        case NsdPackage.DATA_OBJECT__ANY_LN_CLASS:
-            return getAnyLNClass();
+        case NsdPackage.DATA_OBJECT__PARENT_ANY_LN_CLASS:
+            return getParentAnyLNClass();
         case NsdPackage.DATA_OBJECT__REFERS_TO_CDC:
             return getRefersToCDC();
         case NsdPackage.DATA_OBJECT__REFERS_TO_PRESENCE_CONDITION:
@@ -1586,8 +1588,8 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject {
         case NsdPackage.DATA_OBJECT__TYPE:
             setType( ( String ) newValue );
             return;
-        case NsdPackage.DATA_OBJECT__ANY_LN_CLASS:
-            setAnyLNClass( ( AnyLNClass ) newValue );
+        case NsdPackage.DATA_OBJECT__PARENT_ANY_LN_CLASS:
+            setParentAnyLNClass( ( AnyLNClass ) newValue );
             return;
         case NsdPackage.DATA_OBJECT__REFERS_TO_CDC:
             setRefersToCDC( ( CDC ) newValue );
@@ -1643,8 +1645,8 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject {
         case NsdPackage.DATA_OBJECT__TYPE:
             unsetType();
             return;
-        case NsdPackage.DATA_OBJECT__ANY_LN_CLASS:
-            setAnyLNClass( ( AnyLNClass ) null );
+        case NsdPackage.DATA_OBJECT__PARENT_ANY_LN_CLASS:
+            setParentAnyLNClass( ( AnyLNClass ) null );
             return;
         case NsdPackage.DATA_OBJECT__REFERS_TO_CDC:
             unsetRefersToCDC();
@@ -1689,8 +1691,8 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject {
             return isSetTransient();
         case NsdPackage.DATA_OBJECT__TYPE:
             return isSetType();
-        case NsdPackage.DATA_OBJECT__ANY_LN_CLASS:
-            return getAnyLNClass() != null;
+        case NsdPackage.DATA_OBJECT__PARENT_ANY_LN_CLASS:
+            return getParentAnyLNClass() != null;
         case NsdPackage.DATA_OBJECT__REFERS_TO_CDC:
             return isSetRefersToCDC();
         case NsdPackage.DATA_OBJECT__REFERS_TO_PRESENCE_CONDITION:
@@ -1867,7 +1869,7 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject {
     public boolean buildExplicitLinks( IRiseClipseConsole console, boolean forceUpdate ) {
         if( super.buildExplicitLinks( console, forceUpdate ) ) return true;
 
-        NS ns = getAnyLNClass().getLNClasses().getNS();
+        NS ns = getParentAnyLNClass().getParentLNClasses().getParentNS();
         if( isSetType() ) {
             CDC foundCDC = ns.findCDC( getType(), console );
 
@@ -1879,7 +1881,7 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject {
                 setRefersToCDC( foundCDC );
                 console.verbose( "CDC (name: " + getType() + ") refers by DataObject (name: " + getName()
                         + ") in NS (id:" + ns.getId() + ") found in NS (id:"
-                        + getRefersToCDC().getCDCs().getNS().getId() + ")" );
+                        + getRefersToCDC().getParentCDCs().getParentNS().getId() + ")" );
             }
         }
 
@@ -1894,7 +1896,7 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject {
                 setRefersToPresenceCondition( foundPC );
                 console.verbose( "PresenceCondition (name: " + getPresCond() + ") refers by DataObject (name: "
                         + getName() + ") in NS (id:" + ns.getId() + ") found in NS (id:"
-                        + getRefersToPresenceCondition().getPresenceConditions().getNS().getId() + ")" );
+                        + getRefersToPresenceCondition().getParentPresenceConditions().getParentNS().getId() + ")" );
             }
         }
 
@@ -1903,14 +1905,15 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject {
             if( foundPC == null ) {
                 console.error(
                         "PresenceCondition (name: " + getDsPresCond() + ") refers by DataObject (name: " + getName()
-                                + ") in NS (id:" + getAnyLNClass().getLNClasses().getNS().getId() + ") is unknown" );
+                                + ") in NS (id:" + getParentAnyLNClass().getParentLNClasses().getParentNS().getId()
+                                + ") is unknown" );
             }
             else {
                 setRefersToPresenceConditionDerivedStatistics( foundPC );
                 console.verbose( "PresenceCondition (name: " + getDsPresCond() + ") refers by DataObject (name: "
-                        + getName() + ") in NS (id:" + getAnyLNClass().getLNClasses().getNS().getId()
+                        + getName() + ") in NS (id:" + getParentAnyLNClass().getParentLNClasses().getParentNS().getId()
                         + ") found in NS (id:"
-                        + getRefersToPresenceConditionDerivedStatistics().getPresenceConditions().getNS().getId()
+                        + getRefersToPresenceConditionDerivedStatistics().getParentPresenceConditions().getParentNS().getId()
                         + ")" );
             }
         }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataSetMemberOfImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataSetMemberOfImpl.java
index b7f709cd898c31f2bd12c4307f32cd0b875c2a60..edcfdf170e65db4866087441ada1040db94f848c 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataSetMemberOfImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataSetMemberOfImpl.java
@@ -42,7 +42,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataSetMemberOfImpl#getCb <em>Cb</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataSetMemberOfImpl#getApplicableServices <em>Applicable Services</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataSetMemberOfImpl#getParentApplicableServices <em>Parent Applicable Services</em>}</li>
  * </ul>
  *
  * @generated
@@ -154,8 +154,8 @@ public class DataSetMemberOfImpl extends NsdObjectImpl implements DataSetMemberO
      * @generated
      */
     @Override
-    public ApplicableServices getApplicableServices() {
-        if( eContainerFeatureID() != NsdPackage.DATA_SET_MEMBER_OF__APPLICABLE_SERVICES ) return null;
+    public ApplicableServices getParentApplicableServices() {
+        if( eContainerFeatureID() != NsdPackage.DATA_SET_MEMBER_OF__PARENT_APPLICABLE_SERVICES ) return null;
         return ( ApplicableServices ) eInternalContainer();
     }
 
@@ -164,10 +164,10 @@ public class DataSetMemberOfImpl extends NsdObjectImpl implements DataSetMemberO
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetApplicableServices( ApplicableServices newApplicableServices,
+    public NotificationChain basicSetParentApplicableServices( ApplicableServices newParentApplicableServices,
             NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newApplicableServices,
-                NsdPackage.DATA_SET_MEMBER_OF__APPLICABLE_SERVICES, msgs );
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentApplicableServices,
+                NsdPackage.DATA_SET_MEMBER_OF__PARENT_APPLICABLE_SERVICES, msgs );
         return msgs;
     }
 
@@ -177,24 +177,25 @@ public class DataSetMemberOfImpl extends NsdObjectImpl implements DataSetMemberO
      * @generated
      */
     @Override
-    public void setApplicableServices( ApplicableServices newApplicableServices ) {
-        if( newApplicableServices != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.DATA_SET_MEMBER_OF__APPLICABLE_SERVICES
-                        && newApplicableServices != null ) ) {
-            if( EcoreUtil.isAncestor( this, newApplicableServices ) )
+    public void setParentApplicableServices( ApplicableServices newParentApplicableServices ) {
+        if( newParentApplicableServices != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.DATA_SET_MEMBER_OF__PARENT_APPLICABLE_SERVICES
+                        && newParentApplicableServices != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentApplicableServices ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newApplicableServices != null )
-                msgs = ( ( InternalEObject ) newApplicableServices ).eInverseAdd( this,
+            if( newParentApplicableServices != null )
+                msgs = ( ( InternalEObject ) newParentApplicableServices ).eInverseAdd( this,
                         NsdPackage.APPLICABLE_SERVICES__DATA_SET_MEMBER_OF, ApplicableServices.class, msgs );
-            msgs = basicSetApplicableServices( newApplicableServices, msgs );
+            msgs = basicSetParentApplicableServices( newParentApplicableServices, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.DATA_SET_MEMBER_OF__APPLICABLE_SERVICES,
-                    newApplicableServices, newApplicableServices ) );
+            eNotify( new ENotificationImpl( this, Notification.SET,
+                    NsdPackage.DATA_SET_MEMBER_OF__PARENT_APPLICABLE_SERVICES, newParentApplicableServices,
+                    newParentApplicableServices ) );
     }
 
     /**
@@ -205,10 +206,10 @@ public class DataSetMemberOfImpl extends NsdObjectImpl implements DataSetMemberO
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.DATA_SET_MEMBER_OF__APPLICABLE_SERVICES:
+        case NsdPackage.DATA_SET_MEMBER_OF__PARENT_APPLICABLE_SERVICES:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetApplicableServices( ( ApplicableServices ) otherEnd, msgs );
+            return basicSetParentApplicableServices( ( ApplicableServices ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -221,8 +222,8 @@ public class DataSetMemberOfImpl extends NsdObjectImpl implements DataSetMemberO
     @Override
     public NotificationChain eInverseRemove( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.DATA_SET_MEMBER_OF__APPLICABLE_SERVICES:
-            return basicSetApplicableServices( null, msgs );
+        case NsdPackage.DATA_SET_MEMBER_OF__PARENT_APPLICABLE_SERVICES:
+            return basicSetParentApplicableServices( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -235,7 +236,7 @@ public class DataSetMemberOfImpl extends NsdObjectImpl implements DataSetMemberO
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.DATA_SET_MEMBER_OF__APPLICABLE_SERVICES:
+        case NsdPackage.DATA_SET_MEMBER_OF__PARENT_APPLICABLE_SERVICES:
             return eInternalContainer().eInverseRemove( this, NsdPackage.APPLICABLE_SERVICES__DATA_SET_MEMBER_OF,
                     ApplicableServices.class, msgs );
         }
@@ -252,8 +253,8 @@ public class DataSetMemberOfImpl extends NsdObjectImpl implements DataSetMemberO
         switch( featureID ) {
         case NsdPackage.DATA_SET_MEMBER_OF__CB:
             return getCb();
-        case NsdPackage.DATA_SET_MEMBER_OF__APPLICABLE_SERVICES:
-            return getApplicableServices();
+        case NsdPackage.DATA_SET_MEMBER_OF__PARENT_APPLICABLE_SERVICES:
+            return getParentApplicableServices();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -269,8 +270,8 @@ public class DataSetMemberOfImpl extends NsdObjectImpl implements DataSetMemberO
         case NsdPackage.DATA_SET_MEMBER_OF__CB:
             setCb( ( CBKind ) newValue );
             return;
-        case NsdPackage.DATA_SET_MEMBER_OF__APPLICABLE_SERVICES:
-            setApplicableServices( ( ApplicableServices ) newValue );
+        case NsdPackage.DATA_SET_MEMBER_OF__PARENT_APPLICABLE_SERVICES:
+            setParentApplicableServices( ( ApplicableServices ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -287,8 +288,8 @@ public class DataSetMemberOfImpl extends NsdObjectImpl implements DataSetMemberO
         case NsdPackage.DATA_SET_MEMBER_OF__CB:
             unsetCb();
             return;
-        case NsdPackage.DATA_SET_MEMBER_OF__APPLICABLE_SERVICES:
-            setApplicableServices( ( ApplicableServices ) null );
+        case NsdPackage.DATA_SET_MEMBER_OF__PARENT_APPLICABLE_SERVICES:
+            setParentApplicableServices( ( ApplicableServices ) null );
             return;
         }
         super.eUnset( featureID );
@@ -304,8 +305,8 @@ public class DataSetMemberOfImpl extends NsdObjectImpl implements DataSetMemberO
         switch( featureID ) {
         case NsdPackage.DATA_SET_MEMBER_OF__CB:
             return isSetCb();
-        case NsdPackage.DATA_SET_MEMBER_OF__APPLICABLE_SERVICES:
-            return getApplicableServices() != null;
+        case NsdPackage.DATA_SET_MEMBER_OF__PARENT_APPLICABLE_SERVICES:
+            return getParentApplicableServices() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DependsOnImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DependsOnImpl.java
index bbb3a686e0f7794cee6a1e8c847396ce0ce13548..b804d3ea7bd09f1caaa4ac205a88519afe1926a8 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DependsOnImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DependsOnImpl.java
@@ -49,7 +49,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DependsOnImpl#getId <em>Id</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DependsOnImpl#getRevision <em>Revision</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DependsOnImpl#getPublicationStage <em>Publication Stage</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DependsOnImpl#getNS <em>NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DependsOnImpl#getParentNS <em>Parent NS</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DependsOnImpl#getRefersToNS <em>Refers To NS</em>}</li>
  * </ul>
  *
@@ -490,8 +490,8 @@ public class DependsOnImpl extends NsdObjectImpl implements DependsOn {
      * @generated
      */
     @Override
-    public NS getNS() {
-        if( eContainerFeatureID() != NsdPackage.DEPENDS_ON__NS ) return null;
+    public NS getParentNS() {
+        if( eContainerFeatureID() != NsdPackage.DEPENDS_ON__PARENT_NS ) return null;
         return ( NS ) eInternalContainer();
     }
 
@@ -500,8 +500,8 @@ public class DependsOnImpl extends NsdObjectImpl implements DependsOn {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetNS( NS newNS, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newNS, NsdPackage.DEPENDS_ON__NS, msgs );
+    public NotificationChain basicSetParentNS( NS newParentNS, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentNS, NsdPackage.DEPENDS_ON__PARENT_NS, msgs );
         return msgs;
     }
 
@@ -511,20 +511,23 @@ public class DependsOnImpl extends NsdObjectImpl implements DependsOn {
      * @generated
      */
     @Override
-    public void setNS( NS newNS ) {
-        if( newNS != eInternalContainer() || ( eContainerFeatureID() != NsdPackage.DEPENDS_ON__NS && newNS != null ) ) {
-            if( EcoreUtil.isAncestor( this, newNS ) )
+    public void setParentNS( NS newParentNS ) {
+        if( newParentNS != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.DEPENDS_ON__PARENT_NS && newParentNS != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentNS ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newNS != null )
-                msgs = ( ( InternalEObject ) newNS ).eInverseAdd( this, NsdPackage.NS__DEPENDS_ON, NS.class, msgs );
-            msgs = basicSetNS( newNS, msgs );
+            if( newParentNS != null )
+                msgs = ( ( InternalEObject ) newParentNS ).eInverseAdd( this, NsdPackage.NS__DEPENDS_ON, NS.class,
+                        msgs );
+            msgs = basicSetParentNS( newParentNS, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.DEPENDS_ON__NS, newNS, newNS ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.DEPENDS_ON__PARENT_NS, newParentNS,
+                    newParentNS ) );
     }
 
     /**
@@ -647,10 +650,10 @@ public class DependsOnImpl extends NsdObjectImpl implements DependsOn {
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.DEPENDS_ON__NS:
+        case NsdPackage.DEPENDS_ON__PARENT_NS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetNS( ( NS ) otherEnd, msgs );
+            return basicSetParentNS( ( NS ) otherEnd, msgs );
         case NsdPackage.DEPENDS_ON__REFERS_TO_NS:
             if( refersToNS != null )
                 msgs = ( ( InternalEObject ) refersToNS ).eInverseRemove( this, NsdPackage.NS__REFERRED_BY_DEPENDS_ON,
@@ -668,8 +671,8 @@ public class DependsOnImpl extends NsdObjectImpl implements DependsOn {
     @Override
     public NotificationChain eInverseRemove( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.DEPENDS_ON__NS:
-            return basicSetNS( null, msgs );
+        case NsdPackage.DEPENDS_ON__PARENT_NS:
+            return basicSetParentNS( null, msgs );
         case NsdPackage.DEPENDS_ON__REFERS_TO_NS:
             return basicUnsetRefersToNS( msgs );
         }
@@ -684,7 +687,7 @@ public class DependsOnImpl extends NsdObjectImpl implements DependsOn {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.DEPENDS_ON__NS:
+        case NsdPackage.DEPENDS_ON__PARENT_NS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.NS__DEPENDS_ON, NS.class, msgs );
         }
         return super.eBasicRemoveFromContainerFeature( msgs );
@@ -708,8 +711,8 @@ public class DependsOnImpl extends NsdObjectImpl implements DependsOn {
             return getRevision();
         case NsdPackage.DEPENDS_ON__PUBLICATION_STAGE:
             return getPublicationStage();
-        case NsdPackage.DEPENDS_ON__NS:
-            return getNS();
+        case NsdPackage.DEPENDS_ON__PARENT_NS:
+            return getParentNS();
         case NsdPackage.DEPENDS_ON__REFERS_TO_NS:
             return getRefersToNS();
         }
@@ -739,8 +742,8 @@ public class DependsOnImpl extends NsdObjectImpl implements DependsOn {
         case NsdPackage.DEPENDS_ON__PUBLICATION_STAGE:
             setPublicationStage( ( PubStage ) newValue );
             return;
-        case NsdPackage.DEPENDS_ON__NS:
-            setNS( ( NS ) newValue );
+        case NsdPackage.DEPENDS_ON__PARENT_NS:
+            setParentNS( ( NS ) newValue );
             return;
         case NsdPackage.DEPENDS_ON__REFERS_TO_NS:
             setRefersToNS( ( NS ) newValue );
@@ -772,8 +775,8 @@ public class DependsOnImpl extends NsdObjectImpl implements DependsOn {
         case NsdPackage.DEPENDS_ON__PUBLICATION_STAGE:
             unsetPublicationStage();
             return;
-        case NsdPackage.DEPENDS_ON__NS:
-            setNS( ( NS ) null );
+        case NsdPackage.DEPENDS_ON__PARENT_NS:
+            setParentNS( ( NS ) null );
             return;
         case NsdPackage.DEPENDS_ON__REFERS_TO_NS:
             unsetRefersToNS();
@@ -800,8 +803,8 @@ public class DependsOnImpl extends NsdObjectImpl implements DependsOn {
             return isSetRevision();
         case NsdPackage.DEPENDS_ON__PUBLICATION_STAGE:
             return isSetPublicationStage();
-        case NsdPackage.DEPENDS_ON__NS:
-            return getNS() != null;
+        case NsdPackage.DEPENDS_ON__PARENT_NS:
+            return getParentNS() != null;
         case NsdPackage.DEPENDS_ON__REFERS_TO_NS:
             return isSetRefersToNS();
         }
@@ -909,12 +912,12 @@ public class DependsOnImpl extends NsdObjectImpl implements DependsOn {
         NS ns = ( ( NsdResourceSetImpl ) eResource().getResourceSet() ).getNS( getId() );
         if( ns == null ) {
             console.error(
-                    "NS (id: " + getId() + ") and refers by DependsOn in NS (id:" + getNS().getId() + ") is unknown" );
+                    "NS (id: " + getId() + ") and refers by DependsOn in NS (id:" + getParentNS().getId() + ") is unknown" );
         }
         else {
             setRefersToNS( ns );
             console.verbose(
-                    "NS (id: " + getId() + ") and refers by DependsOn in NS (id:" + getNS().getId() + ") found" );
+                    "NS (id: " + getId() + ") and refers by DependsOn in NS (id:" + getParentNS().getId() + ") found" );
         }
         return false;
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DocImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DocImpl.java
index c4c74de3bc19d6a3ad266abe6e259b622d8345cc..1d80f037ee199ba2c2c1a111307dc2682881afa8 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DocImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DocImpl.java
@@ -47,7 +47,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DocImpl#getGroup <em>Group</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DocImpl#getAny <em>Any</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DocImpl#getId <em>Id</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DocImpl#getNSDoc <em>NS Doc</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DocImpl#getParentNSDoc <em>Parent NS Doc</em>}</li>
  * </ul>
  *
  * @generated
@@ -201,8 +201,8 @@ public class DocImpl extends NsdObjectImpl implements Doc {
      * @generated
      */
     @Override
-    public NSDoc getNSDoc() {
-        if( eContainerFeatureID() != NsdPackage.DOC__NS_DOC ) return null;
+    public NSDoc getParentNSDoc() {
+        if( eContainerFeatureID() != NsdPackage.DOC__PARENT_NS_DOC ) return null;
         return ( NSDoc ) eInternalContainer();
     }
 
@@ -211,8 +211,8 @@ public class DocImpl extends NsdObjectImpl implements Doc {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetNSDoc( NSDoc newNSDoc, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newNSDoc, NsdPackage.DOC__NS_DOC, msgs );
+    public NotificationChain basicSetParentNSDoc( NSDoc newParentNSDoc, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentNSDoc, NsdPackage.DOC__PARENT_NS_DOC, msgs );
         return msgs;
     }
 
@@ -222,21 +222,23 @@ public class DocImpl extends NsdObjectImpl implements Doc {
      * @generated
      */
     @Override
-    public void setNSDoc( NSDoc newNSDoc ) {
-        if( newNSDoc != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.DOC__NS_DOC && newNSDoc != null ) ) {
-            if( EcoreUtil.isAncestor( this, newNSDoc ) )
+    public void setParentNSDoc( NSDoc newParentNSDoc ) {
+        if( newParentNSDoc != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.DOC__PARENT_NS_DOC && newParentNSDoc != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentNSDoc ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newNSDoc != null )
-                msgs = ( ( InternalEObject ) newNSDoc ).eInverseAdd( this, NsdPackage.NS_DOC__DOC, NSDoc.class, msgs );
-            msgs = basicSetNSDoc( newNSDoc, msgs );
+            if( newParentNSDoc != null )
+                msgs = ( ( InternalEObject ) newParentNSDoc ).eInverseAdd( this, NsdPackage.NS_DOC__DOC, NSDoc.class,
+                        msgs );
+            msgs = basicSetParentNSDoc( newParentNSDoc, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.DOC__NS_DOC, newNSDoc, newNSDoc ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.DOC__PARENT_NS_DOC, newParentNSDoc,
+                    newParentNSDoc ) );
     }
 
     /**
@@ -247,10 +249,10 @@ public class DocImpl extends NsdObjectImpl implements Doc {
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.DOC__NS_DOC:
+        case NsdPackage.DOC__PARENT_NS_DOC:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetNSDoc( ( NSDoc ) otherEnd, msgs );
+            return basicSetParentNSDoc( ( NSDoc ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -269,8 +271,8 @@ public class DocImpl extends NsdObjectImpl implements Doc {
             return ( ( InternalEList< ? > ) getGroup() ).basicRemove( otherEnd, msgs );
         case NsdPackage.DOC__ANY:
             return ( ( InternalEList< ? > ) getAny() ).basicRemove( otherEnd, msgs );
-        case NsdPackage.DOC__NS_DOC:
-            return basicSetNSDoc( null, msgs );
+        case NsdPackage.DOC__PARENT_NS_DOC:
+            return basicSetParentNSDoc( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -283,7 +285,7 @@ public class DocImpl extends NsdObjectImpl implements Doc {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.DOC__NS_DOC:
+        case NsdPackage.DOC__PARENT_NS_DOC:
             return eInternalContainer().eInverseRemove( this, NsdPackage.NS_DOC__DOC, NSDoc.class, msgs );
         }
         return super.eBasicRemoveFromContainerFeature( msgs );
@@ -308,8 +310,8 @@ public class DocImpl extends NsdObjectImpl implements Doc {
             return ( ( FeatureMap.Internal ) getAny() ).getWrapper();
         case NsdPackage.DOC__ID:
             return getId();
-        case NsdPackage.DOC__NS_DOC:
-            return getNSDoc();
+        case NsdPackage.DOC__PARENT_NS_DOC:
+            return getParentNSDoc();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -334,8 +336,8 @@ public class DocImpl extends NsdObjectImpl implements Doc {
         case NsdPackage.DOC__ID:
             setId( ( String ) newValue );
             return;
-        case NsdPackage.DOC__NS_DOC:
-            setNSDoc( ( NSDoc ) newValue );
+        case NsdPackage.DOC__PARENT_NS_DOC:
+            setParentNSDoc( ( NSDoc ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -361,8 +363,8 @@ public class DocImpl extends NsdObjectImpl implements Doc {
         case NsdPackage.DOC__ID:
             unsetId();
             return;
-        case NsdPackage.DOC__NS_DOC:
-            setNSDoc( ( NSDoc ) null );
+        case NsdPackage.DOC__PARENT_NS_DOC:
+            setParentNSDoc( ( NSDoc ) null );
             return;
         }
         super.eUnset( featureID );
@@ -384,8 +386,8 @@ public class DocImpl extends NsdObjectImpl implements Doc {
             return !getAny().isEmpty();
         case NsdPackage.DOC__ID:
             return isSetId();
-        case NsdPackage.DOC__NS_DOC:
-            return getNSDoc() != null;
+        case NsdPackage.DOC__PARENT_NS_DOC:
+            return getParentNSDoc() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/EnumerationImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/EnumerationImpl.java
index c1f24d67006e3e77157501f36a1ac22299af7650..4e8a431548bf35f48dcb9f13374d1b2350bdf4fe 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/EnumerationImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/EnumerationImpl.java
@@ -53,7 +53,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.EnumerationImpl#getLiteral <em>Literal</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.EnumerationImpl#getInheritedFrom <em>Inherited From</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.EnumerationImpl#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.EnumerationImpl#getEnumerations <em>Enumerations</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.EnumerationImpl#getParentEnumerations <em>Parent Enumerations</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.EnumerationImpl#getRefersToBaseEnumeration <em>Refers To Base Enumeration</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.EnumerationImpl#getReferredByEnumerationAsBase <em>Referred By Enumeration As Base</em>}</li>
  * </ul>
@@ -186,7 +186,7 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration {
     public EList< Literal > getLiteral() {
         if( literal == null ) {
             literal = new EObjectContainmentWithInverseEList.Unsettable< Literal >( Literal.class, this,
-                    NsdPackage.ENUMERATION__LITERAL, NsdPackage.LITERAL__ENUMERATION );
+                    NsdPackage.ENUMERATION__LITERAL, NsdPackage.LITERAL__PARENT_ENUMERATION );
         }
         return literal;
     }
@@ -321,8 +321,8 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration {
      * @generated
      */
     @Override
-    public Enumerations getEnumerations() {
-        if( eContainerFeatureID() != NsdPackage.ENUMERATION__ENUMERATIONS ) return null;
+    public Enumerations getParentEnumerations() {
+        if( eContainerFeatureID() != NsdPackage.ENUMERATION__PARENT_ENUMERATIONS ) return null;
         return ( Enumerations ) eInternalContainer();
     }
 
@@ -331,8 +331,9 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetEnumerations( Enumerations newEnumerations, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newEnumerations, NsdPackage.ENUMERATION__ENUMERATIONS, msgs );
+    public NotificationChain basicSetParentEnumerations( Enumerations newParentEnumerations, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentEnumerations,
+                NsdPackage.ENUMERATION__PARENT_ENUMERATIONS, msgs );
         return msgs;
     }
 
@@ -342,23 +343,24 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration {
      * @generated
      */
     @Override
-    public void setEnumerations( Enumerations newEnumerations ) {
-        if( newEnumerations != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.ENUMERATION__ENUMERATIONS && newEnumerations != null ) ) {
-            if( EcoreUtil.isAncestor( this, newEnumerations ) )
+    public void setParentEnumerations( Enumerations newParentEnumerations ) {
+        if( newParentEnumerations != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.ENUMERATION__PARENT_ENUMERATIONS
+                        && newParentEnumerations != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentEnumerations ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newEnumerations != null )
-                msgs = ( ( InternalEObject ) newEnumerations ).eInverseAdd( this, NsdPackage.ENUMERATIONS__ENUMERATION,
-                        Enumerations.class, msgs );
-            msgs = basicSetEnumerations( newEnumerations, msgs );
+            if( newParentEnumerations != null )
+                msgs = ( ( InternalEObject ) newParentEnumerations ).eInverseAdd( this,
+                        NsdPackage.ENUMERATIONS__ENUMERATION, Enumerations.class, msgs );
+            msgs = basicSetParentEnumerations( newParentEnumerations, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.ENUMERATION__ENUMERATIONS,
-                    newEnumerations, newEnumerations ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.ENUMERATION__PARENT_ENUMERATIONS,
+                    newParentEnumerations, newParentEnumerations ) );
     }
 
     /**
@@ -527,10 +529,10 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration {
         case NsdPackage.ENUMERATION__LITERAL:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getLiteral() ).basicAdd( otherEnd,
                     msgs );
-        case NsdPackage.ENUMERATION__ENUMERATIONS:
+        case NsdPackage.ENUMERATION__PARENT_ENUMERATIONS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetEnumerations( ( Enumerations ) otherEnd, msgs );
+            return basicSetParentEnumerations( ( Enumerations ) otherEnd, msgs );
         case NsdPackage.ENUMERATION__REFERS_TO_BASE_ENUMERATION:
             if( refersToBaseEnumeration != null )
                 msgs = ( ( InternalEObject ) refersToBaseEnumeration ).eInverseRemove( this,
@@ -553,8 +555,8 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration {
         switch( featureID ) {
         case NsdPackage.ENUMERATION__LITERAL:
             return ( ( InternalEList< ? > ) getLiteral() ).basicRemove( otherEnd, msgs );
-        case NsdPackage.ENUMERATION__ENUMERATIONS:
-            return basicSetEnumerations( null, msgs );
+        case NsdPackage.ENUMERATION__PARENT_ENUMERATIONS:
+            return basicSetParentEnumerations( null, msgs );
         case NsdPackage.ENUMERATION__REFERS_TO_BASE_ENUMERATION:
             return basicUnsetRefersToBaseEnumeration( msgs );
         case NsdPackage.ENUMERATION__REFERRED_BY_ENUMERATION_AS_BASE:
@@ -571,7 +573,7 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.ENUMERATION__ENUMERATIONS:
+        case NsdPackage.ENUMERATION__PARENT_ENUMERATIONS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.ENUMERATIONS__ENUMERATION, Enumerations.class,
                     msgs );
         }
@@ -592,8 +594,8 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration {
             return getInheritedFrom();
         case NsdPackage.ENUMERATION__NAME:
             return getName();
-        case NsdPackage.ENUMERATION__ENUMERATIONS:
-            return getEnumerations();
+        case NsdPackage.ENUMERATION__PARENT_ENUMERATIONS:
+            return getParentEnumerations();
         case NsdPackage.ENUMERATION__REFERS_TO_BASE_ENUMERATION:
             return getRefersToBaseEnumeration();
         case NsdPackage.ENUMERATION__REFERRED_BY_ENUMERATION_AS_BASE:
@@ -621,8 +623,8 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration {
         case NsdPackage.ENUMERATION__NAME:
             setName( ( String ) newValue );
             return;
-        case NsdPackage.ENUMERATION__ENUMERATIONS:
-            setEnumerations( ( Enumerations ) newValue );
+        case NsdPackage.ENUMERATION__PARENT_ENUMERATIONS:
+            setParentEnumerations( ( Enumerations ) newValue );
             return;
         case NsdPackage.ENUMERATION__REFERS_TO_BASE_ENUMERATION:
             setRefersToBaseEnumeration( ( Enumeration ) newValue );
@@ -652,8 +654,8 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration {
         case NsdPackage.ENUMERATION__NAME:
             unsetName();
             return;
-        case NsdPackage.ENUMERATION__ENUMERATIONS:
-            setEnumerations( ( Enumerations ) null );
+        case NsdPackage.ENUMERATION__PARENT_ENUMERATIONS:
+            setParentEnumerations( ( Enumerations ) null );
             return;
         case NsdPackage.ENUMERATION__REFERS_TO_BASE_ENUMERATION:
             unsetRefersToBaseEnumeration();
@@ -679,8 +681,8 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration {
             return isSetInheritedFrom();
         case NsdPackage.ENUMERATION__NAME:
             return isSetName();
-        case NsdPackage.ENUMERATION__ENUMERATIONS:
-            return getEnumerations() != null;
+        case NsdPackage.ENUMERATION__PARENT_ENUMERATIONS:
+            return getParentEnumerations() != null;
         case NsdPackage.ENUMERATION__REFERS_TO_BASE_ENUMERATION:
             return isSetRefersToBaseEnumeration();
         case NsdPackage.ENUMERATION__REFERRED_BY_ENUMERATION_AS_BASE:
@@ -720,7 +722,7 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration {
     public boolean buildExplicitLinks( IRiseClipseConsole console, boolean forceUpdate ) {
         if( super.buildExplicitLinks( console, forceUpdate ) ) return true;
 
-        NS ns = getEnumerations().getNS();
+        NS ns = getParentEnumerations().getParentNS();
         if( isSetInheritedFrom() ) {
             Enumeration foundBase = ns.findEnumeration( getInheritedFrom(), console );
             if( foundBase == null ) {
@@ -731,7 +733,7 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration {
                 setRefersToBaseEnumeration( foundBase );
                 console.verbose( "Enumeration (name: " + getInheritedFrom() + ") refers by Enumeration (name: "
                         + getName() + ") in NS (id:" + ns.getId() + ") found in NS (id:"
-                        + getRefersToBaseEnumeration().getEnumerations().getNS().getId() + ")" );
+                        + getRefersToBaseEnumeration().getParentEnumerations().getParentNS().getId() + ")" );
             }
         }
 
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/EnumerationsImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/EnumerationsImpl.java
index 75e9c9314b5e6aaa158e2daedea25834b63ad07f..27371a4b0852b6b1cf8ad937cf432798383b165c 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/EnumerationsImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/EnumerationsImpl.java
@@ -48,7 +48,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.EnumerationsImpl#getEnumeration <em>Enumeration</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.EnumerationsImpl#getNS <em>NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.EnumerationsImpl#getParentNS <em>Parent NS</em>}</li>
  * </ul>
  *
  * @generated
@@ -92,7 +92,7 @@ public class EnumerationsImpl extends NsdObjectImpl implements Enumerations {
     public EList< Enumeration > getEnumeration() {
         if( enumeration == null ) {
             enumeration = new EObjectContainmentWithInverseEList.Unsettable< Enumeration >( Enumeration.class, this,
-                    NsdPackage.ENUMERATIONS__ENUMERATION, NsdPackage.ENUMERATION__ENUMERATIONS );
+                    NsdPackage.ENUMERATIONS__ENUMERATION, NsdPackage.ENUMERATION__PARENT_ENUMERATIONS );
         }
         return enumeration;
     }
@@ -123,8 +123,8 @@ public class EnumerationsImpl extends NsdObjectImpl implements Enumerations {
      * @generated
      */
     @Override
-    public NS getNS() {
-        if( eContainerFeatureID() != NsdPackage.ENUMERATIONS__NS ) return null;
+    public NS getParentNS() {
+        if( eContainerFeatureID() != NsdPackage.ENUMERATIONS__PARENT_NS ) return null;
         return ( NS ) eInternalContainer();
     }
 
@@ -133,8 +133,8 @@ public class EnumerationsImpl extends NsdObjectImpl implements Enumerations {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetNS( NS newNS, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newNS, NsdPackage.ENUMERATIONS__NS, msgs );
+    public NotificationChain basicSetParentNS( NS newParentNS, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentNS, NsdPackage.ENUMERATIONS__PARENT_NS, msgs );
         return msgs;
     }
 
@@ -144,21 +144,23 @@ public class EnumerationsImpl extends NsdObjectImpl implements Enumerations {
      * @generated
      */
     @Override
-    public void setNS( NS newNS ) {
-        if( newNS != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.ENUMERATIONS__NS && newNS != null ) ) {
-            if( EcoreUtil.isAncestor( this, newNS ) )
+    public void setParentNS( NS newParentNS ) {
+        if( newParentNS != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.ENUMERATIONS__PARENT_NS && newParentNS != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentNS ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newNS != null )
-                msgs = ( ( InternalEObject ) newNS ).eInverseAdd( this, NsdPackage.NS__ENUMERATIONS, NS.class, msgs );
-            msgs = basicSetNS( newNS, msgs );
+            if( newParentNS != null )
+                msgs = ( ( InternalEObject ) newParentNS ).eInverseAdd( this, NsdPackage.NS__ENUMERATIONS, NS.class,
+                        msgs );
+            msgs = basicSetParentNS( newParentNS, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.ENUMERATIONS__NS, newNS, newNS ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.ENUMERATIONS__PARENT_NS, newParentNS,
+                    newParentNS ) );
     }
 
     /**
@@ -173,10 +175,10 @@ public class EnumerationsImpl extends NsdObjectImpl implements Enumerations {
         case NsdPackage.ENUMERATIONS__ENUMERATION:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getEnumeration() ).basicAdd( otherEnd,
                     msgs );
-        case NsdPackage.ENUMERATIONS__NS:
+        case NsdPackage.ENUMERATIONS__PARENT_NS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetNS( ( NS ) otherEnd, msgs );
+            return basicSetParentNS( ( NS ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -191,8 +193,8 @@ public class EnumerationsImpl extends NsdObjectImpl implements Enumerations {
         switch( featureID ) {
         case NsdPackage.ENUMERATIONS__ENUMERATION:
             return ( ( InternalEList< ? > ) getEnumeration() ).basicRemove( otherEnd, msgs );
-        case NsdPackage.ENUMERATIONS__NS:
-            return basicSetNS( null, msgs );
+        case NsdPackage.ENUMERATIONS__PARENT_NS:
+            return basicSetParentNS( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -205,7 +207,7 @@ public class EnumerationsImpl extends NsdObjectImpl implements Enumerations {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.ENUMERATIONS__NS:
+        case NsdPackage.ENUMERATIONS__PARENT_NS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.NS__ENUMERATIONS, NS.class, msgs );
         }
         return super.eBasicRemoveFromContainerFeature( msgs );
@@ -221,8 +223,8 @@ public class EnumerationsImpl extends NsdObjectImpl implements Enumerations {
         switch( featureID ) {
         case NsdPackage.ENUMERATIONS__ENUMERATION:
             return getEnumeration();
-        case NsdPackage.ENUMERATIONS__NS:
-            return getNS();
+        case NsdPackage.ENUMERATIONS__PARENT_NS:
+            return getParentNS();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -240,8 +242,8 @@ public class EnumerationsImpl extends NsdObjectImpl implements Enumerations {
             getEnumeration().clear();
             getEnumeration().addAll( ( Collection< ? extends Enumeration > ) newValue );
             return;
-        case NsdPackage.ENUMERATIONS__NS:
-            setNS( ( NS ) newValue );
+        case NsdPackage.ENUMERATIONS__PARENT_NS:
+            setParentNS( ( NS ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -258,8 +260,8 @@ public class EnumerationsImpl extends NsdObjectImpl implements Enumerations {
         case NsdPackage.ENUMERATIONS__ENUMERATION:
             unsetEnumeration();
             return;
-        case NsdPackage.ENUMERATIONS__NS:
-            setNS( ( NS ) null );
+        case NsdPackage.ENUMERATIONS__PARENT_NS:
+            setParentNS( ( NS ) null );
             return;
         }
         super.eUnset( featureID );
@@ -275,8 +277,8 @@ public class EnumerationsImpl extends NsdObjectImpl implements Enumerations {
         switch( featureID ) {
         case NsdPackage.ENUMERATIONS__ENUMERATION:
             return isSetEnumeration();
-        case NsdPackage.ENUMERATIONS__NS:
-            return getNS() != null;
+        case NsdPackage.ENUMERATIONS__PARENT_NS:
+            return getParentNS() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/FunctionalConstraintImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/FunctionalConstraintImpl.java
index 4d20a1a8f4ad4f83f4317def7229b7fef8f2546e..39dce4dd9b54d0b2ae3e87d23192051f6e75ff93 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/FunctionalConstraintImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/FunctionalConstraintImpl.java
@@ -50,7 +50,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.FunctionalConstraintImpl#getAbbreviation <em>Abbreviation</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.FunctionalConstraintImpl#getDescID <em>Desc ID</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.FunctionalConstraintImpl#getTitleID <em>Title ID</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.FunctionalConstraintImpl#getFunctionalConstraints <em>Functional Constraints</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.FunctionalConstraintImpl#getParentFunctionalConstraints <em>Parent Functional Constraints</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.FunctionalConstraintImpl#getReferredByDataAttribute <em>Referred By Data Attribute</em>}</li>
  * </ul>
  *
@@ -236,10 +236,10 @@ public class FunctionalConstraintImpl extends NsdObjectImpl implements Functiona
             NotificationChain msgs = null;
             if( applicableServices != null )
                 msgs = ( ( InternalEObject ) applicableServices ).eInverseRemove( this,
-                        NsdPackage.APPLICABLE_SERVICES__FUNCTIONAL_CONSTRAINT, ApplicableServices.class, msgs );
+                        NsdPackage.APPLICABLE_SERVICES__PARENT_FUNCTIONAL_CONSTRAINT, ApplicableServices.class, msgs );
             if( newApplicableServices != null )
                 msgs = ( ( InternalEObject ) newApplicableServices ).eInverseAdd( this,
-                        NsdPackage.APPLICABLE_SERVICES__FUNCTIONAL_CONSTRAINT, ApplicableServices.class, msgs );
+                        NsdPackage.APPLICABLE_SERVICES__PARENT_FUNCTIONAL_CONSTRAINT, ApplicableServices.class, msgs );
             msgs = basicSetApplicableServices( newApplicableServices, msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -285,7 +285,7 @@ public class FunctionalConstraintImpl extends NsdObjectImpl implements Functiona
         if( applicableServices != null ) {
             NotificationChain msgs = null;
             msgs = ( ( InternalEObject ) applicableServices ).eInverseRemove( this,
-                    NsdPackage.APPLICABLE_SERVICES__FUNCTIONAL_CONSTRAINT, ApplicableServices.class, msgs );
+                    NsdPackage.APPLICABLE_SERVICES__PARENT_FUNCTIONAL_CONSTRAINT, ApplicableServices.class, msgs );
             msgs = basicUnsetApplicableServices( msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -471,8 +471,8 @@ public class FunctionalConstraintImpl extends NsdObjectImpl implements Functiona
      * @generated
      */
     @Override
-    public FunctionalConstraints getFunctionalConstraints() {
-        if( eContainerFeatureID() != NsdPackage.FUNCTIONAL_CONSTRAINT__FUNCTIONAL_CONSTRAINTS ) return null;
+    public FunctionalConstraints getParentFunctionalConstraints() {
+        if( eContainerFeatureID() != NsdPackage.FUNCTIONAL_CONSTRAINT__PARENT_FUNCTIONAL_CONSTRAINTS ) return null;
         return ( FunctionalConstraints ) eInternalContainer();
     }
 
@@ -481,10 +481,10 @@ public class FunctionalConstraintImpl extends NsdObjectImpl implements Functiona
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetFunctionalConstraints( FunctionalConstraints newFunctionalConstraints,
+    public NotificationChain basicSetParentFunctionalConstraints( FunctionalConstraints newParentFunctionalConstraints,
             NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newFunctionalConstraints,
-                NsdPackage.FUNCTIONAL_CONSTRAINT__FUNCTIONAL_CONSTRAINTS, msgs );
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentFunctionalConstraints,
+                NsdPackage.FUNCTIONAL_CONSTRAINT__PARENT_FUNCTIONAL_CONSTRAINTS, msgs );
         return msgs;
     }
 
@@ -494,25 +494,25 @@ public class FunctionalConstraintImpl extends NsdObjectImpl implements Functiona
      * @generated
      */
     @Override
-    public void setFunctionalConstraints( FunctionalConstraints newFunctionalConstraints ) {
-        if( newFunctionalConstraints != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.FUNCTIONAL_CONSTRAINT__FUNCTIONAL_CONSTRAINTS
-                        && newFunctionalConstraints != null ) ) {
-            if( EcoreUtil.isAncestor( this, newFunctionalConstraints ) )
+    public void setParentFunctionalConstraints( FunctionalConstraints newParentFunctionalConstraints ) {
+        if( newParentFunctionalConstraints != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.FUNCTIONAL_CONSTRAINT__PARENT_FUNCTIONAL_CONSTRAINTS
+                        && newParentFunctionalConstraints != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentFunctionalConstraints ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newFunctionalConstraints != null )
-                msgs = ( ( InternalEObject ) newFunctionalConstraints ).eInverseAdd( this,
+            if( newParentFunctionalConstraints != null )
+                msgs = ( ( InternalEObject ) newParentFunctionalConstraints ).eInverseAdd( this,
                         NsdPackage.FUNCTIONAL_CONSTRAINTS__FUNCTIONAL_CONSTRAINT, FunctionalConstraints.class, msgs );
-            msgs = basicSetFunctionalConstraints( newFunctionalConstraints, msgs );
+            msgs = basicSetParentFunctionalConstraints( newParentFunctionalConstraints, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
             eNotify( new ENotificationImpl( this, Notification.SET,
-                    NsdPackage.FUNCTIONAL_CONSTRAINT__FUNCTIONAL_CONSTRAINTS, newFunctionalConstraints,
-                    newFunctionalConstraints ) );
+                    NsdPackage.FUNCTIONAL_CONSTRAINT__PARENT_FUNCTIONAL_CONSTRAINTS, newParentFunctionalConstraints,
+                    newParentFunctionalConstraints ) );
     }
 
     /**
@@ -564,10 +564,10 @@ public class FunctionalConstraintImpl extends NsdObjectImpl implements Functiona
                 msgs = ( ( InternalEObject ) applicableServices ).eInverseRemove( this,
                         EOPPOSITE_FEATURE_BASE - NsdPackage.FUNCTIONAL_CONSTRAINT__APPLICABLE_SERVICES, null, msgs );
             return basicSetApplicableServices( ( ApplicableServices ) otherEnd, msgs );
-        case NsdPackage.FUNCTIONAL_CONSTRAINT__FUNCTIONAL_CONSTRAINTS:
+        case NsdPackage.FUNCTIONAL_CONSTRAINT__PARENT_FUNCTIONAL_CONSTRAINTS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetFunctionalConstraints( ( FunctionalConstraints ) otherEnd, msgs );
+            return basicSetParentFunctionalConstraints( ( FunctionalConstraints ) otherEnd, msgs );
         case NsdPackage.FUNCTIONAL_CONSTRAINT__REFERRED_BY_DATA_ATTRIBUTE:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getReferredByDataAttribute() )
                     .basicAdd( otherEnd, msgs );
@@ -585,8 +585,8 @@ public class FunctionalConstraintImpl extends NsdObjectImpl implements Functiona
         switch( featureID ) {
         case NsdPackage.FUNCTIONAL_CONSTRAINT__APPLICABLE_SERVICES:
             return basicUnsetApplicableServices( msgs );
-        case NsdPackage.FUNCTIONAL_CONSTRAINT__FUNCTIONAL_CONSTRAINTS:
-            return basicSetFunctionalConstraints( null, msgs );
+        case NsdPackage.FUNCTIONAL_CONSTRAINT__PARENT_FUNCTIONAL_CONSTRAINTS:
+            return basicSetParentFunctionalConstraints( null, msgs );
         case NsdPackage.FUNCTIONAL_CONSTRAINT__REFERRED_BY_DATA_ATTRIBUTE:
             return ( ( InternalEList< ? > ) getReferredByDataAttribute() ).basicRemove( otherEnd, msgs );
         }
@@ -601,7 +601,7 @@ public class FunctionalConstraintImpl extends NsdObjectImpl implements Functiona
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.FUNCTIONAL_CONSTRAINT__FUNCTIONAL_CONSTRAINTS:
+        case NsdPackage.FUNCTIONAL_CONSTRAINT__PARENT_FUNCTIONAL_CONSTRAINTS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.FUNCTIONAL_CONSTRAINTS__FUNCTIONAL_CONSTRAINT,
                     FunctionalConstraints.class, msgs );
         }
@@ -624,8 +624,8 @@ public class FunctionalConstraintImpl extends NsdObjectImpl implements Functiona
             return getDescID();
         case NsdPackage.FUNCTIONAL_CONSTRAINT__TITLE_ID:
             return getTitleID();
-        case NsdPackage.FUNCTIONAL_CONSTRAINT__FUNCTIONAL_CONSTRAINTS:
-            return getFunctionalConstraints();
+        case NsdPackage.FUNCTIONAL_CONSTRAINT__PARENT_FUNCTIONAL_CONSTRAINTS:
+            return getParentFunctionalConstraints();
         case NsdPackage.FUNCTIONAL_CONSTRAINT__REFERRED_BY_DATA_ATTRIBUTE:
             return getReferredByDataAttribute();
         }
@@ -653,8 +653,8 @@ public class FunctionalConstraintImpl extends NsdObjectImpl implements Functiona
         case NsdPackage.FUNCTIONAL_CONSTRAINT__TITLE_ID:
             setTitleID( ( String ) newValue );
             return;
-        case NsdPackage.FUNCTIONAL_CONSTRAINT__FUNCTIONAL_CONSTRAINTS:
-            setFunctionalConstraints( ( FunctionalConstraints ) newValue );
+        case NsdPackage.FUNCTIONAL_CONSTRAINT__PARENT_FUNCTIONAL_CONSTRAINTS:
+            setParentFunctionalConstraints( ( FunctionalConstraints ) newValue );
             return;
         case NsdPackage.FUNCTIONAL_CONSTRAINT__REFERRED_BY_DATA_ATTRIBUTE:
             getReferredByDataAttribute().clear();
@@ -684,8 +684,8 @@ public class FunctionalConstraintImpl extends NsdObjectImpl implements Functiona
         case NsdPackage.FUNCTIONAL_CONSTRAINT__TITLE_ID:
             unsetTitleID();
             return;
-        case NsdPackage.FUNCTIONAL_CONSTRAINT__FUNCTIONAL_CONSTRAINTS:
-            setFunctionalConstraints( ( FunctionalConstraints ) null );
+        case NsdPackage.FUNCTIONAL_CONSTRAINT__PARENT_FUNCTIONAL_CONSTRAINTS:
+            setParentFunctionalConstraints( ( FunctionalConstraints ) null );
             return;
         case NsdPackage.FUNCTIONAL_CONSTRAINT__REFERRED_BY_DATA_ATTRIBUTE:
             unsetReferredByDataAttribute();
@@ -710,8 +710,8 @@ public class FunctionalConstraintImpl extends NsdObjectImpl implements Functiona
             return isSetDescID();
         case NsdPackage.FUNCTIONAL_CONSTRAINT__TITLE_ID:
             return isSetTitleID();
-        case NsdPackage.FUNCTIONAL_CONSTRAINT__FUNCTIONAL_CONSTRAINTS:
-            return getFunctionalConstraints() != null;
+        case NsdPackage.FUNCTIONAL_CONSTRAINT__PARENT_FUNCTIONAL_CONSTRAINTS:
+            return getParentFunctionalConstraints() != null;
         case NsdPackage.FUNCTIONAL_CONSTRAINT__REFERRED_BY_DATA_ATTRIBUTE:
             return isSetReferredByDataAttribute();
         }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/FunctionalConstraintsImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/FunctionalConstraintsImpl.java
index 859dd21cf22717d29b5f0fac7cb40e7be1eae998..d6923040fe8d0659d4928dc2ce46e8172799eb41 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/FunctionalConstraintsImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/FunctionalConstraintsImpl.java
@@ -49,8 +49,8 @@ import org.eclipse.emf.ecore.util.InternalEList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.FunctionalConstraintsImpl#getFunctionalConstraint <em>Functional Constraint</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.FunctionalConstraintsImpl#getNS <em>NS</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.FunctionalConstraintsImpl#getServiceNS <em>Service NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.FunctionalConstraintsImpl#getParentNS <em>Parent NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.FunctionalConstraintsImpl#getParentServiceNS <em>Parent Service NS</em>}</li>
  * </ul>
  *
  * @generated
@@ -95,7 +95,7 @@ public class FunctionalConstraintsImpl extends NsdObjectImpl implements Function
         if( functionalConstraint == null ) {
             functionalConstraint = new EObjectContainmentWithInverseEList.Unsettable< FunctionalConstraint >(
                     FunctionalConstraint.class, this, NsdPackage.FUNCTIONAL_CONSTRAINTS__FUNCTIONAL_CONSTRAINT,
-                    NsdPackage.FUNCTIONAL_CONSTRAINT__FUNCTIONAL_CONSTRAINTS );
+                    NsdPackage.FUNCTIONAL_CONSTRAINT__PARENT_FUNCTIONAL_CONSTRAINTS );
         }
         return functionalConstraint;
     }
@@ -126,8 +126,8 @@ public class FunctionalConstraintsImpl extends NsdObjectImpl implements Function
      * @generated
      */
     @Override
-    public NS getNS() {
-        if( eContainerFeatureID() != NsdPackage.FUNCTIONAL_CONSTRAINTS__NS ) return null;
+    public NS getParentNS() {
+        if( eContainerFeatureID() != NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_NS ) return null;
         return ( NS ) eInternalContainer();
     }
 
@@ -136,8 +136,9 @@ public class FunctionalConstraintsImpl extends NsdObjectImpl implements Function
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetNS( NS newNS, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newNS, NsdPackage.FUNCTIONAL_CONSTRAINTS__NS, msgs );
+    public NotificationChain basicSetParentNS( NS newParentNS, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentNS, NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_NS,
+                msgs );
         return msgs;
     }
 
@@ -147,23 +148,23 @@ public class FunctionalConstraintsImpl extends NsdObjectImpl implements Function
      * @generated
      */
     @Override
-    public void setNS( NS newNS ) {
-        if( newNS != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.FUNCTIONAL_CONSTRAINTS__NS && newNS != null ) ) {
-            if( EcoreUtil.isAncestor( this, newNS ) )
+    public void setParentNS( NS newParentNS ) {
+        if( newParentNS != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_NS && newParentNS != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentNS ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newNS != null )
-                msgs = ( ( InternalEObject ) newNS ).eInverseAdd( this, NsdPackage.NS__FUNCTIONAL_CONSTRAINTS, NS.class,
-                        msgs );
-            msgs = basicSetNS( newNS, msgs );
+            if( newParentNS != null )
+                msgs = ( ( InternalEObject ) newParentNS ).eInverseAdd( this, NsdPackage.NS__FUNCTIONAL_CONSTRAINTS,
+                        NS.class, msgs );
+            msgs = basicSetParentNS( newParentNS, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.FUNCTIONAL_CONSTRAINTS__NS, newNS,
-                    newNS ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_NS,
+                    newParentNS, newParentNS ) );
     }
 
     /**
@@ -172,8 +173,8 @@ public class FunctionalConstraintsImpl extends NsdObjectImpl implements Function
      * @generated
      */
     @Override
-    public ServiceNS getServiceNS() {
-        if( eContainerFeatureID() != NsdPackage.FUNCTIONAL_CONSTRAINTS__SERVICE_NS ) return null;
+    public ServiceNS getParentServiceNS() {
+        if( eContainerFeatureID() != NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_SERVICE_NS ) return null;
         return ( ServiceNS ) eInternalContainer();
     }
 
@@ -182,9 +183,9 @@ public class FunctionalConstraintsImpl extends NsdObjectImpl implements Function
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetServiceNS( ServiceNS newServiceNS, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newServiceNS, NsdPackage.FUNCTIONAL_CONSTRAINTS__SERVICE_NS,
-                msgs );
+    public NotificationChain basicSetParentServiceNS( ServiceNS newParentServiceNS, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentServiceNS,
+                NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_SERVICE_NS, msgs );
         return msgs;
     }
 
@@ -194,24 +195,24 @@ public class FunctionalConstraintsImpl extends NsdObjectImpl implements Function
      * @generated
      */
     @Override
-    public void setServiceNS( ServiceNS newServiceNS ) {
-        if( newServiceNS != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.FUNCTIONAL_CONSTRAINTS__SERVICE_NS
-                        && newServiceNS != null ) ) {
-            if( EcoreUtil.isAncestor( this, newServiceNS ) )
+    public void setParentServiceNS( ServiceNS newParentServiceNS ) {
+        if( newParentServiceNS != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_SERVICE_NS
+                        && newParentServiceNS != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentServiceNS ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newServiceNS != null )
-                msgs = ( ( InternalEObject ) newServiceNS ).eInverseAdd( this,
+            if( newParentServiceNS != null )
+                msgs = ( ( InternalEObject ) newParentServiceNS ).eInverseAdd( this,
                         NsdPackage.SERVICE_NS__FUNCTIONAL_CONSTRAINTS, ServiceNS.class, msgs );
-            msgs = basicSetServiceNS( newServiceNS, msgs );
+            msgs = basicSetParentServiceNS( newParentServiceNS, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.FUNCTIONAL_CONSTRAINTS__SERVICE_NS,
-                    newServiceNS, newServiceNS ) );
+            eNotify( new ENotificationImpl( this, Notification.SET,
+                    NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_SERVICE_NS, newParentServiceNS, newParentServiceNS ) );
     }
 
     /**
@@ -226,14 +227,14 @@ public class FunctionalConstraintsImpl extends NsdObjectImpl implements Function
         case NsdPackage.FUNCTIONAL_CONSTRAINTS__FUNCTIONAL_CONSTRAINT:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getFunctionalConstraint() )
                     .basicAdd( otherEnd, msgs );
-        case NsdPackage.FUNCTIONAL_CONSTRAINTS__NS:
+        case NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_NS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetNS( ( NS ) otherEnd, msgs );
-        case NsdPackage.FUNCTIONAL_CONSTRAINTS__SERVICE_NS:
+            return basicSetParentNS( ( NS ) otherEnd, msgs );
+        case NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_SERVICE_NS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetServiceNS( ( ServiceNS ) otherEnd, msgs );
+            return basicSetParentServiceNS( ( ServiceNS ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -248,10 +249,10 @@ public class FunctionalConstraintsImpl extends NsdObjectImpl implements Function
         switch( featureID ) {
         case NsdPackage.FUNCTIONAL_CONSTRAINTS__FUNCTIONAL_CONSTRAINT:
             return ( ( InternalEList< ? > ) getFunctionalConstraint() ).basicRemove( otherEnd, msgs );
-        case NsdPackage.FUNCTIONAL_CONSTRAINTS__NS:
-            return basicSetNS( null, msgs );
-        case NsdPackage.FUNCTIONAL_CONSTRAINTS__SERVICE_NS:
-            return basicSetServiceNS( null, msgs );
+        case NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_NS:
+            return basicSetParentNS( null, msgs );
+        case NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_SERVICE_NS:
+            return basicSetParentServiceNS( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -264,9 +265,9 @@ public class FunctionalConstraintsImpl extends NsdObjectImpl implements Function
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.FUNCTIONAL_CONSTRAINTS__NS:
+        case NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_NS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.NS__FUNCTIONAL_CONSTRAINTS, NS.class, msgs );
-        case NsdPackage.FUNCTIONAL_CONSTRAINTS__SERVICE_NS:
+        case NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_SERVICE_NS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.SERVICE_NS__FUNCTIONAL_CONSTRAINTS,
                     ServiceNS.class, msgs );
         }
@@ -283,10 +284,10 @@ public class FunctionalConstraintsImpl extends NsdObjectImpl implements Function
         switch( featureID ) {
         case NsdPackage.FUNCTIONAL_CONSTRAINTS__FUNCTIONAL_CONSTRAINT:
             return getFunctionalConstraint();
-        case NsdPackage.FUNCTIONAL_CONSTRAINTS__NS:
-            return getNS();
-        case NsdPackage.FUNCTIONAL_CONSTRAINTS__SERVICE_NS:
-            return getServiceNS();
+        case NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_NS:
+            return getParentNS();
+        case NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_SERVICE_NS:
+            return getParentServiceNS();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -304,11 +305,11 @@ public class FunctionalConstraintsImpl extends NsdObjectImpl implements Function
             getFunctionalConstraint().clear();
             getFunctionalConstraint().addAll( ( Collection< ? extends FunctionalConstraint > ) newValue );
             return;
-        case NsdPackage.FUNCTIONAL_CONSTRAINTS__NS:
-            setNS( ( NS ) newValue );
+        case NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_NS:
+            setParentNS( ( NS ) newValue );
             return;
-        case NsdPackage.FUNCTIONAL_CONSTRAINTS__SERVICE_NS:
-            setServiceNS( ( ServiceNS ) newValue );
+        case NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_SERVICE_NS:
+            setParentServiceNS( ( ServiceNS ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -325,11 +326,11 @@ public class FunctionalConstraintsImpl extends NsdObjectImpl implements Function
         case NsdPackage.FUNCTIONAL_CONSTRAINTS__FUNCTIONAL_CONSTRAINT:
             unsetFunctionalConstraint();
             return;
-        case NsdPackage.FUNCTIONAL_CONSTRAINTS__NS:
-            setNS( ( NS ) null );
+        case NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_NS:
+            setParentNS( ( NS ) null );
             return;
-        case NsdPackage.FUNCTIONAL_CONSTRAINTS__SERVICE_NS:
-            setServiceNS( ( ServiceNS ) null );
+        case NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_SERVICE_NS:
+            setParentServiceNS( ( ServiceNS ) null );
             return;
         }
         super.eUnset( featureID );
@@ -345,10 +346,10 @@ public class FunctionalConstraintsImpl extends NsdObjectImpl implements Function
         switch( featureID ) {
         case NsdPackage.FUNCTIONAL_CONSTRAINTS__FUNCTIONAL_CONSTRAINT:
             return isSetFunctionalConstraint();
-        case NsdPackage.FUNCTIONAL_CONSTRAINTS__NS:
-            return getNS() != null;
-        case NsdPackage.FUNCTIONAL_CONSTRAINTS__SERVICE_NS:
-            return getServiceNS() != null;
+        case NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_NS:
+            return getParentNS() != null;
+        case NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_SERVICE_NS:
+            return getParentServiceNS() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LNClassImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LNClassImpl.java
index 8785ef786e90c56847ba23138389735290d3164a..65ef445d01053d01adf75a2875ec222f5a945fa0 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LNClassImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LNClassImpl.java
@@ -43,7 +43,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LNClassImpl#isCanHaveLOG <em>Can Have LOG</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LNClassImpl#isIsExtension <em>Is Extension</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LNClassImpl#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LNClassImpl#getLNClasses <em>LN Classes</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LNClassImpl#getParentLNClasses <em>Parent LN Classes</em>}</li>
  * </ul>
  *
  * @generated
@@ -317,8 +317,8 @@ public class LNClassImpl extends AnyLNClassImpl implements LNClass {
      * @generated
      */
     @Override
-    public LNClasses getLNClasses() {
-        if( eContainerFeatureID() != NsdPackage.LN_CLASS__LN_CLASSES ) return null;
+    public LNClasses getParentLNClasses() {
+        if( eContainerFeatureID() != NsdPackage.LN_CLASS__PARENT_LN_CLASSES ) return null;
         return ( LNClasses ) eInternalContainer();
     }
 
@@ -327,8 +327,9 @@ public class LNClassImpl extends AnyLNClassImpl implements LNClass {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetLNClasses( LNClasses newLNClasses, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newLNClasses, NsdPackage.LN_CLASS__LN_CLASSES, msgs );
+    public NotificationChain basicSetParentLNClasses( LNClasses newParentLNClasses, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentLNClasses, NsdPackage.LN_CLASS__PARENT_LN_CLASSES,
+                msgs );
         return msgs;
     }
 
@@ -338,23 +339,23 @@ public class LNClassImpl extends AnyLNClassImpl implements LNClass {
      * @generated
      */
     @Override
-    public void setLNClasses( LNClasses newLNClasses ) {
-        if( newLNClasses != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.LN_CLASS__LN_CLASSES && newLNClasses != null ) ) {
-            if( EcoreUtil.isAncestor( this, newLNClasses ) )
+    public void setParentLNClasses( LNClasses newParentLNClasses ) {
+        if( newParentLNClasses != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.LN_CLASS__PARENT_LN_CLASSES && newParentLNClasses != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentLNClasses ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newLNClasses != null )
-                msgs = ( ( InternalEObject ) newLNClasses ).eInverseAdd( this, NsdPackage.LN_CLASSES__LN_CLASS,
+            if( newParentLNClasses != null )
+                msgs = ( ( InternalEObject ) newParentLNClasses ).eInverseAdd( this, NsdPackage.LN_CLASSES__LN_CLASS,
                         LNClasses.class, msgs );
-            msgs = basicSetLNClasses( newLNClasses, msgs );
+            msgs = basicSetParentLNClasses( newParentLNClasses, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.LN_CLASS__LN_CLASSES, newLNClasses,
-                    newLNClasses ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.LN_CLASS__PARENT_LN_CLASSES,
+                    newParentLNClasses, newParentLNClasses ) );
     }
 
     /**
@@ -365,10 +366,10 @@ public class LNClassImpl extends AnyLNClassImpl implements LNClass {
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.LN_CLASS__LN_CLASSES:
+        case NsdPackage.LN_CLASS__PARENT_LN_CLASSES:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetLNClasses( ( LNClasses ) otherEnd, msgs );
+            return basicSetParentLNClasses( ( LNClasses ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -381,8 +382,8 @@ public class LNClassImpl extends AnyLNClassImpl implements LNClass {
     @Override
     public NotificationChain eInverseRemove( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.LN_CLASS__LN_CLASSES:
-            return basicSetLNClasses( null, msgs );
+        case NsdPackage.LN_CLASS__PARENT_LN_CLASSES:
+            return basicSetParentLNClasses( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -395,7 +396,7 @@ public class LNClassImpl extends AnyLNClassImpl implements LNClass {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.LN_CLASS__LN_CLASSES:
+        case NsdPackage.LN_CLASS__PARENT_LN_CLASSES:
             return eInternalContainer().eInverseRemove( this, NsdPackage.LN_CLASSES__LN_CLASS, LNClasses.class, msgs );
         }
         return super.eBasicRemoveFromContainerFeature( msgs );
@@ -415,8 +416,8 @@ public class LNClassImpl extends AnyLNClassImpl implements LNClass {
             return isIsExtension();
         case NsdPackage.LN_CLASS__NAME:
             return getName();
-        case NsdPackage.LN_CLASS__LN_CLASSES:
-            return getLNClasses();
+        case NsdPackage.LN_CLASS__PARENT_LN_CLASSES:
+            return getParentLNClasses();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -438,8 +439,8 @@ public class LNClassImpl extends AnyLNClassImpl implements LNClass {
         case NsdPackage.LN_CLASS__NAME:
             setName( ( String ) newValue );
             return;
-        case NsdPackage.LN_CLASS__LN_CLASSES:
-            setLNClasses( ( LNClasses ) newValue );
+        case NsdPackage.LN_CLASS__PARENT_LN_CLASSES:
+            setParentLNClasses( ( LNClasses ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -462,8 +463,8 @@ public class LNClassImpl extends AnyLNClassImpl implements LNClass {
         case NsdPackage.LN_CLASS__NAME:
             unsetName();
             return;
-        case NsdPackage.LN_CLASS__LN_CLASSES:
-            setLNClasses( ( LNClasses ) null );
+        case NsdPackage.LN_CLASS__PARENT_LN_CLASSES:
+            setParentLNClasses( ( LNClasses ) null );
             return;
         }
         super.eUnset( featureID );
@@ -483,8 +484,8 @@ public class LNClassImpl extends AnyLNClassImpl implements LNClass {
             return isSetIsExtension();
         case NsdPackage.LN_CLASS__NAME:
             return isSetName();
-        case NsdPackage.LN_CLASS__LN_CLASSES:
-            return getLNClasses() != null;
+        case NsdPackage.LN_CLASS__PARENT_LN_CLASSES:
+            return getParentLNClasses() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LNClassesImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LNClassesImpl.java
index c524fffe1cfd6c14c0e827570c46f365fa65d3f8..805932ca124a38bc968b139f26574a049f4b4416 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LNClassesImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LNClassesImpl.java
@@ -50,7 +50,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LNClassesImpl#getAbstractLNClass <em>Abstract LN Class</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LNClassesImpl#getLNClass <em>LN Class</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LNClassesImpl#getNS <em>NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LNClassesImpl#getParentNS <em>Parent NS</em>}</li>
  * </ul>
  *
  * @generated
@@ -105,7 +105,7 @@ public class LNClassesImpl extends NsdObjectImpl implements LNClasses {
         if( abstractLNClass == null ) {
             abstractLNClass = new EObjectContainmentWithInverseEList.Unsettable< AbstractLNClass >(
                     AbstractLNClass.class, this, NsdPackage.LN_CLASSES__ABSTRACT_LN_CLASS,
-                    NsdPackage.ABSTRACT_LN_CLASS__LN_CLASSES );
+                    NsdPackage.ABSTRACT_LN_CLASS__PARENT_LN_CLASSES );
         }
         return abstractLNClass;
     }
@@ -139,7 +139,7 @@ public class LNClassesImpl extends NsdObjectImpl implements LNClasses {
     public EList< LNClass > getLNClass() {
         if( lNClass == null ) {
             lNClass = new EObjectContainmentWithInverseEList.Unsettable< LNClass >( LNClass.class, this,
-                    NsdPackage.LN_CLASSES__LN_CLASS, NsdPackage.LN_CLASS__LN_CLASSES );
+                    NsdPackage.LN_CLASSES__LN_CLASS, NsdPackage.LN_CLASS__PARENT_LN_CLASSES );
         }
         return lNClass;
     }
@@ -170,8 +170,8 @@ public class LNClassesImpl extends NsdObjectImpl implements LNClasses {
      * @generated
      */
     @Override
-    public NS getNS() {
-        if( eContainerFeatureID() != NsdPackage.LN_CLASSES__NS ) return null;
+    public NS getParentNS() {
+        if( eContainerFeatureID() != NsdPackage.LN_CLASSES__PARENT_NS ) return null;
         return ( NS ) eInternalContainer();
     }
 
@@ -180,8 +180,8 @@ public class LNClassesImpl extends NsdObjectImpl implements LNClasses {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetNS( NS newNS, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newNS, NsdPackage.LN_CLASSES__NS, msgs );
+    public NotificationChain basicSetParentNS( NS newParentNS, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentNS, NsdPackage.LN_CLASSES__PARENT_NS, msgs );
         return msgs;
     }
 
@@ -191,20 +191,23 @@ public class LNClassesImpl extends NsdObjectImpl implements LNClasses {
      * @generated
      */
     @Override
-    public void setNS( NS newNS ) {
-        if( newNS != eInternalContainer() || ( eContainerFeatureID() != NsdPackage.LN_CLASSES__NS && newNS != null ) ) {
-            if( EcoreUtil.isAncestor( this, newNS ) )
+    public void setParentNS( NS newParentNS ) {
+        if( newParentNS != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.LN_CLASSES__PARENT_NS && newParentNS != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentNS ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newNS != null )
-                msgs = ( ( InternalEObject ) newNS ).eInverseAdd( this, NsdPackage.NS__LN_CLASSES, NS.class, msgs );
-            msgs = basicSetNS( newNS, msgs );
+            if( newParentNS != null )
+                msgs = ( ( InternalEObject ) newParentNS ).eInverseAdd( this, NsdPackage.NS__LN_CLASSES, NS.class,
+                        msgs );
+            msgs = basicSetParentNS( newParentNS, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.LN_CLASSES__NS, newNS, newNS ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.LN_CLASSES__PARENT_NS, newParentNS,
+                    newParentNS ) );
     }
 
     /**
@@ -222,10 +225,10 @@ public class LNClassesImpl extends NsdObjectImpl implements LNClasses {
         case NsdPackage.LN_CLASSES__LN_CLASS:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getLNClass() ).basicAdd( otherEnd,
                     msgs );
-        case NsdPackage.LN_CLASSES__NS:
+        case NsdPackage.LN_CLASSES__PARENT_NS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetNS( ( NS ) otherEnd, msgs );
+            return basicSetParentNS( ( NS ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -242,8 +245,8 @@ public class LNClassesImpl extends NsdObjectImpl implements LNClasses {
             return ( ( InternalEList< ? > ) getAbstractLNClass() ).basicRemove( otherEnd, msgs );
         case NsdPackage.LN_CLASSES__LN_CLASS:
             return ( ( InternalEList< ? > ) getLNClass() ).basicRemove( otherEnd, msgs );
-        case NsdPackage.LN_CLASSES__NS:
-            return basicSetNS( null, msgs );
+        case NsdPackage.LN_CLASSES__PARENT_NS:
+            return basicSetParentNS( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -256,7 +259,7 @@ public class LNClassesImpl extends NsdObjectImpl implements LNClasses {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.LN_CLASSES__NS:
+        case NsdPackage.LN_CLASSES__PARENT_NS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.NS__LN_CLASSES, NS.class, msgs );
         }
         return super.eBasicRemoveFromContainerFeature( msgs );
@@ -274,8 +277,8 @@ public class LNClassesImpl extends NsdObjectImpl implements LNClasses {
             return getAbstractLNClass();
         case NsdPackage.LN_CLASSES__LN_CLASS:
             return getLNClass();
-        case NsdPackage.LN_CLASSES__NS:
-            return getNS();
+        case NsdPackage.LN_CLASSES__PARENT_NS:
+            return getParentNS();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -297,8 +300,8 @@ public class LNClassesImpl extends NsdObjectImpl implements LNClasses {
             getLNClass().clear();
             getLNClass().addAll( ( Collection< ? extends LNClass > ) newValue );
             return;
-        case NsdPackage.LN_CLASSES__NS:
-            setNS( ( NS ) newValue );
+        case NsdPackage.LN_CLASSES__PARENT_NS:
+            setParentNS( ( NS ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -318,8 +321,8 @@ public class LNClassesImpl extends NsdObjectImpl implements LNClasses {
         case NsdPackage.LN_CLASSES__LN_CLASS:
             unsetLNClass();
             return;
-        case NsdPackage.LN_CLASSES__NS:
-            setNS( ( NS ) null );
+        case NsdPackage.LN_CLASSES__PARENT_NS:
+            setParentNS( ( NS ) null );
             return;
         }
         super.eUnset( featureID );
@@ -337,8 +340,8 @@ public class LNClassesImpl extends NsdObjectImpl implements LNClasses {
             return isSetAbstractLNClass();
         case NsdPackage.LN_CLASSES__LN_CLASS:
             return isSetLNClass();
-        case NsdPackage.LN_CLASSES__NS:
-            return getNS() != null;
+        case NsdPackage.LN_CLASSES__PARENT_NS:
+            return getParentNS() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LicenseImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LicenseImpl.java
index b8c543df70a77ae56ec7f564c01883f5defd3138..37911c1465ae9d0eb73bc18ec11322f44587e67c 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LicenseImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LicenseImpl.java
@@ -47,7 +47,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LicenseImpl#getMixed <em>Mixed</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LicenseImpl#getKind <em>Kind</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LicenseImpl#getUri <em>Uri</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LicenseImpl#getCopyrightNotice <em>Copyright Notice</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LicenseImpl#getParentCopyrightNotice <em>Parent Copyright Notice</em>}</li>
  * </ul>
  *
  * @generated
@@ -263,8 +263,8 @@ public class LicenseImpl extends NsdObjectImpl implements License {
      * @generated
      */
     @Override
-    public CopyrightNotice getCopyrightNotice() {
-        if( eContainerFeatureID() != NsdPackage.LICENSE__COPYRIGHT_NOTICE ) return null;
+    public CopyrightNotice getParentCopyrightNotice() {
+        if( eContainerFeatureID() != NsdPackage.LICENSE__PARENT_COPYRIGHT_NOTICE ) return null;
         return ( CopyrightNotice ) eInternalContainer();
     }
 
@@ -273,8 +273,10 @@ public class LicenseImpl extends NsdObjectImpl implements License {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetCopyrightNotice( CopyrightNotice newCopyrightNotice, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newCopyrightNotice, NsdPackage.LICENSE__COPYRIGHT_NOTICE, msgs );
+    public NotificationChain basicSetParentCopyrightNotice( CopyrightNotice newParentCopyrightNotice,
+            NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentCopyrightNotice,
+                NsdPackage.LICENSE__PARENT_COPYRIGHT_NOTICE, msgs );
         return msgs;
     }
 
@@ -284,23 +286,24 @@ public class LicenseImpl extends NsdObjectImpl implements License {
      * @generated
      */
     @Override
-    public void setCopyrightNotice( CopyrightNotice newCopyrightNotice ) {
-        if( newCopyrightNotice != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.LICENSE__COPYRIGHT_NOTICE && newCopyrightNotice != null ) ) {
-            if( EcoreUtil.isAncestor( this, newCopyrightNotice ) )
+    public void setParentCopyrightNotice( CopyrightNotice newParentCopyrightNotice ) {
+        if( newParentCopyrightNotice != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.LICENSE__PARENT_COPYRIGHT_NOTICE
+                        && newParentCopyrightNotice != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentCopyrightNotice ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newCopyrightNotice != null )
-                msgs = ( ( InternalEObject ) newCopyrightNotice ).eInverseAdd( this,
+            if( newParentCopyrightNotice != null )
+                msgs = ( ( InternalEObject ) newParentCopyrightNotice ).eInverseAdd( this,
                         NsdPackage.COPYRIGHT_NOTICE__LICENSE, CopyrightNotice.class, msgs );
-            msgs = basicSetCopyrightNotice( newCopyrightNotice, msgs );
+            msgs = basicSetParentCopyrightNotice( newParentCopyrightNotice, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.LICENSE__COPYRIGHT_NOTICE,
-                    newCopyrightNotice, newCopyrightNotice ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.LICENSE__PARENT_COPYRIGHT_NOTICE,
+                    newParentCopyrightNotice, newParentCopyrightNotice ) );
     }
 
     /**
@@ -311,10 +314,10 @@ public class LicenseImpl extends NsdObjectImpl implements License {
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.LICENSE__COPYRIGHT_NOTICE:
+        case NsdPackage.LICENSE__PARENT_COPYRIGHT_NOTICE:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetCopyrightNotice( ( CopyrightNotice ) otherEnd, msgs );
+            return basicSetParentCopyrightNotice( ( CopyrightNotice ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -329,8 +332,8 @@ public class LicenseImpl extends NsdObjectImpl implements License {
         switch( featureID ) {
         case NsdPackage.LICENSE__MIXED:
             return ( ( InternalEList< ? > ) getMixed() ).basicRemove( otherEnd, msgs );
-        case NsdPackage.LICENSE__COPYRIGHT_NOTICE:
-            return basicSetCopyrightNotice( null, msgs );
+        case NsdPackage.LICENSE__PARENT_COPYRIGHT_NOTICE:
+            return basicSetParentCopyrightNotice( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -343,7 +346,7 @@ public class LicenseImpl extends NsdObjectImpl implements License {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.LICENSE__COPYRIGHT_NOTICE:
+        case NsdPackage.LICENSE__PARENT_COPYRIGHT_NOTICE:
             return eInternalContainer().eInverseRemove( this, NsdPackage.COPYRIGHT_NOTICE__LICENSE,
                     CopyrightNotice.class, msgs );
         }
@@ -365,8 +368,8 @@ public class LicenseImpl extends NsdObjectImpl implements License {
             return getKind();
         case NsdPackage.LICENSE__URI:
             return getUri();
-        case NsdPackage.LICENSE__COPYRIGHT_NOTICE:
-            return getCopyrightNotice();
+        case NsdPackage.LICENSE__PARENT_COPYRIGHT_NOTICE:
+            return getParentCopyrightNotice();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -388,8 +391,8 @@ public class LicenseImpl extends NsdObjectImpl implements License {
         case NsdPackage.LICENSE__URI:
             setUri( ( String ) newValue );
             return;
-        case NsdPackage.LICENSE__COPYRIGHT_NOTICE:
-            setCopyrightNotice( ( CopyrightNotice ) newValue );
+        case NsdPackage.LICENSE__PARENT_COPYRIGHT_NOTICE:
+            setParentCopyrightNotice( ( CopyrightNotice ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -412,8 +415,8 @@ public class LicenseImpl extends NsdObjectImpl implements License {
         case NsdPackage.LICENSE__URI:
             unsetUri();
             return;
-        case NsdPackage.LICENSE__COPYRIGHT_NOTICE:
-            setCopyrightNotice( ( CopyrightNotice ) null );
+        case NsdPackage.LICENSE__PARENT_COPYRIGHT_NOTICE:
+            setParentCopyrightNotice( ( CopyrightNotice ) null );
             return;
         }
         super.eUnset( featureID );
@@ -433,8 +436,8 @@ public class LicenseImpl extends NsdObjectImpl implements License {
             return isSetKind();
         case NsdPackage.LICENSE__URI:
             return isSetUri();
-        case NsdPackage.LICENSE__COPYRIGHT_NOTICE:
-            return getCopyrightNotice() != null;
+        case NsdPackage.LICENSE__PARENT_COPYRIGHT_NOTICE:
+            return getParentCopyrightNotice() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LiteralImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LiteralImpl.java
index cbd0e985441b55df0970f8ce4b7702e04775e5cb..3c02c0673209c168a2dba9ce7dfea6234e2c84ae 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LiteralImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LiteralImpl.java
@@ -42,7 +42,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LiteralImpl#getLiteralVal <em>Literal Val</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LiteralImpl#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LiteralImpl#getEnumeration <em>Enumeration</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.LiteralImpl#getParentEnumeration <em>Parent Enumeration</em>}</li>
  * </ul>
  *
  * @generated
@@ -235,8 +235,8 @@ public class LiteralImpl extends DocumentedClassImpl implements Literal {
      * @generated
      */
     @Override
-    public Enumeration getEnumeration() {
-        if( eContainerFeatureID() != NsdPackage.LITERAL__ENUMERATION ) return null;
+    public Enumeration getParentEnumeration() {
+        if( eContainerFeatureID() != NsdPackage.LITERAL__PARENT_ENUMERATION ) return null;
         return ( Enumeration ) eInternalContainer();
     }
 
@@ -245,8 +245,9 @@ public class LiteralImpl extends DocumentedClassImpl implements Literal {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetEnumeration( Enumeration newEnumeration, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newEnumeration, NsdPackage.LITERAL__ENUMERATION, msgs );
+    public NotificationChain basicSetParentEnumeration( Enumeration newParentEnumeration, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentEnumeration, NsdPackage.LITERAL__PARENT_ENUMERATION,
+                msgs );
         return msgs;
     }
 
@@ -256,23 +257,24 @@ public class LiteralImpl extends DocumentedClassImpl implements Literal {
      * @generated
      */
     @Override
-    public void setEnumeration( Enumeration newEnumeration ) {
-        if( newEnumeration != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.LITERAL__ENUMERATION && newEnumeration != null ) ) {
-            if( EcoreUtil.isAncestor( this, newEnumeration ) )
+    public void setParentEnumeration( Enumeration newParentEnumeration ) {
+        if( newParentEnumeration != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.LITERAL__PARENT_ENUMERATION
+                        && newParentEnumeration != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentEnumeration ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newEnumeration != null )
-                msgs = ( ( InternalEObject ) newEnumeration ).eInverseAdd( this, NsdPackage.ENUMERATION__LITERAL,
+            if( newParentEnumeration != null )
+                msgs = ( ( InternalEObject ) newParentEnumeration ).eInverseAdd( this, NsdPackage.ENUMERATION__LITERAL,
                         Enumeration.class, msgs );
-            msgs = basicSetEnumeration( newEnumeration, msgs );
+            msgs = basicSetParentEnumeration( newParentEnumeration, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.LITERAL__ENUMERATION, newEnumeration,
-                    newEnumeration ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.LITERAL__PARENT_ENUMERATION,
+                    newParentEnumeration, newParentEnumeration ) );
     }
 
     /**
@@ -283,10 +285,10 @@ public class LiteralImpl extends DocumentedClassImpl implements Literal {
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.LITERAL__ENUMERATION:
+        case NsdPackage.LITERAL__PARENT_ENUMERATION:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetEnumeration( ( Enumeration ) otherEnd, msgs );
+            return basicSetParentEnumeration( ( Enumeration ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -299,8 +301,8 @@ public class LiteralImpl extends DocumentedClassImpl implements Literal {
     @Override
     public NotificationChain eInverseRemove( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.LITERAL__ENUMERATION:
-            return basicSetEnumeration( null, msgs );
+        case NsdPackage.LITERAL__PARENT_ENUMERATION:
+            return basicSetParentEnumeration( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -313,7 +315,7 @@ public class LiteralImpl extends DocumentedClassImpl implements Literal {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.LITERAL__ENUMERATION:
+        case NsdPackage.LITERAL__PARENT_ENUMERATION:
             return eInternalContainer().eInverseRemove( this, NsdPackage.ENUMERATION__LITERAL, Enumeration.class,
                     msgs );
         }
@@ -332,8 +334,8 @@ public class LiteralImpl extends DocumentedClassImpl implements Literal {
             return getLiteralVal();
         case NsdPackage.LITERAL__NAME:
             return getName();
-        case NsdPackage.LITERAL__ENUMERATION:
-            return getEnumeration();
+        case NsdPackage.LITERAL__PARENT_ENUMERATION:
+            return getParentEnumeration();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -352,8 +354,8 @@ public class LiteralImpl extends DocumentedClassImpl implements Literal {
         case NsdPackage.LITERAL__NAME:
             setName( ( String ) newValue );
             return;
-        case NsdPackage.LITERAL__ENUMERATION:
-            setEnumeration( ( Enumeration ) newValue );
+        case NsdPackage.LITERAL__PARENT_ENUMERATION:
+            setParentEnumeration( ( Enumeration ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -373,8 +375,8 @@ public class LiteralImpl extends DocumentedClassImpl implements Literal {
         case NsdPackage.LITERAL__NAME:
             unsetName();
             return;
-        case NsdPackage.LITERAL__ENUMERATION:
-            setEnumeration( ( Enumeration ) null );
+        case NsdPackage.LITERAL__PARENT_ENUMERATION:
+            setParentEnumeration( ( Enumeration ) null );
             return;
         }
         super.eUnset( featureID );
@@ -392,8 +394,8 @@ public class LiteralImpl extends DocumentedClassImpl implements Literal {
             return isSetLiteralVal();
         case NsdPackage.LITERAL__NAME:
             return isSetName();
-        case NsdPackage.LITERAL__ENUMERATION:
-            return getEnumeration() != null;
+        case NsdPackage.LITERAL__PARENT_ENUMERATION:
+            return getParentEnumeration() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NSDocImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NSDocImpl.java
index 55807ac5cc2c417f662358022cdc1850404c46a4..83c3d330b968ad816aca358cc845e0cc5464b335 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NSDocImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NSDocImpl.java
@@ -334,7 +334,7 @@ public class NSDocImpl extends CopyrightedImpl implements NSDoc {
     public EList< Doc > getDoc() {
         if( doc == null ) {
             doc = new EObjectContainmentWithInverseEList.Unsettable< Doc >( Doc.class, this, NsdPackage.NS_DOC__DOC,
-                    NsdPackage.DOC__NS_DOC );
+                    NsdPackage.DOC__PARENT_NS_DOC );
         }
         return doc;
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NSImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NSImpl.java
index dd2a7f538f7215cb29c8f19ddee0769dbb4f49ca..a842df72e285597f6f3b0894990189952da95fe0 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NSImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NSImpl.java
@@ -580,11 +580,11 @@ public class NSImpl extends CopyrightedImpl implements NS {
         if( newChanges != changes ) {
             NotificationChain msgs = null;
             if( changes != null )
-                msgs = ( ( InternalEObject ) changes ).eInverseRemove( this, NsdPackage.CHANGES__NS, Changes.class,
-                        msgs );
+                msgs = ( ( InternalEObject ) changes ).eInverseRemove( this, NsdPackage.CHANGES__PARENT_NS,
+                        Changes.class, msgs );
             if( newChanges != null )
-                msgs = ( ( InternalEObject ) newChanges ).eInverseAdd( this, NsdPackage.CHANGES__NS, Changes.class,
-                        msgs );
+                msgs = ( ( InternalEObject ) newChanges ).eInverseAdd( this, NsdPackage.CHANGES__PARENT_NS,
+                        Changes.class, msgs );
             msgs = basicSetChanges( newChanges, msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -627,7 +627,8 @@ public class NSImpl extends CopyrightedImpl implements NS {
     public void unsetChanges() {
         if( changes != null ) {
             NotificationChain msgs = null;
-            msgs = ( ( InternalEObject ) changes ).eInverseRemove( this, NsdPackage.CHANGES__NS, Changes.class, msgs );
+            msgs = ( ( InternalEObject ) changes ).eInverseRemove( this, NsdPackage.CHANGES__PARENT_NS, Changes.class,
+                    msgs );
             msgs = basicUnsetChanges( msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -691,10 +692,10 @@ public class NSImpl extends CopyrightedImpl implements NS {
         if( newDependsOn != dependsOn ) {
             NotificationChain msgs = null;
             if( dependsOn != null )
-                msgs = ( ( InternalEObject ) dependsOn ).eInverseRemove( this, NsdPackage.DEPENDS_ON__NS,
+                msgs = ( ( InternalEObject ) dependsOn ).eInverseRemove( this, NsdPackage.DEPENDS_ON__PARENT_NS,
                         DependsOn.class, msgs );
             if( newDependsOn != null )
-                msgs = ( ( InternalEObject ) newDependsOn ).eInverseAdd( this, NsdPackage.DEPENDS_ON__NS,
+                msgs = ( ( InternalEObject ) newDependsOn ).eInverseAdd( this, NsdPackage.DEPENDS_ON__PARENT_NS,
                         DependsOn.class, msgs );
             msgs = basicSetDependsOn( newDependsOn, msgs );
             if( msgs != null ) msgs.dispatch();
@@ -738,8 +739,8 @@ public class NSImpl extends CopyrightedImpl implements NS {
     public void unsetDependsOn() {
         if( dependsOn != null ) {
             NotificationChain msgs = null;
-            msgs = ( ( InternalEObject ) dependsOn ).eInverseRemove( this, NsdPackage.DEPENDS_ON__NS, DependsOn.class,
-                    msgs );
+            msgs = ( ( InternalEObject ) dependsOn ).eInverseRemove( this, NsdPackage.DEPENDS_ON__PARENT_NS,
+                    DependsOn.class, msgs );
             msgs = basicUnsetDependsOn( msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -803,10 +804,10 @@ public class NSImpl extends CopyrightedImpl implements NS {
         if( newBasicTypes != basicTypes ) {
             NotificationChain msgs = null;
             if( basicTypes != null )
-                msgs = ( ( InternalEObject ) basicTypes ).eInverseRemove( this, NsdPackage.BASIC_TYPES__NS,
+                msgs = ( ( InternalEObject ) basicTypes ).eInverseRemove( this, NsdPackage.BASIC_TYPES__PARENT_NS,
                         BasicTypes.class, msgs );
             if( newBasicTypes != null )
-                msgs = ( ( InternalEObject ) newBasicTypes ).eInverseAdd( this, NsdPackage.BASIC_TYPES__NS,
+                msgs = ( ( InternalEObject ) newBasicTypes ).eInverseAdd( this, NsdPackage.BASIC_TYPES__PARENT_NS,
                         BasicTypes.class, msgs );
             msgs = basicSetBasicTypes( newBasicTypes, msgs );
             if( msgs != null ) msgs.dispatch();
@@ -850,7 +851,7 @@ public class NSImpl extends CopyrightedImpl implements NS {
     public void unsetBasicTypes() {
         if( basicTypes != null ) {
             NotificationChain msgs = null;
-            msgs = ( ( InternalEObject ) basicTypes ).eInverseRemove( this, NsdPackage.BASIC_TYPES__NS,
+            msgs = ( ( InternalEObject ) basicTypes ).eInverseRemove( this, NsdPackage.BASIC_TYPES__PARENT_NS,
                     BasicTypes.class, msgs );
             msgs = basicUnsetBasicTypes( msgs );
             if( msgs != null ) msgs.dispatch();
@@ -918,10 +919,10 @@ public class NSImpl extends CopyrightedImpl implements NS {
             NotificationChain msgs = null;
             if( functionalConstraints != null )
                 msgs = ( ( InternalEObject ) functionalConstraints ).eInverseRemove( this,
-                        NsdPackage.FUNCTIONAL_CONSTRAINTS__NS, FunctionalConstraints.class, msgs );
+                        NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_NS, FunctionalConstraints.class, msgs );
             if( newFunctionalConstraints != null )
                 msgs = ( ( InternalEObject ) newFunctionalConstraints ).eInverseAdd( this,
-                        NsdPackage.FUNCTIONAL_CONSTRAINTS__NS, FunctionalConstraints.class, msgs );
+                        NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_NS, FunctionalConstraints.class, msgs );
             msgs = basicSetFunctionalConstraints( newFunctionalConstraints, msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -966,7 +967,7 @@ public class NSImpl extends CopyrightedImpl implements NS {
         if( functionalConstraints != null ) {
             NotificationChain msgs = null;
             msgs = ( ( InternalEObject ) functionalConstraints ).eInverseRemove( this,
-                    NsdPackage.FUNCTIONAL_CONSTRAINTS__NS, FunctionalConstraints.class, msgs );
+                    NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_NS, FunctionalConstraints.class, msgs );
             msgs = basicUnsetFunctionalConstraints( msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -1033,10 +1034,10 @@ public class NSImpl extends CopyrightedImpl implements NS {
             NotificationChain msgs = null;
             if( presenceConditions != null )
                 msgs = ( ( InternalEObject ) presenceConditions ).eInverseRemove( this,
-                        NsdPackage.PRESENCE_CONDITIONS__NS, PresenceConditions.class, msgs );
+                        NsdPackage.PRESENCE_CONDITIONS__PARENT_NS, PresenceConditions.class, msgs );
             if( newPresenceConditions != null )
                 msgs = ( ( InternalEObject ) newPresenceConditions ).eInverseAdd( this,
-                        NsdPackage.PRESENCE_CONDITIONS__NS, PresenceConditions.class, msgs );
+                        NsdPackage.PRESENCE_CONDITIONS__PARENT_NS, PresenceConditions.class, msgs );
             msgs = basicSetPresenceConditions( newPresenceConditions, msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -1079,8 +1080,8 @@ public class NSImpl extends CopyrightedImpl implements NS {
     public void unsetPresenceConditions() {
         if( presenceConditions != null ) {
             NotificationChain msgs = null;
-            msgs = ( ( InternalEObject ) presenceConditions ).eInverseRemove( this, NsdPackage.PRESENCE_CONDITIONS__NS,
-                    PresenceConditions.class, msgs );
+            msgs = ( ( InternalEObject ) presenceConditions ).eInverseRemove( this,
+                    NsdPackage.PRESENCE_CONDITIONS__PARENT_NS, PresenceConditions.class, msgs );
             msgs = basicUnsetPresenceConditions( msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -1144,10 +1145,10 @@ public class NSImpl extends CopyrightedImpl implements NS {
         if( newAbbreviations != abbreviations ) {
             NotificationChain msgs = null;
             if( abbreviations != null )
-                msgs = ( ( InternalEObject ) abbreviations ).eInverseRemove( this, NsdPackage.ABBREVIATIONS__NS,
+                msgs = ( ( InternalEObject ) abbreviations ).eInverseRemove( this, NsdPackage.ABBREVIATIONS__PARENT_NS,
                         Abbreviations.class, msgs );
             if( newAbbreviations != null )
-                msgs = ( ( InternalEObject ) newAbbreviations ).eInverseAdd( this, NsdPackage.ABBREVIATIONS__NS,
+                msgs = ( ( InternalEObject ) newAbbreviations ).eInverseAdd( this, NsdPackage.ABBREVIATIONS__PARENT_NS,
                         Abbreviations.class, msgs );
             msgs = basicSetAbbreviations( newAbbreviations, msgs );
             if( msgs != null ) msgs.dispatch();
@@ -1191,7 +1192,7 @@ public class NSImpl extends CopyrightedImpl implements NS {
     public void unsetAbbreviations() {
         if( abbreviations != null ) {
             NotificationChain msgs = null;
-            msgs = ( ( InternalEObject ) abbreviations ).eInverseRemove( this, NsdPackage.ABBREVIATIONS__NS,
+            msgs = ( ( InternalEObject ) abbreviations ).eInverseRemove( this, NsdPackage.ABBREVIATIONS__PARENT_NS,
                     Abbreviations.class, msgs );
             msgs = basicUnsetAbbreviations( msgs );
             if( msgs != null ) msgs.dispatch();
@@ -1256,10 +1257,10 @@ public class NSImpl extends CopyrightedImpl implements NS {
         if( newEnumerations != enumerations ) {
             NotificationChain msgs = null;
             if( enumerations != null )
-                msgs = ( ( InternalEObject ) enumerations ).eInverseRemove( this, NsdPackage.ENUMERATIONS__NS,
+                msgs = ( ( InternalEObject ) enumerations ).eInverseRemove( this, NsdPackage.ENUMERATIONS__PARENT_NS,
                         Enumerations.class, msgs );
             if( newEnumerations != null )
-                msgs = ( ( InternalEObject ) newEnumerations ).eInverseAdd( this, NsdPackage.ENUMERATIONS__NS,
+                msgs = ( ( InternalEObject ) newEnumerations ).eInverseAdd( this, NsdPackage.ENUMERATIONS__PARENT_NS,
                         Enumerations.class, msgs );
             msgs = basicSetEnumerations( newEnumerations, msgs );
             if( msgs != null ) msgs.dispatch();
@@ -1303,7 +1304,7 @@ public class NSImpl extends CopyrightedImpl implements NS {
     public void unsetEnumerations() {
         if( enumerations != null ) {
             NotificationChain msgs = null;
-            msgs = ( ( InternalEObject ) enumerations ).eInverseRemove( this, NsdPackage.ENUMERATIONS__NS,
+            msgs = ( ( InternalEObject ) enumerations ).eInverseRemove( this, NsdPackage.ENUMERATIONS__PARENT_NS,
                     Enumerations.class, msgs );
             msgs = basicUnsetEnumerations( msgs );
             if( msgs != null ) msgs.dispatch();
@@ -1371,10 +1372,10 @@ public class NSImpl extends CopyrightedImpl implements NS {
             NotificationChain msgs = null;
             if( constructedAttributes != null )
                 msgs = ( ( InternalEObject ) constructedAttributes ).eInverseRemove( this,
-                        NsdPackage.CONSTRUCTED_ATTRIBUTES__NS, ConstructedAttributes.class, msgs );
+                        NsdPackage.CONSTRUCTED_ATTRIBUTES__PARENT_NS, ConstructedAttributes.class, msgs );
             if( newConstructedAttributes != null )
                 msgs = ( ( InternalEObject ) newConstructedAttributes ).eInverseAdd( this,
-                        NsdPackage.CONSTRUCTED_ATTRIBUTES__NS, ConstructedAttributes.class, msgs );
+                        NsdPackage.CONSTRUCTED_ATTRIBUTES__PARENT_NS, ConstructedAttributes.class, msgs );
             msgs = basicSetConstructedAttributes( newConstructedAttributes, msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -1419,7 +1420,7 @@ public class NSImpl extends CopyrightedImpl implements NS {
         if( constructedAttributes != null ) {
             NotificationChain msgs = null;
             msgs = ( ( InternalEObject ) constructedAttributes ).eInverseRemove( this,
-                    NsdPackage.CONSTRUCTED_ATTRIBUTES__NS, ConstructedAttributes.class, msgs );
+                    NsdPackage.CONSTRUCTED_ATTRIBUTES__PARENT_NS, ConstructedAttributes.class, msgs );
             msgs = basicUnsetConstructedAttributes( msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -1483,9 +1484,11 @@ public class NSImpl extends CopyrightedImpl implements NS {
         if( newCDCs != cDCs ) {
             NotificationChain msgs = null;
             if( cDCs != null )
-                msgs = ( ( InternalEObject ) cDCs ).eInverseRemove( this, NsdPackage.CD_CS__NS, CDCs.class, msgs );
+                msgs = ( ( InternalEObject ) cDCs ).eInverseRemove( this, NsdPackage.CD_CS__PARENT_NS, CDCs.class,
+                        msgs );
             if( newCDCs != null )
-                msgs = ( ( InternalEObject ) newCDCs ).eInverseAdd( this, NsdPackage.CD_CS__NS, CDCs.class, msgs );
+                msgs = ( ( InternalEObject ) newCDCs ).eInverseAdd( this, NsdPackage.CD_CS__PARENT_NS, CDCs.class,
+                        msgs );
             msgs = basicSetCDCs( newCDCs, msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -1528,7 +1531,7 @@ public class NSImpl extends CopyrightedImpl implements NS {
     public void unsetCDCs() {
         if( cDCs != null ) {
             NotificationChain msgs = null;
-            msgs = ( ( InternalEObject ) cDCs ).eInverseRemove( this, NsdPackage.CD_CS__NS, CDCs.class, msgs );
+            msgs = ( ( InternalEObject ) cDCs ).eInverseRemove( this, NsdPackage.CD_CS__PARENT_NS, CDCs.class, msgs );
             msgs = basicUnsetCDCs( msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -1592,10 +1595,10 @@ public class NSImpl extends CopyrightedImpl implements NS {
         if( newLNClasses != lNClasses ) {
             NotificationChain msgs = null;
             if( lNClasses != null )
-                msgs = ( ( InternalEObject ) lNClasses ).eInverseRemove( this, NsdPackage.LN_CLASSES__NS,
+                msgs = ( ( InternalEObject ) lNClasses ).eInverseRemove( this, NsdPackage.LN_CLASSES__PARENT_NS,
                         LNClasses.class, msgs );
             if( newLNClasses != null )
-                msgs = ( ( InternalEObject ) newLNClasses ).eInverseAdd( this, NsdPackage.LN_CLASSES__NS,
+                msgs = ( ( InternalEObject ) newLNClasses ).eInverseAdd( this, NsdPackage.LN_CLASSES__PARENT_NS,
                         LNClasses.class, msgs );
             msgs = basicSetLNClasses( newLNClasses, msgs );
             if( msgs != null ) msgs.dispatch();
@@ -1639,8 +1642,8 @@ public class NSImpl extends CopyrightedImpl implements NS {
     public void unsetLNClasses() {
         if( lNClasses != null ) {
             NotificationChain msgs = null;
-            msgs = ( ( InternalEObject ) lNClasses ).eInverseRemove( this, NsdPackage.LN_CLASSES__NS, LNClasses.class,
-                    msgs );
+            msgs = ( ( InternalEObject ) lNClasses ).eInverseRemove( this, NsdPackage.LN_CLASSES__PARENT_NS,
+                    LNClasses.class, msgs );
             msgs = basicUnsetLNClasses( msgs );
             if( msgs != null ) msgs.dispatch();
         }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NoticeImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NoticeImpl.java
index 893aebd7a34df5d7425b255c6454268e61787d3b..5aa37b9149e86345944bd7d77012fb4c43aead42 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NoticeImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NoticeImpl.java
@@ -44,7 +44,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NoticeImpl#getMixed <em>Mixed</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NoticeImpl#getCopyrightNotice <em>Copyright Notice</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NoticeImpl#getParentCopyrightNotice <em>Parent Copyright Notice</em>}</li>
  * </ul>
  *
  * @generated
@@ -98,8 +98,8 @@ public class NoticeImpl extends NsdObjectImpl implements Notice {
      * @generated
      */
     @Override
-    public CopyrightNotice getCopyrightNotice() {
-        if( eContainerFeatureID() != NsdPackage.NOTICE__COPYRIGHT_NOTICE ) return null;
+    public CopyrightNotice getParentCopyrightNotice() {
+        if( eContainerFeatureID() != NsdPackage.NOTICE__PARENT_COPYRIGHT_NOTICE ) return null;
         return ( CopyrightNotice ) eInternalContainer();
     }
 
@@ -108,8 +108,10 @@ public class NoticeImpl extends NsdObjectImpl implements Notice {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetCopyrightNotice( CopyrightNotice newCopyrightNotice, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newCopyrightNotice, NsdPackage.NOTICE__COPYRIGHT_NOTICE, msgs );
+    public NotificationChain basicSetParentCopyrightNotice( CopyrightNotice newParentCopyrightNotice,
+            NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentCopyrightNotice,
+                NsdPackage.NOTICE__PARENT_COPYRIGHT_NOTICE, msgs );
         return msgs;
     }
 
@@ -119,23 +121,24 @@ public class NoticeImpl extends NsdObjectImpl implements Notice {
      * @generated
      */
     @Override
-    public void setCopyrightNotice( CopyrightNotice newCopyrightNotice ) {
-        if( newCopyrightNotice != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.NOTICE__COPYRIGHT_NOTICE && newCopyrightNotice != null ) ) {
-            if( EcoreUtil.isAncestor( this, newCopyrightNotice ) )
+    public void setParentCopyrightNotice( CopyrightNotice newParentCopyrightNotice ) {
+        if( newParentCopyrightNotice != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.NOTICE__PARENT_COPYRIGHT_NOTICE
+                        && newParentCopyrightNotice != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentCopyrightNotice ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newCopyrightNotice != null )
-                msgs = ( ( InternalEObject ) newCopyrightNotice ).eInverseAdd( this,
+            if( newParentCopyrightNotice != null )
+                msgs = ( ( InternalEObject ) newParentCopyrightNotice ).eInverseAdd( this,
                         NsdPackage.COPYRIGHT_NOTICE__NOTICE, CopyrightNotice.class, msgs );
-            msgs = basicSetCopyrightNotice( newCopyrightNotice, msgs );
+            msgs = basicSetParentCopyrightNotice( newParentCopyrightNotice, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.NOTICE__COPYRIGHT_NOTICE,
-                    newCopyrightNotice, newCopyrightNotice ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.NOTICE__PARENT_COPYRIGHT_NOTICE,
+                    newParentCopyrightNotice, newParentCopyrightNotice ) );
     }
 
     /**
@@ -146,10 +149,10 @@ public class NoticeImpl extends NsdObjectImpl implements Notice {
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.NOTICE__COPYRIGHT_NOTICE:
+        case NsdPackage.NOTICE__PARENT_COPYRIGHT_NOTICE:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetCopyrightNotice( ( CopyrightNotice ) otherEnd, msgs );
+            return basicSetParentCopyrightNotice( ( CopyrightNotice ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -164,8 +167,8 @@ public class NoticeImpl extends NsdObjectImpl implements Notice {
         switch( featureID ) {
         case NsdPackage.NOTICE__MIXED:
             return ( ( InternalEList< ? > ) getMixed() ).basicRemove( otherEnd, msgs );
-        case NsdPackage.NOTICE__COPYRIGHT_NOTICE:
-            return basicSetCopyrightNotice( null, msgs );
+        case NsdPackage.NOTICE__PARENT_COPYRIGHT_NOTICE:
+            return basicSetParentCopyrightNotice( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -178,7 +181,7 @@ public class NoticeImpl extends NsdObjectImpl implements Notice {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.NOTICE__COPYRIGHT_NOTICE:
+        case NsdPackage.NOTICE__PARENT_COPYRIGHT_NOTICE:
             return eInternalContainer().eInverseRemove( this, NsdPackage.COPYRIGHT_NOTICE__NOTICE,
                     CopyrightNotice.class, msgs );
         }
@@ -196,8 +199,8 @@ public class NoticeImpl extends NsdObjectImpl implements Notice {
         case NsdPackage.NOTICE__MIXED:
             if( coreType ) return getMixed();
             return ( ( FeatureMap.Internal ) getMixed() ).getWrapper();
-        case NsdPackage.NOTICE__COPYRIGHT_NOTICE:
-            return getCopyrightNotice();
+        case NsdPackage.NOTICE__PARENT_COPYRIGHT_NOTICE:
+            return getParentCopyrightNotice();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -213,8 +216,8 @@ public class NoticeImpl extends NsdObjectImpl implements Notice {
         case NsdPackage.NOTICE__MIXED:
             ( ( FeatureMap.Internal ) getMixed() ).set( newValue );
             return;
-        case NsdPackage.NOTICE__COPYRIGHT_NOTICE:
-            setCopyrightNotice( ( CopyrightNotice ) newValue );
+        case NsdPackage.NOTICE__PARENT_COPYRIGHT_NOTICE:
+            setParentCopyrightNotice( ( CopyrightNotice ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -231,8 +234,8 @@ public class NoticeImpl extends NsdObjectImpl implements Notice {
         case NsdPackage.NOTICE__MIXED:
             getMixed().clear();
             return;
-        case NsdPackage.NOTICE__COPYRIGHT_NOTICE:
-            setCopyrightNotice( ( CopyrightNotice ) null );
+        case NsdPackage.NOTICE__PARENT_COPYRIGHT_NOTICE:
+            setParentCopyrightNotice( ( CopyrightNotice ) null );
             return;
         }
         super.eUnset( featureID );
@@ -248,8 +251,8 @@ public class NoticeImpl extends NsdObjectImpl implements Notice {
         switch( featureID ) {
         case NsdPackage.NOTICE__MIXED:
             return mixed != null && !mixed.isEmpty();
-        case NsdPackage.NOTICE__COPYRIGHT_NOTICE:
-            return getCopyrightNotice() != null;
+        case NsdPackage.NOTICE__PARENT_COPYRIGHT_NOTICE:
+            return getParentCopyrightNotice() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdObjectImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdObjectImpl.java
index 3851bfd373037eebabca493cfb32584e8d98d8fc..dcb0c33e39a8816752d6001c8aac10fa424d34c1 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdObjectImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdObjectImpl.java
@@ -159,7 +159,7 @@ public abstract class NsdObjectImpl extends MinimalEObjectImpl.Container impleme
      */
     @Override
     public boolean buildExplicitLinks( IRiseClipseConsole console, boolean forceUpdate ) {
-        if( ( ! forceUpdate ) && isExplicitLinksBuilt() ) return true;
+        if( ( !forceUpdate ) && isExplicitLinksBuilt() ) return true;
 
         TreeIterator< EObject > it = eAllContents();
         while( it.hasNext() ) {
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdPackageImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdPackageImpl.java
index 58c5b31344b6901a1131a681c9ddf127cc299a7b..9d85ba5db8278b284f3751837fb77d14cee06acb 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdPackageImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdPackageImpl.java
@@ -720,7 +720,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getAppliesToType_ServiceNsUsage() {
+    public EReference getAppliesToType_ParentServiceNsUsage() {
         return ( EReference ) appliesToTypeEClass.getEStructuralFeatures().get( 0 );
     }
 
@@ -740,7 +740,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getDependsOn_NS() {
+    public EReference getDependsOn_ParentNS() {
         return ( EReference ) dependsOnEClass.getEStructuralFeatures().get( 0 );
     }
 
@@ -860,7 +860,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getServiceType_ApplicableServices() {
+    public EReference getServiceType_ParentApplicableServices() {
         return ( EReference ) serviceTypeEClass.getEStructuralFeatures().get( 1 );
     }
 
@@ -900,7 +900,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getAbbreviation_Abbreviations() {
+    public EReference getAbbreviation_ParentAbbreviations() {
         return ( EReference ) abbreviationEClass.getEStructuralFeatures().get( 2 );
     }
 
@@ -930,7 +930,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getAbbreviations_NS() {
+    public EReference getAbbreviations_ParentNS() {
         return ( EReference ) abbreviationsEClass.getEStructuralFeatures().get( 1 );
     }
 
@@ -940,7 +940,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getAbbreviations_ServiceNS() {
+    public EReference getAbbreviations_ParentServiceNS() {
         return ( EReference ) abbreviationsEClass.getEStructuralFeatures().get( 2 );
     }
 
@@ -970,7 +970,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getAbstractLNClass_LNClasses() {
+    public EReference getAbstractLNClass_ParentLNClasses() {
         return ( EReference ) abstractLNClassEClass.getEStructuralFeatures().get( 1 );
     }
 
@@ -1040,7 +1040,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EOperation getAnyLNClass__GetLNClasses() {
+    public EOperation getAnyLNClass__GetParentLNClasses() {
         return anyLNClassEClass.getEOperations().get( 1 );
     }
 
@@ -1120,7 +1120,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getApplicableServices_FunctionalConstraint() {
+    public EReference getApplicableServices_ParentFunctionalConstraint() {
         return ( EReference ) applicableServicesEClass.getEStructuralFeatures().get( 2 );
     }
 
@@ -1160,7 +1160,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getBasicType_BasicTypes() {
+    public EReference getBasicType_ParentBasicTypes() {
         return ( EReference ) basicTypeEClass.getEStructuralFeatures().get( 2 );
     }
 
@@ -1200,7 +1200,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getBasicTypes_NS() {
+    public EReference getBasicTypes_ParentNS() {
         return ( EReference ) basicTypesEClass.getEStructuralFeatures().get( 1 );
     }
 
@@ -1300,7 +1300,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getCDC_CDCs() {
+    public EReference getCDC_ParentCDCs() {
         return ( EReference ) cdcEClass.getEStructuralFeatures().get( 8 );
     }
 
@@ -1350,7 +1350,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getCDCs_NS() {
+    public EReference getCDCs_ParentNS() {
         return ( EReference ) cdCsEClass.getEStructuralFeatures().get( 1 );
     }
 
@@ -1410,7 +1410,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getChanges_NS() {
+    public EReference getChanges_ParentNS() {
         return ( EReference ) changesEClass.getEStructuralFeatures().get( 4 );
     }
 
@@ -1420,7 +1420,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getChanges_ServiceNS() {
+    public EReference getChanges_ParentServiceNS() {
         return ( EReference ) changesEClass.getEStructuralFeatures().get( 5 );
     }
 
@@ -1480,7 +1480,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getConstructedAttribute_ConstructedAttributes() {
+    public EReference getConstructedAttribute_ParentConstructedAttributes() {
         return ( EReference ) constructedAttributeEClass.getEStructuralFeatures().get( 2 );
     }
 
@@ -1490,7 +1490,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getConstructedAttribute_ServiceTypeRealizations() {
+    public EReference getConstructedAttribute_ParentServiceTypeRealizations() {
         return ( EReference ) constructedAttributeEClass.getEStructuralFeatures().get( 3 );
     }
 
@@ -1520,7 +1520,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getConstructedAttributes_NS() {
+    public EReference getConstructedAttributes_ParentNS() {
         return ( EReference ) constructedAttributesEClass.getEStructuralFeatures().get( 1 );
     }
 
@@ -1580,7 +1580,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getCopyrightNotice_Copyrighted() {
+    public EReference getCopyrightNotice_ParentCopyrighted() {
         return ( EReference ) copyrightNoticeEClass.getEStructuralFeatures().get( 2 );
     }
 
@@ -1620,7 +1620,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getDataAttribute_CDC() {
+    public EReference getDataAttribute_ParentCDC() {
         return ( EReference ) dataAttributeEClass.getEStructuralFeatures().get( 2 );
     }
 
@@ -1760,7 +1760,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getDataObject_AnyLNClass() {
+    public EReference getDataObject_ParentAnyLNClass() {
         return ( EReference ) dataObjectEClass.getEStructuralFeatures().get( 3 );
     }
 
@@ -1820,7 +1820,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getDataSetMemberOf_ApplicableServices() {
+    public EReference getDataSetMemberOf_ParentApplicableServices() {
         return ( EReference ) dataSetMemberOfEClass.getEStructuralFeatures().get( 1 );
     }
 
@@ -1880,7 +1880,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getDoc_NSDoc() {
+    public EReference getDoc_ParentNSDoc() {
         return ( EReference ) docEClass.getEStructuralFeatures().get( 4 );
     }
 
@@ -1970,7 +1970,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getEnumeration_Enumerations() {
+    public EReference getEnumeration_ParentEnumerations() {
         return ( EReference ) enumerationEClass.getEStructuralFeatures().get( 3 );
     }
 
@@ -2020,7 +2020,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getEnumerations_NS() {
+    public EReference getEnumerations_ParentNS() {
         return ( EReference ) enumerationsEClass.getEStructuralFeatures().get( 1 );
     }
 
@@ -2080,7 +2080,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getFunctionalConstraint_FunctionalConstraints() {
+    public EReference getFunctionalConstraint_ParentFunctionalConstraints() {
         return ( EReference ) functionalConstraintEClass.getEStructuralFeatures().get( 4 );
     }
 
@@ -2120,7 +2120,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getFunctionalConstraints_NS() {
+    public EReference getFunctionalConstraints_ParentNS() {
         return ( EReference ) functionalConstraintsEClass.getEStructuralFeatures().get( 1 );
     }
 
@@ -2130,7 +2130,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getFunctionalConstraints_ServiceNS() {
+    public EReference getFunctionalConstraints_ParentServiceNS() {
         return ( EReference ) functionalConstraintsEClass.getEStructuralFeatures().get( 2 );
     }
 
@@ -2180,7 +2180,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getLicense_CopyrightNotice() {
+    public EReference getLicense_ParentCopyrightNotice() {
         return ( EReference ) licenseEClass.getEStructuralFeatures().get( 3 );
     }
 
@@ -2220,7 +2220,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getLiteral_Enumeration() {
+    public EReference getLiteral_ParentEnumeration() {
         return ( EReference ) literalEClass.getEStructuralFeatures().get( 2 );
     }
 
@@ -2270,7 +2270,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getLNClass_LNClasses() {
+    public EReference getLNClass_ParentLNClasses() {
         return ( EReference ) lnClassEClass.getEStructuralFeatures().get( 3 );
     }
 
@@ -2310,7 +2310,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getLNClasses_NS() {
+    public EReference getLNClasses_ParentNS() {
         return ( EReference ) lnClassesEClass.getEStructuralFeatures().get( 2 );
     }
 
@@ -2340,7 +2340,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getNotice_CopyrightNotice() {
+    public EReference getNotice_ParentCopyrightNotice() {
         return ( EReference ) noticeEClass.getEStructuralFeatures().get( 1 );
     }
 
@@ -2600,7 +2600,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getPresenceCondition_PresenceConditions() {
+    public EReference getPresenceCondition_ParentPresenceConditions() {
         return ( EReference ) presenceConditionEClass.getEStructuralFeatures().get( 4 );
     }
 
@@ -2680,7 +2680,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getPresenceConditions_NS() {
+    public EReference getPresenceConditions_ParentNS() {
         return ( EReference ) presenceConditionsEClass.getEStructuralFeatures().get( 1 );
     }
 
@@ -2690,7 +2690,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getPresenceConditions_ServiceNS() {
+    public EReference getPresenceConditions_ParentServiceNS() {
         return ( EReference ) presenceConditionsEClass.getEStructuralFeatures().get( 2 );
     }
 
@@ -2740,7 +2740,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getServiceCDC_ServiceCDCs() {
+    public EReference getServiceCDC_ParentServiceCDCs() {
         return ( EReference ) serviceCDCEClass.getEStructuralFeatures().get( 3 );
     }
 
@@ -2770,7 +2770,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getServiceCDCs_ServiceNS() {
+    public EReference getServiceCDCs_ParentServiceNS() {
         return ( EReference ) serviceCDCsEClass.getEStructuralFeatures().get( 1 );
     }
 
@@ -2800,7 +2800,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getServiceConstructedAttribute_ServiceConstructedAttribute() {
+    public EReference getServiceConstructedAttribute_ParentServiceConstructedAttributes() {
         return ( EReference ) serviceConstructedAttributeEClass.getEStructuralFeatures().get( 1 );
     }
 
@@ -2830,7 +2830,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getServiceConstructedAttributes_ServiceNS() {
+    public EReference getServiceConstructedAttributes_ParentServiceNS() {
         return ( EReference ) serviceConstructedAttributesEClass.getEStructuralFeatures().get( 1 );
     }
 
@@ -2870,7 +2870,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getServiceDataAttribute_ServiceCDC() {
+    public EReference getServiceDataAttribute_ParentServiceCDC() {
         return ( EReference ) serviceDataAttributeEClass.getEStructuralFeatures().get( 2 );
     }
 
@@ -2980,7 +2980,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getServiceNsUsage_ApplicableServiceNS() {
+    public EReference getServiceNsUsage_ParentApplicableServiceNS() {
         return ( EReference ) serviceNsUsageEClass.getEStructuralFeatures().get( 1 );
     }
 
@@ -3010,7 +3010,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getServiceParameter_CDC() {
+    public EReference getServiceParameter_ParentCDC() {
         return ( EReference ) serviceParameterEClass.getEStructuralFeatures().get( 1 );
     }
 
@@ -3040,7 +3040,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getServiceTypeRealizations_ServiceNS() {
+    public EReference getServiceTypeRealizations_ParentServiceNS() {
         return ( EReference ) serviceTypeRealizationsEClass.getEStructuralFeatures().get( 1 );
     }
 
@@ -3070,7 +3070,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getSubDataAttribute_ConstructedAttribute() {
+    public EReference getSubDataAttribute_ParentConstructedAttribute() {
         return ( EReference ) subDataAttributeEClass.getEStructuralFeatures().get( 1 );
     }
 
@@ -3120,7 +3120,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      * @generated
      */
     @Override
-    public EReference getSubDataObject_CDC() {
+    public EReference getSubDataObject_ParentCDC() {
         return ( EReference ) subDataObjectEClass.getEStructuralFeatures().get( 2 );
     }
 
@@ -3774,10 +3774,10 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
 
         // Create classes and their features
         appliesToTypeEClass = createEClass( APPLIES_TO_TYPE );
-        createEReference( appliesToTypeEClass, APPLIES_TO_TYPE__SERVICE_NS_USAGE );
+        createEReference( appliesToTypeEClass, APPLIES_TO_TYPE__PARENT_SERVICE_NS_USAGE );
 
         dependsOnEClass = createEClass( DEPENDS_ON );
-        createEReference( dependsOnEClass, DEPENDS_ON__NS );
+        createEReference( dependsOnEClass, DEPENDS_ON__PARENT_NS );
         createEReference( dependsOnEClass, DEPENDS_ON__REFERS_TO_NS );
 
         documentRootEClass = createEClass( DOCUMENT_ROOT );
@@ -3791,21 +3791,21 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
 
         serviceTypeEClass = createEClass( SERVICE_TYPE );
         createEAttribute( serviceTypeEClass, SERVICE_TYPE__NAME );
-        createEReference( serviceTypeEClass, SERVICE_TYPE__APPLICABLE_SERVICES );
+        createEReference( serviceTypeEClass, SERVICE_TYPE__PARENT_APPLICABLE_SERVICES );
 
         abbreviationEClass = createEClass( ABBREVIATION );
         createEAttribute( abbreviationEClass, ABBREVIATION__DESC_ID );
         createEAttribute( abbreviationEClass, ABBREVIATION__NAME );
-        createEReference( abbreviationEClass, ABBREVIATION__ABBREVIATIONS );
+        createEReference( abbreviationEClass, ABBREVIATION__PARENT_ABBREVIATIONS );
 
         abbreviationsEClass = createEClass( ABBREVIATIONS );
         createEReference( abbreviationsEClass, ABBREVIATIONS__ABBREVIATION );
-        createEReference( abbreviationsEClass, ABBREVIATIONS__NS );
-        createEReference( abbreviationsEClass, ABBREVIATIONS__SERVICE_NS );
+        createEReference( abbreviationsEClass, ABBREVIATIONS__PARENT_NS );
+        createEReference( abbreviationsEClass, ABBREVIATIONS__PARENT_SERVICE_NS );
 
         abstractLNClassEClass = createEClass( ABSTRACT_LN_CLASS );
         createEAttribute( abstractLNClassEClass, ABSTRACT_LN_CLASS__NAME );
-        createEReference( abstractLNClassEClass, ABSTRACT_LN_CLASS__LN_CLASSES );
+        createEReference( abstractLNClassEClass, ABSTRACT_LN_CLASS__PARENT_LN_CLASSES );
         createEReference( abstractLNClassEClass, ABSTRACT_LN_CLASS__REFERRED_BY_ANY_LN_CLASS );
 
         anyLNClassEClass = createEClass( ANY_LN_CLASS );
@@ -3813,7 +3813,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         createEAttribute( anyLNClassEClass, ANY_LN_CLASS__BASE );
         createEReference( anyLNClassEClass, ANY_LN_CLASS__REFERS_TO_ABSTRACT_LN_CLASS );
         createEOperation( anyLNClassEClass, ANY_LN_CLASS___GET_NAME );
-        createEOperation( anyLNClassEClass, ANY_LN_CLASS___GET_LN_CLASSES );
+        createEOperation( anyLNClassEClass, ANY_LN_CLASS___GET_PARENT_LN_CLASSES );
 
         applicableServiceNSEClass = createEClass( APPLICABLE_SERVICE_NS );
         createEReference( applicableServiceNSEClass, APPLICABLE_SERVICE_NS__SERVICE_NS_USAGE );
@@ -3823,17 +3823,17 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         applicableServicesEClass = createEClass( APPLICABLE_SERVICES );
         createEReference( applicableServicesEClass, APPLICABLE_SERVICES__SERVICE );
         createEReference( applicableServicesEClass, APPLICABLE_SERVICES__DATA_SET_MEMBER_OF );
-        createEReference( applicableServicesEClass, APPLICABLE_SERVICES__FUNCTIONAL_CONSTRAINT );
+        createEReference( applicableServicesEClass, APPLICABLE_SERVICES__PARENT_FUNCTIONAL_CONSTRAINT );
 
         basicTypeEClass = createEClass( BASIC_TYPE );
         createEAttribute( basicTypeEClass, BASIC_TYPE__DESC_ID );
         createEAttribute( basicTypeEClass, BASIC_TYPE__NAME );
-        createEReference( basicTypeEClass, BASIC_TYPE__BASIC_TYPES );
+        createEReference( basicTypeEClass, BASIC_TYPE__PARENT_BASIC_TYPES );
         createEReference( basicTypeEClass, BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE );
 
         basicTypesEClass = createEClass( BASIC_TYPES );
         createEReference( basicTypesEClass, BASIC_TYPES__BASIC_TYPE );
-        createEReference( basicTypesEClass, BASIC_TYPES__NS );
+        createEReference( basicTypesEClass, BASIC_TYPES__PARENT_NS );
 
         cdcEClass = createEClass( CDC );
         createEReference( cdcEClass, CDC__SUB_DATA_OBJECT );
@@ -3844,33 +3844,33 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         createEAttribute( cdcEClass, CDC__STATISTICS );
         createEAttribute( cdcEClass, CDC__TYPE_KIND_PARAMETERIZED );
         createEAttribute( cdcEClass, CDC__VARIANT );
-        createEReference( cdcEClass, CDC__CD_CS );
+        createEReference( cdcEClass, CDC__PARENT_CD_CS );
         createEReference( cdcEClass, CDC__REFERRED_BY_DATA_OBJECT );
         createEReference( cdcEClass, CDC__REFERRED_BY_SUB_DATA_OBJECT );
 
         cdCsEClass = createEClass( CD_CS );
         createEReference( cdCsEClass, CD_CS__CDC );
-        createEReference( cdCsEClass, CD_CS__NS );
+        createEReference( cdCsEClass, CD_CS__PARENT_NS );
 
         changesEClass = createEClass( CHANGES );
         createEAttribute( changesEClass, CHANGES__CHANGES_ID );
         createEAttribute( changesEClass, CHANGES__DATE );
         createEAttribute( changesEClass, CHANGES__REVISION );
         createEAttribute( changesEClass, CHANGES__TISSUES );
-        createEReference( changesEClass, CHANGES__NS );
-        createEReference( changesEClass, CHANGES__SERVICE_NS );
+        createEReference( changesEClass, CHANGES__PARENT_NS );
+        createEReference( changesEClass, CHANGES__PARENT_SERVICE_NS );
         createEAttribute( changesEClass, CHANGES__RELEASE );
         createEAttribute( changesEClass, CHANGES__VERSION );
 
         constructedAttributeEClass = createEClass( CONSTRUCTED_ATTRIBUTE );
         createEReference( constructedAttributeEClass, CONSTRUCTED_ATTRIBUTE__SUB_DATA_ATTRIBUTE );
         createEAttribute( constructedAttributeEClass, CONSTRUCTED_ATTRIBUTE__NAME );
-        createEReference( constructedAttributeEClass, CONSTRUCTED_ATTRIBUTE__CONSTRUCTED_ATTRIBUTES );
-        createEReference( constructedAttributeEClass, CONSTRUCTED_ATTRIBUTE__SERVICE_TYPE_REALIZATIONS );
+        createEReference( constructedAttributeEClass, CONSTRUCTED_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTES );
+        createEReference( constructedAttributeEClass, CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_TYPE_REALIZATIONS );
 
         constructedAttributesEClass = createEClass( CONSTRUCTED_ATTRIBUTES );
         createEReference( constructedAttributesEClass, CONSTRUCTED_ATTRIBUTES__CONSTRUCTED_ATTRIBUTE );
-        createEReference( constructedAttributesEClass, CONSTRUCTED_ATTRIBUTES__NS );
+        createEReference( constructedAttributesEClass, CONSTRUCTED_ATTRIBUTES__PARENT_NS );
 
         copyrightedEClass = createEClass( COPYRIGHTED );
         createEReference( copyrightedEClass, COPYRIGHTED__COPYRIGHT );
@@ -3878,12 +3878,12 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         copyrightNoticeEClass = createEClass( COPYRIGHT_NOTICE );
         createEReference( copyrightNoticeEClass, COPYRIGHT_NOTICE__NOTICE );
         createEReference( copyrightNoticeEClass, COPYRIGHT_NOTICE__LICENSE );
-        createEReference( copyrightNoticeEClass, COPYRIGHT_NOTICE__COPYRIGHTED );
+        createEReference( copyrightNoticeEClass, COPYRIGHT_NOTICE__PARENT_COPYRIGHTED );
 
         dataAttributeEClass = createEClass( DATA_ATTRIBUTE );
         createEAttribute( dataAttributeEClass, DATA_ATTRIBUTE__FC );
         createEAttribute( dataAttributeEClass, DATA_ATTRIBUTE__NAME );
-        createEReference( dataAttributeEClass, DATA_ATTRIBUTE__CDC );
+        createEReference( dataAttributeEClass, DATA_ATTRIBUTE__PARENT_CDC );
         createEReference( dataAttributeEClass, DATA_ATTRIBUTE__REFERRED_BY_SUB_DATA_OBJECT_AS_SIZE_ATTRIBUTE );
         createEReference( dataAttributeEClass, DATA_ATTRIBUTE__REFERRED_BY_SUB_DATA_OBJECT_AS_MAX_INDEX_ATTRIBUTE );
         createEReference( dataAttributeEClass, DATA_ATTRIBUTE__REFERS_TO_FUNCTIONAL_CONSTRAINT );
@@ -3898,21 +3898,21 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         createEAttribute( dataObjectEClass, DATA_OBJECT__NAME );
         createEAttribute( dataObjectEClass, DATA_OBJECT__TRANSIENT );
         createEAttribute( dataObjectEClass, DATA_OBJECT__TYPE );
-        createEReference( dataObjectEClass, DATA_OBJECT__ANY_LN_CLASS );
+        createEReference( dataObjectEClass, DATA_OBJECT__PARENT_ANY_LN_CLASS );
         createEReference( dataObjectEClass, DATA_OBJECT__REFERS_TO_CDC );
         createEReference( dataObjectEClass, DATA_OBJECT__REFERS_TO_PRESENCE_CONDITION );
         createEReference( dataObjectEClass, DATA_OBJECT__REFERS_TO_PRESENCE_CONDITION_DERIVED_STATISTICS );
 
         dataSetMemberOfEClass = createEClass( DATA_SET_MEMBER_OF );
         createEAttribute( dataSetMemberOfEClass, DATA_SET_MEMBER_OF__CB );
-        createEReference( dataSetMemberOfEClass, DATA_SET_MEMBER_OF__APPLICABLE_SERVICES );
+        createEReference( dataSetMemberOfEClass, DATA_SET_MEMBER_OF__PARENT_APPLICABLE_SERVICES );
 
         docEClass = createEClass( DOC );
         createEAttribute( docEClass, DOC__MIXED );
         createEAttribute( docEClass, DOC__GROUP );
         createEAttribute( docEClass, DOC__ANY );
         createEAttribute( docEClass, DOC__ID );
-        createEReference( docEClass, DOC__NS_DOC );
+        createEReference( docEClass, DOC__PARENT_NS_DOC );
 
         documentedClassEClass = createEClass( DOCUMENTED_CLASS );
         createEAttribute( documentedClassEClass, DOCUMENTED_CLASS__DEPRECATED );
@@ -3923,52 +3923,52 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         createEReference( enumerationEClass, ENUMERATION__LITERAL );
         createEAttribute( enumerationEClass, ENUMERATION__INHERITED_FROM );
         createEAttribute( enumerationEClass, ENUMERATION__NAME );
-        createEReference( enumerationEClass, ENUMERATION__ENUMERATIONS );
+        createEReference( enumerationEClass, ENUMERATION__PARENT_ENUMERATIONS );
         createEReference( enumerationEClass, ENUMERATION__REFERS_TO_BASE_ENUMERATION );
         createEReference( enumerationEClass, ENUMERATION__REFERRED_BY_ENUMERATION_AS_BASE );
 
         enumerationsEClass = createEClass( ENUMERATIONS );
         createEReference( enumerationsEClass, ENUMERATIONS__ENUMERATION );
-        createEReference( enumerationsEClass, ENUMERATIONS__NS );
+        createEReference( enumerationsEClass, ENUMERATIONS__PARENT_NS );
 
         functionalConstraintEClass = createEClass( FUNCTIONAL_CONSTRAINT );
         createEReference( functionalConstraintEClass, FUNCTIONAL_CONSTRAINT__APPLICABLE_SERVICES );
         createEAttribute( functionalConstraintEClass, FUNCTIONAL_CONSTRAINT__ABBREVIATION );
         createEAttribute( functionalConstraintEClass, FUNCTIONAL_CONSTRAINT__DESC_ID );
         createEAttribute( functionalConstraintEClass, FUNCTIONAL_CONSTRAINT__TITLE_ID );
-        createEReference( functionalConstraintEClass, FUNCTIONAL_CONSTRAINT__FUNCTIONAL_CONSTRAINTS );
+        createEReference( functionalConstraintEClass, FUNCTIONAL_CONSTRAINT__PARENT_FUNCTIONAL_CONSTRAINTS );
         createEReference( functionalConstraintEClass, FUNCTIONAL_CONSTRAINT__REFERRED_BY_DATA_ATTRIBUTE );
 
         functionalConstraintsEClass = createEClass( FUNCTIONAL_CONSTRAINTS );
         createEReference( functionalConstraintsEClass, FUNCTIONAL_CONSTRAINTS__FUNCTIONAL_CONSTRAINT );
-        createEReference( functionalConstraintsEClass, FUNCTIONAL_CONSTRAINTS__NS );
-        createEReference( functionalConstraintsEClass, FUNCTIONAL_CONSTRAINTS__SERVICE_NS );
+        createEReference( functionalConstraintsEClass, FUNCTIONAL_CONSTRAINTS__PARENT_NS );
+        createEReference( functionalConstraintsEClass, FUNCTIONAL_CONSTRAINTS__PARENT_SERVICE_NS );
 
         licenseEClass = createEClass( LICENSE );
         createEAttribute( licenseEClass, LICENSE__MIXED );
         createEAttribute( licenseEClass, LICENSE__KIND );
         createEAttribute( licenseEClass, LICENSE__URI );
-        createEReference( licenseEClass, LICENSE__COPYRIGHT_NOTICE );
+        createEReference( licenseEClass, LICENSE__PARENT_COPYRIGHT_NOTICE );
 
         literalEClass = createEClass( LITERAL );
         createEAttribute( literalEClass, LITERAL__LITERAL_VAL );
         createEAttribute( literalEClass, LITERAL__NAME );
-        createEReference( literalEClass, LITERAL__ENUMERATION );
+        createEReference( literalEClass, LITERAL__PARENT_ENUMERATION );
 
         lnClassEClass = createEClass( LN_CLASS );
         createEAttribute( lnClassEClass, LN_CLASS__CAN_HAVE_LOG );
         createEAttribute( lnClassEClass, LN_CLASS__IS_EXTENSION );
         createEAttribute( lnClassEClass, LN_CLASS__NAME );
-        createEReference( lnClassEClass, LN_CLASS__LN_CLASSES );
+        createEReference( lnClassEClass, LN_CLASS__PARENT_LN_CLASSES );
 
         lnClassesEClass = createEClass( LN_CLASSES );
         createEReference( lnClassesEClass, LN_CLASSES__ABSTRACT_LN_CLASS );
         createEReference( lnClassesEClass, LN_CLASSES__LN_CLASS );
-        createEReference( lnClassesEClass, LN_CLASSES__NS );
+        createEReference( lnClassesEClass, LN_CLASSES__PARENT_NS );
 
         noticeEClass = createEClass( NOTICE );
         createEAttribute( noticeEClass, NOTICE__MIXED );
-        createEReference( noticeEClass, NOTICE__COPYRIGHT_NOTICE );
+        createEReference( noticeEClass, NOTICE__PARENT_COPYRIGHT_NOTICE );
 
         nsEClass = createEClass( NS );
         createEReference( nsEClass, NS__CHANGES );
@@ -3997,7 +3997,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         createEAttribute( presenceConditionEClass, PRESENCE_CONDITION__DESC_ID );
         createEAttribute( presenceConditionEClass, PRESENCE_CONDITION__NAME );
         createEAttribute( presenceConditionEClass, PRESENCE_CONDITION__TITLE_ID );
-        createEReference( presenceConditionEClass, PRESENCE_CONDITION__PRESENCE_CONDITIONS );
+        createEReference( presenceConditionEClass, PRESENCE_CONDITION__PARENT_PRESENCE_CONDITIONS );
         createEReference( presenceConditionEClass, PRESENCE_CONDITION__REFERRED_BY_DATA_OBJECT );
         createEReference( presenceConditionEClass, PRESENCE_CONDITION__REFERRED_BY_DATA_OBJECT_FOR_DERIVED_STATISTICS );
         createEReference( presenceConditionEClass, PRESENCE_CONDITION__REFERRED_BY_SUB_DATA_OBJECT );
@@ -4006,33 +4006,33 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
 
         presenceConditionsEClass = createEClass( PRESENCE_CONDITIONS );
         createEReference( presenceConditionsEClass, PRESENCE_CONDITIONS__PRESENCE_CONDITION );
-        createEReference( presenceConditionsEClass, PRESENCE_CONDITIONS__NS );
-        createEReference( presenceConditionsEClass, PRESENCE_CONDITIONS__SERVICE_NS );
+        createEReference( presenceConditionsEClass, PRESENCE_CONDITIONS__PARENT_NS );
+        createEReference( presenceConditionsEClass, PRESENCE_CONDITIONS__PARENT_SERVICE_NS );
 
         serviceCDCEClass = createEClass( SERVICE_CDC );
         createEReference( serviceCDCEClass, SERVICE_CDC__SERVICE_DATA_ATTRIBUTE );
         createEAttribute( serviceCDCEClass, SERVICE_CDC__CDC );
         createEAttribute( serviceCDCEClass, SERVICE_CDC__VARIANT );
-        createEReference( serviceCDCEClass, SERVICE_CDC__SERVICE_CD_CS );
+        createEReference( serviceCDCEClass, SERVICE_CDC__PARENT_SERVICE_CD_CS );
 
         serviceCDCsEClass = createEClass( SERVICE_CD_CS );
         createEReference( serviceCDCsEClass, SERVICE_CD_CS__SERVICE_CDC );
-        createEReference( serviceCDCsEClass, SERVICE_CD_CS__SERVICE_NS );
+        createEReference( serviceCDCsEClass, SERVICE_CD_CS__PARENT_SERVICE_NS );
 
         serviceConstructedAttributeEClass = createEClass( SERVICE_CONSTRUCTED_ATTRIBUTE );
         createEAttribute( serviceConstructedAttributeEClass, SERVICE_CONSTRUCTED_ATTRIBUTE__TYPE_KIND_PARAMETERIZED );
         createEReference( serviceConstructedAttributeEClass,
-                SERVICE_CONSTRUCTED_ATTRIBUTE__SERVICE_CONSTRUCTED_ATTRIBUTE );
+                SERVICE_CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_CONSTRUCTED_ATTRIBUTES );
 
         serviceConstructedAttributesEClass = createEClass( SERVICE_CONSTRUCTED_ATTRIBUTES );
         createEReference( serviceConstructedAttributesEClass,
                 SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_CONSTRUCTED_ATTRIBUTE );
-        createEReference( serviceConstructedAttributesEClass, SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_NS );
+        createEReference( serviceConstructedAttributesEClass, SERVICE_CONSTRUCTED_ATTRIBUTES__PARENT_SERVICE_NS );
 
         serviceDataAttributeEClass = createEClass( SERVICE_DATA_ATTRIBUTE );
         createEAttribute( serviceDataAttributeEClass, SERVICE_DATA_ATTRIBUTE__FC );
         createEAttribute( serviceDataAttributeEClass, SERVICE_DATA_ATTRIBUTE__NAME );
-        createEReference( serviceDataAttributeEClass, SERVICE_DATA_ATTRIBUTE__SERVICE_CDC );
+        createEReference( serviceDataAttributeEClass, SERVICE_DATA_ATTRIBUTE__PARENT_SERVICE_CDC );
 
         serviceNSEClass = createEClass( SERVICE_NS );
         createEReference( serviceNSEClass, SERVICE_NS__CHANGES );
@@ -4045,25 +4045,25 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
 
         serviceNsUsageEClass = createEClass( SERVICE_NS_USAGE );
         createEReference( serviceNsUsageEClass, SERVICE_NS_USAGE__APPLIES_TO );
-        createEReference( serviceNsUsageEClass, SERVICE_NS_USAGE__APPLICABLE_SERVICE_NS );
+        createEReference( serviceNsUsageEClass, SERVICE_NS_USAGE__PARENT_APPLICABLE_SERVICE_NS );
 
         serviceParameterEClass = createEClass( SERVICE_PARAMETER );
         createEAttribute( serviceParameterEClass, SERVICE_PARAMETER__NAME );
-        createEReference( serviceParameterEClass, SERVICE_PARAMETER__CDC );
+        createEReference( serviceParameterEClass, SERVICE_PARAMETER__PARENT_CDC );
 
         serviceTypeRealizationsEClass = createEClass( SERVICE_TYPE_REALIZATIONS );
         createEReference( serviceTypeRealizationsEClass, SERVICE_TYPE_REALIZATIONS__SERVICE_TYPE_REALIZATION );
-        createEReference( serviceTypeRealizationsEClass, SERVICE_TYPE_REALIZATIONS__SERVICE_NS );
+        createEReference( serviceTypeRealizationsEClass, SERVICE_TYPE_REALIZATIONS__PARENT_SERVICE_NS );
 
         subDataAttributeEClass = createEClass( SUB_DATA_ATTRIBUTE );
         createEAttribute( subDataAttributeEClass, SUB_DATA_ATTRIBUTE__NAME );
-        createEReference( subDataAttributeEClass, SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE );
+        createEReference( subDataAttributeEClass, SUB_DATA_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTE );
         createEReference( subDataAttributeEClass, SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION );
 
         subDataObjectEClass = createEClass( SUB_DATA_OBJECT );
         createEAttribute( subDataObjectEClass, SUB_DATA_OBJECT__NAME );
         createEAttribute( subDataObjectEClass, SUB_DATA_OBJECT__TYPE );
-        createEReference( subDataObjectEClass, SUB_DATA_OBJECT__CDC );
+        createEReference( subDataObjectEClass, SUB_DATA_OBJECT__PARENT_CDC );
         createEReference( subDataObjectEClass, SUB_DATA_OBJECT__REFERS_TO_CDC );
         createEReference( subDataObjectEClass, SUB_DATA_OBJECT__REFERS_TO_PRESENCE_CONDITION );
         createEReference( subDataObjectEClass, SUB_DATA_OBJECT__REFERS_TO_SIZE_ATTRIBUTE );
@@ -4261,15 +4261,16 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         // Initialize classes, features, and operations; add parameters
         initEClass( appliesToTypeEClass, AppliesToType.class, "AppliesToType", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEReference( getAppliesToType_ServiceNsUsage(), this.getServiceNsUsage(), this.getServiceNsUsage_AppliesTo(),
-                "serviceNsUsage", null, 0, 1, AppliesToType.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
-                !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getAppliesToType_ParentServiceNsUsage(), this.getServiceNsUsage(),
+                this.getServiceNsUsage_AppliesTo(), "parentServiceNsUsage", null, 0, 1, AppliesToType.class,
+                IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+                IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( dependsOnEClass, DependsOn.class, "DependsOn", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEReference( getDependsOn_NS(), this.getNS(), this.getNS_DependsOn(), "nS", null, 0, 1, DependsOn.class,
-                IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
-                IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getDependsOn_ParentNS(), this.getNS(), this.getNS_DependsOn(), "parentNS", null, 0, 1,
+                DependsOn.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+                !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEReference( getDependsOn_RefersToNS(), this.getNS(), this.getNS_ReferredByDependsOn(), "refersToNS", null,
                 0, 1, DependsOn.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
                 IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
@@ -4301,10 +4302,10 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 IS_GENERATED_INSTANCE_CLASS );
         initEAttribute( getServiceType_Name(), this.getACSIServicesKind(), "name", null, 0, 1, ServiceType.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getServiceType_ApplicableServices(), this.getApplicableServices(),
-                this.getApplicableServices_Service(), "applicableServices", null, 0, 1, ServiceType.class, IS_TRANSIENT,
-                !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
-                !IS_ORDERED );
+        initEReference( getServiceType_ParentApplicableServices(), this.getApplicableServices(),
+                this.getApplicableServices_Service(), "parentApplicableServices", null, 0, 1, ServiceType.class,
+                IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+                IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( abbreviationEClass, Abbreviation.class, "Abbreviation", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
@@ -4312,28 +4313,30 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
         initEAttribute( getAbbreviation_Name(), ecorePackage.getEString(), "name", null, 0, 1, Abbreviation.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getAbbreviation_Abbreviations(), this.getAbbreviations(), this.getAbbreviations_Abbreviation(),
-                "abbreviations", null, 0, 1, Abbreviation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
-                !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getAbbreviation_ParentAbbreviations(), this.getAbbreviations(),
+                this.getAbbreviations_Abbreviation(), "parentAbbreviations", null, 0, 1, Abbreviation.class,
+                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+                IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( abbreviationsEClass, Abbreviations.class, "Abbreviations", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEReference( getAbbreviations_Abbreviation(), this.getAbbreviation(), this.getAbbreviation_Abbreviations(),
-                "abbreviation", null, 0, -1, Abbreviations.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
-                IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getAbbreviations_NS(), this.getNS(), this.getNS_Abbreviations(), "nS", null, 0, 1,
+        initEReference( getAbbreviations_Abbreviation(), this.getAbbreviation(),
+                this.getAbbreviation_ParentAbbreviations(), "abbreviation", null, 0, -1, Abbreviations.class,
+                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE,
+                !IS_DERIVED, !IS_ORDERED );
+        initEReference( getAbbreviations_ParentNS(), this.getNS(), this.getNS_Abbreviations(), "parentNS", null, 0, 1,
                 Abbreviations.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
                 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getAbbreviations_ServiceNS(), this.getServiceNS(), this.getServiceNS_Abbreviations(),
-                "serviceNS", null, 0, 1, Abbreviations.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
-                !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getAbbreviations_ParentServiceNS(), this.getServiceNS(), this.getServiceNS_Abbreviations(),
+                "parentServiceNS", null, 0, 1, Abbreviations.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+                !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( abstractLNClassEClass, AbstractLNClass.class, "AbstractLNClass", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
         initEAttribute( getAbstractLNClass_Name(), ecorePackage.getEString(), "name", null, 0, 1, AbstractLNClass.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getAbstractLNClass_LNClasses(), this.getLNClasses(), this.getLNClasses_AbstractLNClass(),
-                "lNClasses", null, 0, 1, AbstractLNClass.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+        initEReference( getAbstractLNClass_ParentLNClasses(), this.getLNClasses(), this.getLNClasses_AbstractLNClass(),
+                "parentLNClasses", null, 0, 1, AbstractLNClass.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
                 !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEReference( getAbstractLNClass_ReferredByAnyLNClass(), this.getAnyLNClass(),
                 this.getAnyLNClass_RefersToAbstractLNClass(), "referredByAnyLNClass", null, 0, -1,
@@ -4342,8 +4345,8 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
 
         initEClass( anyLNClassEClass, AnyLNClass.class, "AnyLNClass", IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEReference( getAnyLNClass_DataObject(), this.getDataObject(), this.getDataObject_AnyLNClass(), "dataObject",
-                null, 0, -1, AnyLNClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+        initEReference( getAnyLNClass_DataObject(), this.getDataObject(), this.getDataObject_ParentAnyLNClass(),
+                "dataObject", null, 0, -1, AnyLNClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
                 !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEAttribute( getAnyLNClass_Base(), ecorePackage.getEString(), "base", null, 0, 1, AnyLNClass.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
@@ -4355,15 +4358,15 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEOperation( getAnyLNClass__GetName(), theXMLTypePackage.getString(), "getName", 0, 1, IS_UNIQUE,
                 IS_ORDERED );
 
-        initEOperation( getAnyLNClass__GetLNClasses(), this.getLNClasses(), "getLNClasses", 0, 1, IS_UNIQUE,
+        initEOperation( getAnyLNClass__GetParentLNClasses(), this.getLNClasses(), "getParentLNClasses", 0, 1, IS_UNIQUE,
                 IS_ORDERED );
 
         initEClass( applicableServiceNSEClass, ApplicableServiceNS.class, "ApplicableServiceNS", !IS_ABSTRACT,
                 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
         initEReference( getApplicableServiceNS_ServiceNsUsage(), this.getServiceNsUsage(),
-                this.getServiceNsUsage_ApplicableServiceNS(), "serviceNsUsage", null, 0, -1, ApplicableServiceNS.class,
-                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE,
-                !IS_DERIVED, !IS_ORDERED );
+                this.getServiceNsUsage_ParentApplicableServiceNS(), "serviceNsUsage", null, 0, -1,
+                ApplicableServiceNS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+                !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEAttribute( getApplicableServiceNS_Date(), theXMLTypePackage.getDateTime(), "date", null, 0, 1,
                 ApplicableServiceNS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
@@ -4374,15 +4377,15 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEClass( applicableServicesEClass, ApplicableServices.class, "ApplicableServices", !IS_ABSTRACT,
                 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
         initEReference( getApplicableServices_Service(), this.getServiceType(),
-                this.getServiceType_ApplicableServices(), "service", null, 0, -1, ApplicableServices.class,
+                this.getServiceType_ParentApplicableServices(), "service", null, 0, -1, ApplicableServices.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE,
                 !IS_DERIVED, !IS_ORDERED );
         initEReference( getApplicableServices_DataSetMemberOf(), this.getDataSetMemberOf(),
-                this.getDataSetMemberOf_ApplicableServices(), "dataSetMemberOf", null, 0, -1, ApplicableServices.class,
-                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE,
-                !IS_DERIVED, !IS_ORDERED );
-        initEReference( getApplicableServices_FunctionalConstraint(), this.getFunctionalConstraint(),
-                this.getFunctionalConstraint_ApplicableServices(), "functionalConstraint", null, 0, 1,
+                this.getDataSetMemberOf_ParentApplicableServices(), "dataSetMemberOf", null, 0, -1,
+                ApplicableServices.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+                IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getApplicableServices_ParentFunctionalConstraint(), this.getFunctionalConstraint(),
+                this.getFunctionalConstraint_ApplicableServices(), "parentFunctionalConstraint", null, 0, 1,
                 ApplicableServices.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
                 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
@@ -4392,9 +4395,9 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
         initEAttribute( getBasicType_Name(), ecorePackage.getEString(), "name", null, 0, 1, BasicType.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getBasicType_BasicTypes(), this.getBasicTypes(), this.getBasicTypes_BasicType(), "basicTypes",
-                null, 0, 1, BasicType.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
-                !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getBasicType_ParentBasicTypes(), this.getBasicTypes(), this.getBasicTypes_BasicType(),
+                "parentBasicTypes", null, 0, 1, BasicType.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+                !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEReference( getBasicType_ReferredByDataAttribute(), this.getDataAttribute(),
                 this.getDataAttribute_RefersToBasicType(), "referredByDataAttribute", null, 0, -1, BasicType.class,
                 IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE,
@@ -4402,22 +4405,24 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
 
         initEClass( basicTypesEClass, BasicTypes.class, "BasicTypes", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEReference( getBasicTypes_BasicType(), this.getBasicType(), this.getBasicType_BasicTypes(), "basicType",
-                null, 0, -1, BasicTypes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+        initEReference( getBasicTypes_BasicType(), this.getBasicType(), this.getBasicType_ParentBasicTypes(),
+                "basicType", null, 0, -1, BasicTypes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
                 !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getBasicTypes_NS(), this.getNS(), this.getNS_BasicTypes(), "nS", null, 0, 1, BasicTypes.class,
-                IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
-                IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getBasicTypes_ParentNS(), this.getNS(), this.getNS_BasicTypes(), "parentNS", null, 0, 1,
+                BasicTypes.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+                !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( cdcEClass, fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC.class, "CDC", !IS_ABSTRACT,
                 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
-        initEReference( getCDC_SubDataObject(), this.getSubDataObject(), this.getSubDataObject_CDC(), "subDataObject",
-                null, 0, -1, fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC.class, !IS_TRANSIENT, !IS_VOLATILE,
-                IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getCDC_DataAttribute(), this.getDataAttribute(), this.getDataAttribute_CDC(), "dataAttribute",
-                null, 0, -1, fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC.class, !IS_TRANSIENT, !IS_VOLATILE,
-                IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getCDC_ServiceParameter(), this.getServiceParameter(), this.getServiceParameter_CDC(),
+        initEReference( getCDC_SubDataObject(), this.getSubDataObject(), this.getSubDataObject_ParentCDC(),
+                "subDataObject", null, 0, -1, fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC.class, !IS_TRANSIENT,
+                !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+                !IS_ORDERED );
+        initEReference( getCDC_DataAttribute(), this.getDataAttribute(), this.getDataAttribute_ParentCDC(),
+                "dataAttribute", null, 0, -1, fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC.class, !IS_TRANSIENT,
+                !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+                !IS_ORDERED );
+        initEReference( getCDC_ServiceParameter(), this.getServiceParameter(), this.getServiceParameter_ParentCDC(),
                 "serviceParameter", null, 0, 1, fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC.class, !IS_TRANSIENT,
                 !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
                 !IS_ORDERED );
@@ -4436,7 +4441,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEAttribute( getCDC_Variant(), theXMLTypePackage.getToken(), "variant", null, 0, 1,
                 fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
                 IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getCDC_CDCs(), this.getCDCs(), this.getCDCs_CDC(), "cDCs", null, 0, 1,
+        initEReference( getCDC_ParentCDCs(), this.getCDCs(), this.getCDCs_CDC(), "parentCDCs", null, 0, 1,
                 fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
                 !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEReference( getCDC_ReferredByDataObject(), this.getDataObject(), this.getDataObject_RefersToCDC(),
@@ -4449,12 +4454,12 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 !IS_DERIVED, !IS_ORDERED );
 
         initEClass( cdCsEClass, CDCs.class, "CDCs", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
-        initEReference( getCDCs_CDC(), this.getCDC(), this.getCDC_CDCs(), "cDC", null, 0, -1, CDCs.class, !IS_TRANSIENT,
-                !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
-                !IS_ORDERED );
-        initEReference( getCDCs_NS(), this.getNS(), this.getNS_CDCs(), "nS", null, 0, 1, CDCs.class, IS_TRANSIENT,
-                !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
-                !IS_ORDERED );
+        initEReference( getCDCs_CDC(), this.getCDC(), this.getCDC_ParentCDCs(), "cDC", null, 0, -1, CDCs.class,
+                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE,
+                !IS_DERIVED, !IS_ORDERED );
+        initEReference( getCDCs_ParentNS(), this.getNS(), this.getNS_CDCs(), "parentNS", null, 0, 1, CDCs.class,
+                IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+                IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( changesEClass, Changes.class, "Changes", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
         initEAttribute( getChanges_ChangesID(), ecorePackage.getEString(), "changesID", null, 0, 1, Changes.class,
@@ -4465,12 +4470,12 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
         initEAttribute( getChanges_Tissues(), ecorePackage.getEString(), "tissues", null, 0, 1, Changes.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getChanges_NS(), this.getNS(), this.getNS_Changes(), "nS", null, 0, 1, Changes.class,
-                IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
-                IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getChanges_ServiceNS(), this.getServiceNS(), this.getServiceNS_Changes(), "serviceNS", null, 0,
-                1, Changes.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+        initEReference( getChanges_ParentNS(), this.getNS(), this.getNS_Changes(), "parentNS", null, 0, 1,
+                Changes.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
                 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getChanges_ParentServiceNS(), this.getServiceNS(), this.getServiceNS_Changes(),
+                "parentServiceNS", null, 0, 1, Changes.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+                !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEAttribute( getChanges_Release(), ecorePackage.getEIntegerObject(), "release", "1", 0, 1, Changes.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
         initEAttribute( getChanges_Version(), ecorePackage.getEIntegerObject(), "version", null, 0, 1, Changes.class,
@@ -4479,47 +4484,48 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEClass( constructedAttributeEClass, ConstructedAttribute.class, "ConstructedAttribute", !IS_ABSTRACT,
                 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
         initEReference( getConstructedAttribute_SubDataAttribute(), this.getSubDataAttribute(),
-                this.getSubDataAttribute_ConstructedAttribute(), "subDataAttribute", null, 0, -1,
+                this.getSubDataAttribute_ParentConstructedAttribute(), "subDataAttribute", null, 0, -1,
                 ConstructedAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
                 !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEAttribute( getConstructedAttribute_Name(), ecorePackage.getEString(), "name", null, 0, 1,
                 ConstructedAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID,
                 IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getConstructedAttribute_ConstructedAttributes(), this.getConstructedAttributes(),
-                this.getConstructedAttributes_ConstructedAttribute(), "constructedAttributes", null, 0, 1,
+        initEReference( getConstructedAttribute_ParentConstructedAttributes(), this.getConstructedAttributes(),
+                this.getConstructedAttributes_ConstructedAttribute(), "parentConstructedAttributes", null, 0, 1,
                 ConstructedAttribute.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
                 !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getConstructedAttribute_ServiceTypeRealizations(), this.getServiceTypeRealizations(),
-                this.getServiceTypeRealizations_ServiceTypeRealization(), "serviceTypeRealizations", null, 0, 1,
+        initEReference( getConstructedAttribute_ParentServiceTypeRealizations(), this.getServiceTypeRealizations(),
+                this.getServiceTypeRealizations_ServiceTypeRealization(), "parentServiceTypeRealizations", null, 0, 1,
                 ConstructedAttribute.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
                 !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( constructedAttributesEClass, ConstructedAttributes.class, "ConstructedAttributes", !IS_ABSTRACT,
                 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
         initEReference( getConstructedAttributes_ConstructedAttribute(), this.getConstructedAttribute(),
-                this.getConstructedAttribute_ConstructedAttributes(), "constructedAttribute", null, 0, -1,
+                this.getConstructedAttribute_ParentConstructedAttributes(), "constructedAttribute", null, 0, -1,
                 ConstructedAttributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
                 !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getConstructedAttributes_NS(), this.getNS(), this.getNS_ConstructedAttributes(), "nS", null, 0,
-                1, ConstructedAttributes.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
-                !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getConstructedAttributes_ParentNS(), this.getNS(), this.getNS_ConstructedAttributes(),
+                "parentNS", null, 0, 1, ConstructedAttributes.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+                !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( copyrightedEClass, Copyrighted.class, "Copyrighted", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEReference( getCopyrighted_Copyright(), this.getCopyrightNotice(), this.getCopyrightNotice_Copyrighted(),
-                "copyright", null, 0, 1, Copyrighted.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
-                !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getCopyrighted_Copyright(), this.getCopyrightNotice(),
+                this.getCopyrightNotice_ParentCopyrighted(), "copyright", null, 0, 1, Copyrighted.class, !IS_TRANSIENT,
+                !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+                !IS_ORDERED );
 
         initEClass( copyrightNoticeEClass, CopyrightNotice.class, "CopyrightNotice", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEReference( getCopyrightNotice_Notice(), this.getNotice(), this.getNotice_CopyrightNotice(), "notice", null,
-                0, 1, CopyrightNotice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
-                !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getCopyrightNotice_License(), this.getLicense(), this.getLicense_CopyrightNotice(), "license",
+        initEReference( getCopyrightNotice_Notice(), this.getNotice(), this.getNotice_ParentCopyrightNotice(), "notice",
                 null, 0, 1, CopyrightNotice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
                 !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getCopyrightNotice_Copyrighted(), this.getCopyrighted(), this.getCopyrighted_Copyright(),
-                "copyrighted", null, 0, 1, CopyrightNotice.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+        initEReference( getCopyrightNotice_License(), this.getLicense(), this.getLicense_ParentCopyrightNotice(),
+                "license", null, 0, 1, CopyrightNotice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+                !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getCopyrightNotice_ParentCopyrighted(), this.getCopyrighted(), this.getCopyrighted_Copyright(),
+                "parentCopyrighted", null, 0, 1, CopyrightNotice.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
                 !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( dataAttributeEClass, DataAttribute.class, "DataAttribute", !IS_ABSTRACT, !IS_INTERFACE,
@@ -4528,8 +4534,8 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
         initEAttribute( getDataAttribute_Name(), ecorePackage.getEString(), "name", null, 0, 1, DataAttribute.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getDataAttribute_CDC(), this.getCDC(), this.getCDC_DataAttribute(), "cDC", null, 0, 1,
-                DataAttribute.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+        initEReference( getDataAttribute_ParentCDC(), this.getCDC(), this.getCDC_DataAttribute(), "parentCDC", null, 0,
+                1, DataAttribute.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
                 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEReference( getDataAttribute_ReferredBySubDataObjectAsSizeAttribute(), this.getSubDataObject(),
                 this.getSubDataObject_RefersToSizeAttribute(), "referredBySubDataObjectAsSizeAttribute", null, 0, -1,
@@ -4577,9 +4583,9 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 !IS_DERIVED, IS_ORDERED );
         initEAttribute( getDataObject_Type(), ecorePackage.getEString(), "type", null, 0, 1, DataObject.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getDataObject_AnyLNClass(), this.getAnyLNClass(), this.getAnyLNClass_DataObject(), "anyLNClass",
-                null, 0, 1, DataObject.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
-                !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getDataObject_ParentAnyLNClass(), this.getAnyLNClass(), this.getAnyLNClass_DataObject(),
+                "parentAnyLNClass", null, 0, 1, DataObject.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+                !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEReference( getDataObject_RefersToCDC(), this.getCDC(), this.getCDC_ReferredByDataObject(), "refersToCDC",
                 null, 0, 1, DataObject.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
                 !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
@@ -4596,10 +4602,10 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 IS_GENERATED_INSTANCE_CLASS );
         initEAttribute( getDataSetMemberOf_Cb(), this.getCBKind(), "cb", null, 0, 1, DataSetMemberOf.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getDataSetMemberOf_ApplicableServices(), this.getApplicableServices(),
-                this.getApplicableServices_DataSetMemberOf(), "applicableServices", null, 0, 1, DataSetMemberOf.class,
-                IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
-                IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getDataSetMemberOf_ParentApplicableServices(), this.getApplicableServices(),
+                this.getApplicableServices_DataSetMemberOf(), "parentApplicableServices", null, 0, 1,
+                DataSetMemberOf.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+                !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( docEClass, Doc.class, "Doc", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
         initEAttribute( getDoc_Mixed(), ecorePackage.getEFeatureMapEntry(), "mixed", null, 0, -1, Doc.class,
@@ -4611,9 +4617,9 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED );
         initEAttribute( getDoc_Id(), ecorePackage.getEString(), "id", null, 0, 1, Doc.class, !IS_TRANSIENT,
                 !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getDoc_NSDoc(), this.getNSDoc(), this.getNSDoc_Doc(), "nSDoc", null, 0, 1, Doc.class,
-                IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
-                IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getDoc_ParentNSDoc(), this.getNSDoc(), this.getNSDoc_Doc(), "parentNSDoc", null, 0, 1,
+                Doc.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+                !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( documentedClassEClass, DocumentedClass.class, "DocumentedClass", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
@@ -4629,17 +4635,17 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
 
         initEClass( enumerationEClass, Enumeration.class, "Enumeration", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEReference( getEnumeration_Literal(), this.getLiteral(), this.getLiteral_Enumeration(), "literal", null, 0,
-                -1, Enumeration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
-                IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getEnumeration_Literal(), this.getLiteral(), this.getLiteral_ParentEnumeration(), "literal",
+                null, 0, -1, Enumeration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+                !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEAttribute( getEnumeration_InheritedFrom(), ecorePackage.getEString(), "inheritedFrom", null, 0, 1,
                 Enumeration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
         initEAttribute( getEnumeration_Name(), ecorePackage.getEString(), "name", null, 0, 1, Enumeration.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getEnumeration_Enumerations(), this.getEnumerations(), this.getEnumerations_Enumeration(),
-                "enumerations", null, 0, 1, Enumeration.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
-                !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getEnumeration_ParentEnumerations(), this.getEnumerations(), this.getEnumerations_Enumeration(),
+                "parentEnumerations", null, 0, 1, Enumeration.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+                !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEReference( getEnumeration_RefersToBaseEnumeration(), this.getEnumeration(),
                 this.getEnumeration_ReferredByEnumerationAsBase(), "refersToBaseEnumeration", null, 0, 1,
                 Enumeration.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
@@ -4651,17 +4657,17 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
 
         initEClass( enumerationsEClass, Enumerations.class, "Enumerations", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEReference( getEnumerations_Enumeration(), this.getEnumeration(), this.getEnumeration_Enumerations(),
+        initEReference( getEnumerations_Enumeration(), this.getEnumeration(), this.getEnumeration_ParentEnumerations(),
                 "enumeration", null, 0, -1, Enumerations.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
                 IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getEnumerations_NS(), this.getNS(), this.getNS_Enumerations(), "nS", null, 0, 1,
+        initEReference( getEnumerations_ParentNS(), this.getNS(), this.getNS_Enumerations(), "parentNS", null, 0, 1,
                 Enumerations.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
                 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( functionalConstraintEClass, FunctionalConstraint.class, "FunctionalConstraint", !IS_ABSTRACT,
                 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
         initEReference( getFunctionalConstraint_ApplicableServices(), this.getApplicableServices(),
-                this.getApplicableServices_FunctionalConstraint(), "applicableServices", null, 0, 1,
+                this.getApplicableServices_ParentFunctionalConstraint(), "applicableServices", null, 0, 1,
                 FunctionalConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
                 !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEAttribute( getFunctionalConstraint_Abbreviation(), ecorePackage.getEString(), "abbreviation", null, 0, 1,
@@ -4673,8 +4679,8 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEAttribute( getFunctionalConstraint_TitleID(), ecorePackage.getEString(), "titleID", null, 0, 1,
                 FunctionalConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID,
                 IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getFunctionalConstraint_FunctionalConstraints(), this.getFunctionalConstraints(),
-                this.getFunctionalConstraints_FunctionalConstraint(), "functionalConstraints", null, 0, 1,
+        initEReference( getFunctionalConstraint_ParentFunctionalConstraints(), this.getFunctionalConstraints(),
+                this.getFunctionalConstraints_FunctionalConstraint(), "parentFunctionalConstraints", null, 0, 1,
                 FunctionalConstraint.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
                 !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEReference( getFunctionalConstraint_ReferredByDataAttribute(), this.getDataAttribute(),
@@ -4685,14 +4691,14 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEClass( functionalConstraintsEClass, FunctionalConstraints.class, "FunctionalConstraints", !IS_ABSTRACT,
                 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
         initEReference( getFunctionalConstraints_FunctionalConstraint(), this.getFunctionalConstraint(),
-                this.getFunctionalConstraint_FunctionalConstraints(), "functionalConstraint", null, 0, -1,
+                this.getFunctionalConstraint_ParentFunctionalConstraints(), "functionalConstraint", null, 0, -1,
                 FunctionalConstraints.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
                 !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getFunctionalConstraints_NS(), this.getNS(), this.getNS_FunctionalConstraints(), "nS", null, 0,
-                1, FunctionalConstraints.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
-                !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getFunctionalConstraints_ServiceNS(), this.getServiceNS(),
-                this.getServiceNS_FunctionalConstraints(), "serviceNS", null, 0, 1, FunctionalConstraints.class,
+        initEReference( getFunctionalConstraints_ParentNS(), this.getNS(), this.getNS_FunctionalConstraints(),
+                "parentNS", null, 0, 1, FunctionalConstraints.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+                !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getFunctionalConstraints_ParentServiceNS(), this.getServiceNS(),
+                this.getServiceNS_FunctionalConstraints(), "parentServiceNS", null, 0, 1, FunctionalConstraints.class,
                 IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
                 IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
@@ -4704,18 +4710,19 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
         initEAttribute( getLicense_Uri(), theXMLTypePackage.getNormalizedString(), "uri", null, 0, 1, License.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getLicense_CopyrightNotice(), this.getCopyrightNotice(), this.getCopyrightNotice_License(),
-                "copyrightNotice", null, 0, 1, License.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
-                !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getLicense_ParentCopyrightNotice(), this.getCopyrightNotice(),
+                this.getCopyrightNotice_License(), "parentCopyrightNotice", null, 0, 1, License.class, IS_TRANSIENT,
+                !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+                !IS_ORDERED );
 
         initEClass( literalEClass, Literal.class, "Literal", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
         initEAttribute( getLiteral_LiteralVal(), theXMLTypePackage.getInt(), "literalVal", null, 0, 1, Literal.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
         initEAttribute( getLiteral_Name(), ecorePackage.getEString(), "name", null, 0, 1, Literal.class, !IS_TRANSIENT,
                 !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getLiteral_Enumeration(), this.getEnumeration(), this.getEnumeration_Literal(), "enumeration",
-                null, 0, 1, Literal.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
-                !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getLiteral_ParentEnumeration(), this.getEnumeration(), this.getEnumeration_Literal(),
+                "parentEnumeration", null, 0, 1, Literal.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+                !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( lnClassEClass, LNClass.class, "LNClass", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
         initEAttribute( getLNClass_CanHaveLOG(), theXMLTypePackage.getBoolean(), "canHaveLOG", "false", 0, 1,
@@ -4726,63 +4733,65 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 !IS_DERIVED, IS_ORDERED );
         initEAttribute( getLNClass_Name(), ecorePackage.getEString(), "name", null, 0, 1, LNClass.class, !IS_TRANSIENT,
                 !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getLNClass_LNClasses(), this.getLNClasses(), this.getLNClasses_LNClass(), "lNClasses", null, 0,
-                1, LNClass.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
-                !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getLNClass_ParentLNClasses(), this.getLNClasses(), this.getLNClasses_LNClass(),
+                "parentLNClasses", null, 0, 1, LNClass.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+                !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( lnClassesEClass, LNClasses.class, "LNClasses", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEReference( getLNClasses_AbstractLNClass(), this.getAbstractLNClass(), this.getAbstractLNClass_LNClasses(),
-                "abstractLNClass", null, 0, -1, LNClasses.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
-                IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getLNClasses_LNClass(), this.getLNClass(), this.getLNClass_LNClasses(), "lNClass", null, 0, -1,
-                LNClasses.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+        initEReference( getLNClasses_AbstractLNClass(), this.getAbstractLNClass(),
+                this.getAbstractLNClass_ParentLNClasses(), "abstractLNClass", null, 0, -1, LNClasses.class,
+                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE,
+                !IS_DERIVED, !IS_ORDERED );
+        initEReference( getLNClasses_LNClass(), this.getLNClass(), this.getLNClass_ParentLNClasses(), "lNClass", null,
+                0, -1, LNClasses.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
                 IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getLNClasses_NS(), this.getNS(), this.getNS_LNClasses(), "nS", null, 0, 1, LNClasses.class,
-                IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
-                IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getLNClasses_ParentNS(), this.getNS(), this.getNS_LNClasses(), "parentNS", null, 0, 1,
+                LNClasses.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+                !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( noticeEClass, Notice.class, "Notice", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
         initEAttribute( getNotice_Mixed(), ecorePackage.getEFeatureMapEntry(), "mixed", null, 0, -1, Notice.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
-        initEReference( getNotice_CopyrightNotice(), this.getCopyrightNotice(), this.getCopyrightNotice_Notice(),
-                "copyrightNotice", null, 0, 1, Notice.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
-                !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getNotice_ParentCopyrightNotice(), this.getCopyrightNotice(), this.getCopyrightNotice_Notice(),
+                "parentCopyrightNotice", null, 0, 1, Notice.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+                !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( nsEClass, fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS.class, "NS", !IS_ABSTRACT,
                 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
-        initEReference( getNS_Changes(), this.getChanges(), this.getChanges_NS(), "changes", null, 0, 1,
+        initEReference( getNS_Changes(), this.getChanges(), this.getChanges_ParentNS(), "changes", null, 0, 1,
                 fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
                 IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getNS_DependsOn(), this.getDependsOn(), this.getDependsOn_NS(), "dependsOn", null, 0, 1,
+        initEReference( getNS_DependsOn(), this.getDependsOn(), this.getDependsOn_ParentNS(), "dependsOn", null, 0, 1,
                 fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
                 IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getNS_BasicTypes(), this.getBasicTypes(), this.getBasicTypes_NS(), "basicTypes", null, 0, 1,
-                fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+        initEReference( getNS_BasicTypes(), this.getBasicTypes(), this.getBasicTypes_ParentNS(), "basicTypes", null, 0,
+                1, fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
                 IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEReference( getNS_FunctionalConstraints(), this.getFunctionalConstraints(),
-                this.getFunctionalConstraints_NS(), "functionalConstraints", null, 0, 1,
+                this.getFunctionalConstraints_ParentNS(), "functionalConstraints", null, 0, 1,
                 fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
                 IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getNS_PresenceConditions(), this.getPresenceConditions(), this.getPresenceConditions_NS(),
+        initEReference( getNS_PresenceConditions(), this.getPresenceConditions(), this.getPresenceConditions_ParentNS(),
                 "presenceConditions", null, 0, 1, fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE,
                 !IS_DERIVED, !IS_ORDERED );
-        initEReference( getNS_Abbreviations(), this.getAbbreviations(), this.getAbbreviations_NS(), "abbreviations",
+        initEReference( getNS_Abbreviations(), this.getAbbreviations(), this.getAbbreviations_ParentNS(),
+                "abbreviations", null, 0, 1, fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS.class, !IS_TRANSIENT,
+                !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+                !IS_ORDERED );
+        initEReference( getNS_Enumerations(), this.getEnumerations(), this.getEnumerations_ParentNS(), "enumerations",
                 null, 0, 1, fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS.class, !IS_TRANSIENT, !IS_VOLATILE,
                 IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getNS_Enumerations(), this.getEnumerations(), this.getEnumerations_NS(), "enumerations", null,
-                0, 1, fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS.class, !IS_TRANSIENT, !IS_VOLATILE,
-                IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEReference( getNS_ConstructedAttributes(), this.getConstructedAttributes(),
-                this.getConstructedAttributes_NS(), "constructedAttributes", null, 0, 1,
+                this.getConstructedAttributes_ParentNS(), "constructedAttributes", null, 0, 1,
                 fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
                 IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getNS_CDCs(), this.getCDCs(), this.getCDCs_NS(), "cDCs", null, 0, 1,
+        initEReference( getNS_CDCs(), this.getCDCs(), this.getCDCs_ParentNS(), "cDCs", null, 0, 1,
                 fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
                 IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getNS_LNClasses(), this.getLNClasses(), this.getLNClasses_NS(), "lNClasses", null, 0, 1,
+        initEReference( getNS_LNClasses(), this.getLNClasses(), this.getLNClasses_ParentNS(), "lNClasses", null, 0, 1,
                 fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
                 IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEReference( getNS_ReferredByDependsOn(), this.getDependsOn(), this.getDependsOn_RefersToNS(),
@@ -4816,7 +4825,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         addEParameter( op, this.getIRiseClipseConsole(), "console", 0, 1, IS_UNIQUE, IS_ORDERED );
 
         initEClass( nsDocEClass, NSDoc.class, "NSDoc", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
-        initEReference( getNSDoc_Doc(), this.getDoc(), this.getDoc_NSDoc(), "doc", null, 0, -1, NSDoc.class,
+        initEReference( getNSDoc_Doc(), this.getDoc(), this.getDoc_ParentNSDoc(), "doc", null, 0, -1, NSDoc.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE,
                 !IS_DERIVED, !IS_ORDERED );
         initEAttribute( getNSDoc_Lang(), theXMLTypePackage.getLanguage(), "lang", null, 0, 1, NSDoc.class,
@@ -4836,8 +4845,8 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEAttribute( getPresenceCondition_TitleID(), ecorePackage.getEString(), "titleID", null, 0, 1,
                 PresenceCondition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEReference( getPresenceCondition_PresenceConditions(), this.getPresenceConditions(),
-                this.getPresenceConditions_PresenceCondition(), "presenceConditions", null, 0, 1,
+        initEReference( getPresenceCondition_ParentPresenceConditions(), this.getPresenceConditions(),
+                this.getPresenceConditions_PresenceCondition(), "parentPresenceConditions", null, 0, 1,
                 PresenceCondition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
                 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEReference( getPresenceCondition_ReferredByDataObject(), this.getDataObject(),
@@ -4865,59 +4874,61 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEClass( presenceConditionsEClass, PresenceConditions.class, "PresenceConditions", !IS_ABSTRACT,
                 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
         initEReference( getPresenceConditions_PresenceCondition(), this.getPresenceCondition(),
-                this.getPresenceCondition_PresenceConditions(), "presenceCondition", null, 0, -1,
+                this.getPresenceCondition_ParentPresenceConditions(), "presenceCondition", null, 0, -1,
                 PresenceConditions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
                 IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getPresenceConditions_NS(), this.getNS(), this.getNS_PresenceConditions(), "nS", null, 0, 1,
-                PresenceConditions.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
-                !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getPresenceConditions_ServiceNS(), this.getServiceNS(), this.getServiceNS_PresenceConditions(),
-                "serviceNS", null, 0, 1, PresenceConditions.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
-                !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getPresenceConditions_ParentNS(), this.getNS(), this.getNS_PresenceConditions(), "parentNS",
+                null, 0, 1, PresenceConditions.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+                !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getPresenceConditions_ParentServiceNS(), this.getServiceNS(),
+                this.getServiceNS_PresenceConditions(), "parentServiceNS", null, 0, 1, PresenceConditions.class,
+                IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+                IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( serviceCDCEClass, ServiceCDC.class, "ServiceCDC", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
         initEReference( getServiceCDC_ServiceDataAttribute(), this.getServiceDataAttribute(),
-                this.getServiceDataAttribute_ServiceCDC(), "serviceDataAttribute", null, 0, -1, ServiceCDC.class,
+                this.getServiceDataAttribute_ParentServiceCDC(), "serviceDataAttribute", null, 0, -1, ServiceCDC.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE,
                 !IS_DERIVED, !IS_ORDERED );
         initEAttribute( getServiceCDC_Cdc(), ecorePackage.getEString(), "cdc", null, 1, 1, ServiceCDC.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
         initEAttribute( getServiceCDC_Variant(), theXMLTypePackage.getToken(), "variant", null, 0, 1, ServiceCDC.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getServiceCDC_ServiceCDCs(), this.getServiceCDCs(), this.getServiceCDCs_ServiceCDC(),
-                "serviceCDCs", null, 0, 1, ServiceCDC.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
-                !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getServiceCDC_ParentServiceCDCs(), this.getServiceCDCs(), this.getServiceCDCs_ServiceCDC(),
+                "parentServiceCDCs", null, 0, 1, ServiceCDC.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+                !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( serviceCDCsEClass, ServiceCDCs.class, "ServiceCDCs", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEReference( getServiceCDCs_ServiceCDC(), this.getServiceCDC(), this.getServiceCDC_ServiceCDCs(),
+        initEReference( getServiceCDCs_ServiceCDC(), this.getServiceCDC(), this.getServiceCDC_ParentServiceCDCs(),
                 "serviceCDC", null, 0, -1, ServiceCDCs.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
                 !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getServiceCDCs_ServiceNS(), this.getServiceNS(), this.getServiceNS_ServiceCDCs(), "serviceNS",
-                null, 0, 1, ServiceCDCs.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
-                !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getServiceCDCs_ParentServiceNS(), this.getServiceNS(), this.getServiceNS_ServiceCDCs(),
+                "parentServiceNS", null, 0, 1, ServiceCDCs.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+                !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( serviceConstructedAttributeEClass, ServiceConstructedAttribute.class, "ServiceConstructedAttribute",
                 !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
         initEAttribute( getServiceConstructedAttribute_TypeKindParameterized(), theXMLTypePackage.getBoolean(),
                 "typeKindParameterized", "false", 0, 1, ServiceConstructedAttribute.class, !IS_TRANSIENT, !IS_VOLATILE,
                 IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getServiceConstructedAttribute_ServiceConstructedAttribute(),
+        initEReference( getServiceConstructedAttribute_ParentServiceConstructedAttributes(),
                 this.getServiceConstructedAttributes(),
-                this.getServiceConstructedAttributes_ServiceConstructedAttribute(), "serviceConstructedAttribute", null,
-                0, 1, ServiceConstructedAttribute.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
-                !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+                this.getServiceConstructedAttributes_ServiceConstructedAttribute(),
+                "parentServiceConstructedAttributes", null, 0, 1, ServiceConstructedAttribute.class, IS_TRANSIENT,
+                !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+                !IS_ORDERED );
 
         initEClass( serviceConstructedAttributesEClass, ServiceConstructedAttributes.class,
                 "ServiceConstructedAttributes", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
         initEReference( getServiceConstructedAttributes_ServiceConstructedAttribute(),
                 this.getServiceConstructedAttribute(),
-                this.getServiceConstructedAttribute_ServiceConstructedAttribute(), "serviceConstructedAttribute", null,
-                0, -1, ServiceConstructedAttributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
-                !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getServiceConstructedAttributes_ServiceNS(), this.getServiceNS(),
-                this.getServiceNS_ServiceConstructedAttributes(), "serviceNS", null, 0, 1,
+                this.getServiceConstructedAttribute_ParentServiceConstructedAttributes(), "serviceConstructedAttribute",
+                null, 0, -1, ServiceConstructedAttributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+                IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getServiceConstructedAttributes_ParentServiceNS(), this.getServiceNS(),
+                this.getServiceNS_ServiceConstructedAttributes(), "parentServiceNS", null, 0, 1,
                 ServiceConstructedAttributes.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
                 !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
@@ -4929,76 +4940,77 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEAttribute( getServiceDataAttribute_Name(), ecorePackage.getEString(), "name", null, 0, 1,
                 ServiceDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID,
                 IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getServiceDataAttribute_ServiceCDC(), this.getServiceCDC(),
-                this.getServiceCDC_ServiceDataAttribute(), "serviceCDC", null, 0, 1, ServiceDataAttribute.class,
+        initEReference( getServiceDataAttribute_ParentServiceCDC(), this.getServiceCDC(),
+                this.getServiceCDC_ServiceDataAttribute(), "parentServiceCDC", null, 0, 1, ServiceDataAttribute.class,
                 IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
                 IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( serviceNSEClass, ServiceNS.class, "ServiceNS", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEReference( getServiceNS_Changes(), this.getChanges(), this.getChanges_ServiceNS(), "changes", null, 0, 1,
-                ServiceNS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+        initEReference( getServiceNS_Changes(), this.getChanges(), this.getChanges_ParentServiceNS(), "changes", null,
+                0, 1, ServiceNS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
                 IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEReference( getServiceNS_FunctionalConstraints(), this.getFunctionalConstraints(),
-                this.getFunctionalConstraints_ServiceNS(), "functionalConstraints", null, 0, 1, ServiceNS.class,
+                this.getFunctionalConstraints_ParentServiceNS(), "functionalConstraints", null, 0, 1, ServiceNS.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE,
                 !IS_DERIVED, !IS_ORDERED );
         initEReference( getServiceNS_PresenceConditions(), this.getPresenceConditions(),
-                this.getPresenceConditions_ServiceNS(), "presenceConditions", null, 0, 1, ServiceNS.class,
+                this.getPresenceConditions_ParentServiceNS(), "presenceConditions", null, 0, 1, ServiceNS.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE,
                 !IS_DERIVED, !IS_ORDERED );
-        initEReference( getServiceNS_Abbreviations(), this.getAbbreviations(), this.getAbbreviations_ServiceNS(),
+        initEReference( getServiceNS_Abbreviations(), this.getAbbreviations(), this.getAbbreviations_ParentServiceNS(),
                 "abbreviations", null, 0, 1, ServiceNS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
                 !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEReference( getServiceNS_ServiceTypeRealizations(), this.getServiceTypeRealizations(),
-                this.getServiceTypeRealizations_ServiceNS(), "serviceTypeRealizations", null, 0, 1, ServiceNS.class,
-                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE,
-                !IS_DERIVED, !IS_ORDERED );
+                this.getServiceTypeRealizations_ParentServiceNS(), "serviceTypeRealizations", null, 0, 1,
+                ServiceNS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+                IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEReference( getServiceNS_ServiceConstructedAttributes(), this.getServiceConstructedAttributes(),
-                this.getServiceConstructedAttributes_ServiceNS(), "serviceConstructedAttributes", null, 0, 1,
+                this.getServiceConstructedAttributes_ParentServiceNS(), "serviceConstructedAttributes", null, 0, 1,
                 ServiceNS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
                 IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getServiceNS_ServiceCDCs(), this.getServiceCDCs(), this.getServiceCDCs_ServiceNS(),
+        initEReference( getServiceNS_ServiceCDCs(), this.getServiceCDCs(), this.getServiceCDCs_ParentServiceNS(),
                 "serviceCDCs", null, 0, 1, ServiceNS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
                 !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( serviceNsUsageEClass, ServiceNsUsage.class, "ServiceNsUsage", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEReference( getServiceNsUsage_AppliesTo(), this.getAppliesToType(), this.getAppliesToType_ServiceNsUsage(),
-                "appliesTo", null, 0, -1, ServiceNsUsage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
-                IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getServiceNsUsage_ApplicableServiceNS(), this.getApplicableServiceNS(),
-                this.getApplicableServiceNS_ServiceNsUsage(), "applicableServiceNS", null, 0, 1, ServiceNsUsage.class,
-                IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
-                IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getServiceNsUsage_AppliesTo(), this.getAppliesToType(),
+                this.getAppliesToType_ParentServiceNsUsage(), "appliesTo", null, 0, -1, ServiceNsUsage.class,
+                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE,
+                !IS_DERIVED, !IS_ORDERED );
+        initEReference( getServiceNsUsage_ParentApplicableServiceNS(), this.getApplicableServiceNS(),
+                this.getApplicableServiceNS_ServiceNsUsage(), "parentApplicableServiceNS", null, 0, 1,
+                ServiceNsUsage.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+                !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( serviceParameterEClass, ServiceParameter.class, "ServiceParameter", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
         initEAttribute( getServiceParameter_Name(), ecorePackage.getEString(), "name", null, 0, 1,
                 ServiceParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEReference( getServiceParameter_CDC(), this.getCDC(), this.getCDC_ServiceParameter(), "cDC", null, 0, 1,
-                ServiceParameter.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
-                !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getServiceParameter_ParentCDC(), this.getCDC(), this.getCDC_ServiceParameter(), "parentCDC",
+                null, 0, 1, ServiceParameter.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+                !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( serviceTypeRealizationsEClass, ServiceTypeRealizations.class, "ServiceTypeRealizations",
                 !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
         initEReference( getServiceTypeRealizations_ServiceTypeRealization(), this.getConstructedAttribute(),
-                this.getConstructedAttribute_ServiceTypeRealizations(), "serviceTypeRealization", null, 0, -1,
+                this.getConstructedAttribute_ParentServiceTypeRealizations(), "serviceTypeRealization", null, 0, -1,
                 ServiceTypeRealizations.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
                 !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
-        initEReference( getServiceTypeRealizations_ServiceNS(), this.getServiceNS(),
-                this.getServiceNS_ServiceTypeRealizations(), "serviceNS", null, 0, 1, ServiceTypeRealizations.class,
-                IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
-                IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
+        initEReference( getServiceTypeRealizations_ParentServiceNS(), this.getServiceNS(),
+                this.getServiceNS_ServiceTypeRealizations(), "parentServiceNS", null, 0, 1,
+                ServiceTypeRealizations.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+                !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
 
         initEClass( subDataAttributeEClass, SubDataAttribute.class, "SubDataAttribute", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
         initEAttribute( getSubDataAttribute_Name(), ecorePackage.getEString(), "name", null, 0, 1,
                 SubDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEReference( getSubDataAttribute_ConstructedAttribute(), this.getConstructedAttribute(),
-                this.getConstructedAttribute_SubDataAttribute(), "constructedAttribute", null, 0, 1,
+        initEReference( getSubDataAttribute_ParentConstructedAttribute(), this.getConstructedAttribute(),
+                this.getConstructedAttribute_SubDataAttribute(), "parentConstructedAttribute", null, 0, 1,
                 SubDataAttribute.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
                 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEReference( getSubDataAttribute_RefersToPresenceCondition(), this.getPresenceCondition(),
@@ -5012,8 +5024,8 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
         initEAttribute( getSubDataObject_Type(), ecorePackage.getEString(), "type", null, 0, 1, SubDataObject.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEReference( getSubDataObject_CDC(), this.getCDC(), this.getCDC_SubDataObject(), "cDC", null, 0, 1,
-                SubDataObject.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+        initEReference( getSubDataObject_ParentCDC(), this.getCDC(), this.getCDC_SubDataObject(), "parentCDC", null, 0,
+                1, SubDataObject.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
                 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED );
         initEReference( getSubDataObject_RefersToCDC(), this.getCDC(), this.getCDC_ReferredBySubDataObject(),
                 "refersToCDC", null, 0, 1, SubDataObject.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/PresenceConditionImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/PresenceConditionImpl.java
index 946285adb41170403539c250261cd158d6dad787..4c90d000559f32805781d9b38e07fd4aa7247b62 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/PresenceConditionImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/PresenceConditionImpl.java
@@ -52,7 +52,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.PresenceConditionImpl#getDescID <em>Desc ID</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.PresenceConditionImpl#getName <em>Name</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.PresenceConditionImpl#getTitleID <em>Title ID</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.PresenceConditionImpl#getPresenceConditions <em>Presence Conditions</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.PresenceConditionImpl#getParentPresenceConditions <em>Parent Presence Conditions</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.PresenceConditionImpl#getReferredByDataObject <em>Referred By Data Object</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.PresenceConditionImpl#getReferredByDataObjectForDerivedStatistics <em>Referred By Data Object For Derived Statistics</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.PresenceConditionImpl#getReferredBySubDataObject <em>Referred By Sub Data Object</em>}</li>
@@ -462,8 +462,8 @@ public class PresenceConditionImpl extends NsdObjectImpl implements PresenceCond
      * @generated
      */
     @Override
-    public PresenceConditions getPresenceConditions() {
-        if( eContainerFeatureID() != NsdPackage.PRESENCE_CONDITION__PRESENCE_CONDITIONS ) return null;
+    public PresenceConditions getParentPresenceConditions() {
+        if( eContainerFeatureID() != NsdPackage.PRESENCE_CONDITION__PARENT_PRESENCE_CONDITIONS ) return null;
         return ( PresenceConditions ) eInternalContainer();
     }
 
@@ -472,10 +472,10 @@ public class PresenceConditionImpl extends NsdObjectImpl implements PresenceCond
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetPresenceConditions( PresenceConditions newPresenceConditions,
+    public NotificationChain basicSetParentPresenceConditions( PresenceConditions newParentPresenceConditions,
             NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newPresenceConditions,
-                NsdPackage.PRESENCE_CONDITION__PRESENCE_CONDITIONS, msgs );
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentPresenceConditions,
+                NsdPackage.PRESENCE_CONDITION__PARENT_PRESENCE_CONDITIONS, msgs );
         return msgs;
     }
 
@@ -485,24 +485,25 @@ public class PresenceConditionImpl extends NsdObjectImpl implements PresenceCond
      * @generated
      */
     @Override
-    public void setPresenceConditions( PresenceConditions newPresenceConditions ) {
-        if( newPresenceConditions != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.PRESENCE_CONDITION__PRESENCE_CONDITIONS
-                        && newPresenceConditions != null ) ) {
-            if( EcoreUtil.isAncestor( this, newPresenceConditions ) )
+    public void setParentPresenceConditions( PresenceConditions newParentPresenceConditions ) {
+        if( newParentPresenceConditions != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.PRESENCE_CONDITION__PARENT_PRESENCE_CONDITIONS
+                        && newParentPresenceConditions != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentPresenceConditions ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newPresenceConditions != null )
-                msgs = ( ( InternalEObject ) newPresenceConditions ).eInverseAdd( this,
+            if( newParentPresenceConditions != null )
+                msgs = ( ( InternalEObject ) newParentPresenceConditions ).eInverseAdd( this,
                         NsdPackage.PRESENCE_CONDITIONS__PRESENCE_CONDITION, PresenceConditions.class, msgs );
-            msgs = basicSetPresenceConditions( newPresenceConditions, msgs );
+            msgs = basicSetParentPresenceConditions( newParentPresenceConditions, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.PRESENCE_CONDITION__PRESENCE_CONDITIONS,
-                    newPresenceConditions, newPresenceConditions ) );
+            eNotify( new ENotificationImpl( this, Notification.SET,
+                    NsdPackage.PRESENCE_CONDITION__PARENT_PRESENCE_CONDITIONS, newParentPresenceConditions,
+                    newParentPresenceConditions ) );
     }
 
     /**
@@ -694,10 +695,10 @@ public class PresenceConditionImpl extends NsdObjectImpl implements PresenceCond
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.PRESENCE_CONDITION__PRESENCE_CONDITIONS:
+        case NsdPackage.PRESENCE_CONDITION__PARENT_PRESENCE_CONDITIONS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetPresenceConditions( ( PresenceConditions ) otherEnd, msgs );
+            return basicSetParentPresenceConditions( ( PresenceConditions ) otherEnd, msgs );
         case NsdPackage.PRESENCE_CONDITION__REFERRED_BY_DATA_OBJECT:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getReferredByDataObject() )
                     .basicAdd( otherEnd, msgs );
@@ -725,8 +726,8 @@ public class PresenceConditionImpl extends NsdObjectImpl implements PresenceCond
     @Override
     public NotificationChain eInverseRemove( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.PRESENCE_CONDITION__PRESENCE_CONDITIONS:
-            return basicSetPresenceConditions( null, msgs );
+        case NsdPackage.PRESENCE_CONDITION__PARENT_PRESENCE_CONDITIONS:
+            return basicSetParentPresenceConditions( null, msgs );
         case NsdPackage.PRESENCE_CONDITION__REFERRED_BY_DATA_OBJECT:
             return ( ( InternalEList< ? > ) getReferredByDataObject() ).basicRemove( otherEnd, msgs );
         case NsdPackage.PRESENCE_CONDITION__REFERRED_BY_DATA_OBJECT_FOR_DERIVED_STATISTICS:
@@ -750,7 +751,7 @@ public class PresenceConditionImpl extends NsdObjectImpl implements PresenceCond
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.PRESENCE_CONDITION__PRESENCE_CONDITIONS:
+        case NsdPackage.PRESENCE_CONDITION__PARENT_PRESENCE_CONDITIONS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.PRESENCE_CONDITIONS__PRESENCE_CONDITION,
                     PresenceConditions.class, msgs );
         }
@@ -773,8 +774,8 @@ public class PresenceConditionImpl extends NsdObjectImpl implements PresenceCond
             return getName();
         case NsdPackage.PRESENCE_CONDITION__TITLE_ID:
             return getTitleID();
-        case NsdPackage.PRESENCE_CONDITION__PRESENCE_CONDITIONS:
-            return getPresenceConditions();
+        case NsdPackage.PRESENCE_CONDITION__PARENT_PRESENCE_CONDITIONS:
+            return getParentPresenceConditions();
         case NsdPackage.PRESENCE_CONDITION__REFERRED_BY_DATA_OBJECT:
             return getReferredByDataObject();
         case NsdPackage.PRESENCE_CONDITION__REFERRED_BY_DATA_OBJECT_FOR_DERIVED_STATISTICS:
@@ -810,8 +811,8 @@ public class PresenceConditionImpl extends NsdObjectImpl implements PresenceCond
         case NsdPackage.PRESENCE_CONDITION__TITLE_ID:
             setTitleID( ( String ) newValue );
             return;
-        case NsdPackage.PRESENCE_CONDITION__PRESENCE_CONDITIONS:
-            setPresenceConditions( ( PresenceConditions ) newValue );
+        case NsdPackage.PRESENCE_CONDITION__PARENT_PRESENCE_CONDITIONS:
+            setParentPresenceConditions( ( PresenceConditions ) newValue );
             return;
         case NsdPackage.PRESENCE_CONDITION__REFERRED_BY_DATA_OBJECT:
             getReferredByDataObject().clear();
@@ -857,8 +858,8 @@ public class PresenceConditionImpl extends NsdObjectImpl implements PresenceCond
         case NsdPackage.PRESENCE_CONDITION__TITLE_ID:
             unsetTitleID();
             return;
-        case NsdPackage.PRESENCE_CONDITION__PRESENCE_CONDITIONS:
-            setPresenceConditions( ( PresenceConditions ) null );
+        case NsdPackage.PRESENCE_CONDITION__PARENT_PRESENCE_CONDITIONS:
+            setParentPresenceConditions( ( PresenceConditions ) null );
             return;
         case NsdPackage.PRESENCE_CONDITION__REFERRED_BY_DATA_OBJECT:
             unsetReferredByDataObject();
@@ -895,8 +896,8 @@ public class PresenceConditionImpl extends NsdObjectImpl implements PresenceCond
             return isSetName();
         case NsdPackage.PRESENCE_CONDITION__TITLE_ID:
             return isSetTitleID();
-        case NsdPackage.PRESENCE_CONDITION__PRESENCE_CONDITIONS:
-            return getPresenceConditions() != null;
+        case NsdPackage.PRESENCE_CONDITION__PARENT_PRESENCE_CONDITIONS:
+            return getParentPresenceConditions() != null;
         case NsdPackage.PRESENCE_CONDITION__REFERRED_BY_DATA_OBJECT:
             return isSetReferredByDataObject();
         case NsdPackage.PRESENCE_CONDITION__REFERRED_BY_DATA_OBJECT_FOR_DERIVED_STATISTICS:
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/PresenceConditionsImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/PresenceConditionsImpl.java
index 8fb273a9fa98388e49e4da00be89904ffbc9533c..4f21cad158b8ea9fb8469f09a8dce37b16e12c11 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/PresenceConditionsImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/PresenceConditionsImpl.java
@@ -49,8 +49,8 @@ import org.eclipse.emf.ecore.util.InternalEList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.PresenceConditionsImpl#getPresenceCondition <em>Presence Condition</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.PresenceConditionsImpl#getNS <em>NS</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.PresenceConditionsImpl#getServiceNS <em>Service NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.PresenceConditionsImpl#getParentNS <em>Parent NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.PresenceConditionsImpl#getParentServiceNS <em>Parent Service NS</em>}</li>
  * </ul>
  *
  * @generated
@@ -95,7 +95,7 @@ public class PresenceConditionsImpl extends NsdObjectImpl implements PresenceCon
         if( presenceCondition == null ) {
             presenceCondition = new EObjectContainmentWithInverseEList.Unsettable< PresenceCondition >(
                     PresenceCondition.class, this, NsdPackage.PRESENCE_CONDITIONS__PRESENCE_CONDITION,
-                    NsdPackage.PRESENCE_CONDITION__PRESENCE_CONDITIONS );
+                    NsdPackage.PRESENCE_CONDITION__PARENT_PRESENCE_CONDITIONS );
         }
         return presenceCondition;
     }
@@ -126,8 +126,8 @@ public class PresenceConditionsImpl extends NsdObjectImpl implements PresenceCon
      * @generated
      */
     @Override
-    public NS getNS() {
-        if( eContainerFeatureID() != NsdPackage.PRESENCE_CONDITIONS__NS ) return null;
+    public NS getParentNS() {
+        if( eContainerFeatureID() != NsdPackage.PRESENCE_CONDITIONS__PARENT_NS ) return null;
         return ( NS ) eInternalContainer();
     }
 
@@ -136,8 +136,8 @@ public class PresenceConditionsImpl extends NsdObjectImpl implements PresenceCon
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetNS( NS newNS, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newNS, NsdPackage.PRESENCE_CONDITIONS__NS, msgs );
+    public NotificationChain basicSetParentNS( NS newParentNS, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentNS, NsdPackage.PRESENCE_CONDITIONS__PARENT_NS, msgs );
         return msgs;
     }
 
@@ -147,23 +147,23 @@ public class PresenceConditionsImpl extends NsdObjectImpl implements PresenceCon
      * @generated
      */
     @Override
-    public void setNS( NS newNS ) {
-        if( newNS != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.PRESENCE_CONDITIONS__NS && newNS != null ) ) {
-            if( EcoreUtil.isAncestor( this, newNS ) )
+    public void setParentNS( NS newParentNS ) {
+        if( newParentNS != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.PRESENCE_CONDITIONS__PARENT_NS && newParentNS != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentNS ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newNS != null )
-                msgs = ( ( InternalEObject ) newNS ).eInverseAdd( this, NsdPackage.NS__PRESENCE_CONDITIONS, NS.class,
-                        msgs );
-            msgs = basicSetNS( newNS, msgs );
+            if( newParentNS != null )
+                msgs = ( ( InternalEObject ) newParentNS ).eInverseAdd( this, NsdPackage.NS__PRESENCE_CONDITIONS,
+                        NS.class, msgs );
+            msgs = basicSetParentNS( newParentNS, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.PRESENCE_CONDITIONS__NS, newNS,
-                    newNS ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.PRESENCE_CONDITIONS__PARENT_NS,
+                    newParentNS, newParentNS ) );
     }
 
     /**
@@ -172,8 +172,8 @@ public class PresenceConditionsImpl extends NsdObjectImpl implements PresenceCon
      * @generated
      */
     @Override
-    public ServiceNS getServiceNS() {
-        if( eContainerFeatureID() != NsdPackage.PRESENCE_CONDITIONS__SERVICE_NS ) return null;
+    public ServiceNS getParentServiceNS() {
+        if( eContainerFeatureID() != NsdPackage.PRESENCE_CONDITIONS__PARENT_SERVICE_NS ) return null;
         return ( ServiceNS ) eInternalContainer();
     }
 
@@ -182,8 +182,9 @@ public class PresenceConditionsImpl extends NsdObjectImpl implements PresenceCon
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetServiceNS( ServiceNS newServiceNS, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newServiceNS, NsdPackage.PRESENCE_CONDITIONS__SERVICE_NS, msgs );
+    public NotificationChain basicSetParentServiceNS( ServiceNS newParentServiceNS, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentServiceNS,
+                NsdPackage.PRESENCE_CONDITIONS__PARENT_SERVICE_NS, msgs );
         return msgs;
     }
 
@@ -193,23 +194,24 @@ public class PresenceConditionsImpl extends NsdObjectImpl implements PresenceCon
      * @generated
      */
     @Override
-    public void setServiceNS( ServiceNS newServiceNS ) {
-        if( newServiceNS != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.PRESENCE_CONDITIONS__SERVICE_NS && newServiceNS != null ) ) {
-            if( EcoreUtil.isAncestor( this, newServiceNS ) )
+    public void setParentServiceNS( ServiceNS newParentServiceNS ) {
+        if( newParentServiceNS != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.PRESENCE_CONDITIONS__PARENT_SERVICE_NS
+                        && newParentServiceNS != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentServiceNS ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newServiceNS != null )
-                msgs = ( ( InternalEObject ) newServiceNS ).eInverseAdd( this,
+            if( newParentServiceNS != null )
+                msgs = ( ( InternalEObject ) newParentServiceNS ).eInverseAdd( this,
                         NsdPackage.SERVICE_NS__PRESENCE_CONDITIONS, ServiceNS.class, msgs );
-            msgs = basicSetServiceNS( newServiceNS, msgs );
+            msgs = basicSetParentServiceNS( newParentServiceNS, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.PRESENCE_CONDITIONS__SERVICE_NS,
-                    newServiceNS, newServiceNS ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.PRESENCE_CONDITIONS__PARENT_SERVICE_NS,
+                    newParentServiceNS, newParentServiceNS ) );
     }
 
     /**
@@ -224,14 +226,14 @@ public class PresenceConditionsImpl extends NsdObjectImpl implements PresenceCon
         case NsdPackage.PRESENCE_CONDITIONS__PRESENCE_CONDITION:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getPresenceCondition() )
                     .basicAdd( otherEnd, msgs );
-        case NsdPackage.PRESENCE_CONDITIONS__NS:
+        case NsdPackage.PRESENCE_CONDITIONS__PARENT_NS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetNS( ( NS ) otherEnd, msgs );
-        case NsdPackage.PRESENCE_CONDITIONS__SERVICE_NS:
+            return basicSetParentNS( ( NS ) otherEnd, msgs );
+        case NsdPackage.PRESENCE_CONDITIONS__PARENT_SERVICE_NS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetServiceNS( ( ServiceNS ) otherEnd, msgs );
+            return basicSetParentServiceNS( ( ServiceNS ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -246,10 +248,10 @@ public class PresenceConditionsImpl extends NsdObjectImpl implements PresenceCon
         switch( featureID ) {
         case NsdPackage.PRESENCE_CONDITIONS__PRESENCE_CONDITION:
             return ( ( InternalEList< ? > ) getPresenceCondition() ).basicRemove( otherEnd, msgs );
-        case NsdPackage.PRESENCE_CONDITIONS__NS:
-            return basicSetNS( null, msgs );
-        case NsdPackage.PRESENCE_CONDITIONS__SERVICE_NS:
-            return basicSetServiceNS( null, msgs );
+        case NsdPackage.PRESENCE_CONDITIONS__PARENT_NS:
+            return basicSetParentNS( null, msgs );
+        case NsdPackage.PRESENCE_CONDITIONS__PARENT_SERVICE_NS:
+            return basicSetParentServiceNS( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -262,9 +264,9 @@ public class PresenceConditionsImpl extends NsdObjectImpl implements PresenceCon
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.PRESENCE_CONDITIONS__NS:
+        case NsdPackage.PRESENCE_CONDITIONS__PARENT_NS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.NS__PRESENCE_CONDITIONS, NS.class, msgs );
-        case NsdPackage.PRESENCE_CONDITIONS__SERVICE_NS:
+        case NsdPackage.PRESENCE_CONDITIONS__PARENT_SERVICE_NS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.SERVICE_NS__PRESENCE_CONDITIONS,
                     ServiceNS.class, msgs );
         }
@@ -281,10 +283,10 @@ public class PresenceConditionsImpl extends NsdObjectImpl implements PresenceCon
         switch( featureID ) {
         case NsdPackage.PRESENCE_CONDITIONS__PRESENCE_CONDITION:
             return getPresenceCondition();
-        case NsdPackage.PRESENCE_CONDITIONS__NS:
-            return getNS();
-        case NsdPackage.PRESENCE_CONDITIONS__SERVICE_NS:
-            return getServiceNS();
+        case NsdPackage.PRESENCE_CONDITIONS__PARENT_NS:
+            return getParentNS();
+        case NsdPackage.PRESENCE_CONDITIONS__PARENT_SERVICE_NS:
+            return getParentServiceNS();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -302,11 +304,11 @@ public class PresenceConditionsImpl extends NsdObjectImpl implements PresenceCon
             getPresenceCondition().clear();
             getPresenceCondition().addAll( ( Collection< ? extends PresenceCondition > ) newValue );
             return;
-        case NsdPackage.PRESENCE_CONDITIONS__NS:
-            setNS( ( NS ) newValue );
+        case NsdPackage.PRESENCE_CONDITIONS__PARENT_NS:
+            setParentNS( ( NS ) newValue );
             return;
-        case NsdPackage.PRESENCE_CONDITIONS__SERVICE_NS:
-            setServiceNS( ( ServiceNS ) newValue );
+        case NsdPackage.PRESENCE_CONDITIONS__PARENT_SERVICE_NS:
+            setParentServiceNS( ( ServiceNS ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -323,11 +325,11 @@ public class PresenceConditionsImpl extends NsdObjectImpl implements PresenceCon
         case NsdPackage.PRESENCE_CONDITIONS__PRESENCE_CONDITION:
             unsetPresenceCondition();
             return;
-        case NsdPackage.PRESENCE_CONDITIONS__NS:
-            setNS( ( NS ) null );
+        case NsdPackage.PRESENCE_CONDITIONS__PARENT_NS:
+            setParentNS( ( NS ) null );
             return;
-        case NsdPackage.PRESENCE_CONDITIONS__SERVICE_NS:
-            setServiceNS( ( ServiceNS ) null );
+        case NsdPackage.PRESENCE_CONDITIONS__PARENT_SERVICE_NS:
+            setParentServiceNS( ( ServiceNS ) null );
             return;
         }
         super.eUnset( featureID );
@@ -343,10 +345,10 @@ public class PresenceConditionsImpl extends NsdObjectImpl implements PresenceCon
         switch( featureID ) {
         case NsdPackage.PRESENCE_CONDITIONS__PRESENCE_CONDITION:
             return isSetPresenceCondition();
-        case NsdPackage.PRESENCE_CONDITIONS__NS:
-            return getNS() != null;
-        case NsdPackage.PRESENCE_CONDITIONS__SERVICE_NS:
-            return getServiceNS() != null;
+        case NsdPackage.PRESENCE_CONDITIONS__PARENT_NS:
+            return getParentNS() != null;
+        case NsdPackage.PRESENCE_CONDITIONS__PARENT_SERVICE_NS:
+            return getParentServiceNS() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceCDCImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceCDCImpl.java
index 0ae6fc31ea4f53efe8e4679655190f6a862caa5f..1a3ddb27195bb3526102ebb46304ec5648a9daf8 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceCDCImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceCDCImpl.java
@@ -50,7 +50,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceCDCImpl#getServiceDataAttribute <em>Service Data Attribute</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceCDCImpl#getCdc <em>Cdc</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceCDCImpl#getVariant <em>Variant</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceCDCImpl#getServiceCDCs <em>Service CD Cs</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceCDCImpl#getParentServiceCDCs <em>Parent Service CD Cs</em>}</li>
  * </ul>
  *
  * @generated
@@ -153,7 +153,7 @@ public class ServiceCDCImpl extends NsdObjectImpl implements ServiceCDC {
         if( serviceDataAttribute == null ) {
             serviceDataAttribute = new EObjectContainmentWithInverseEList.Unsettable< ServiceDataAttribute >(
                     ServiceDataAttribute.class, this, NsdPackage.SERVICE_CDC__SERVICE_DATA_ATTRIBUTE,
-                    NsdPackage.SERVICE_DATA_ATTRIBUTE__SERVICE_CDC );
+                    NsdPackage.SERVICE_DATA_ATTRIBUTE__PARENT_SERVICE_CDC );
         }
         return serviceDataAttribute;
     }
@@ -288,8 +288,8 @@ public class ServiceCDCImpl extends NsdObjectImpl implements ServiceCDC {
      * @generated
      */
     @Override
-    public ServiceCDCs getServiceCDCs() {
-        if( eContainerFeatureID() != NsdPackage.SERVICE_CDC__SERVICE_CD_CS ) return null;
+    public ServiceCDCs getParentServiceCDCs() {
+        if( eContainerFeatureID() != NsdPackage.SERVICE_CDC__PARENT_SERVICE_CD_CS ) return null;
         return ( ServiceCDCs ) eInternalContainer();
     }
 
@@ -298,8 +298,9 @@ public class ServiceCDCImpl extends NsdObjectImpl implements ServiceCDC {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetServiceCDCs( ServiceCDCs newServiceCDCs, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newServiceCDCs, NsdPackage.SERVICE_CDC__SERVICE_CD_CS, msgs );
+    public NotificationChain basicSetParentServiceCDCs( ServiceCDCs newParentServiceCDCs, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentServiceCDCs,
+                NsdPackage.SERVICE_CDC__PARENT_SERVICE_CD_CS, msgs );
         return msgs;
     }
 
@@ -309,23 +310,24 @@ public class ServiceCDCImpl extends NsdObjectImpl implements ServiceCDC {
      * @generated
      */
     @Override
-    public void setServiceCDCs( ServiceCDCs newServiceCDCs ) {
-        if( newServiceCDCs != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.SERVICE_CDC__SERVICE_CD_CS && newServiceCDCs != null ) ) {
-            if( EcoreUtil.isAncestor( this, newServiceCDCs ) )
+    public void setParentServiceCDCs( ServiceCDCs newParentServiceCDCs ) {
+        if( newParentServiceCDCs != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.SERVICE_CDC__PARENT_SERVICE_CD_CS
+                        && newParentServiceCDCs != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentServiceCDCs ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newServiceCDCs != null )
-                msgs = ( ( InternalEObject ) newServiceCDCs ).eInverseAdd( this, NsdPackage.SERVICE_CD_CS__SERVICE_CDC,
-                        ServiceCDCs.class, msgs );
-            msgs = basicSetServiceCDCs( newServiceCDCs, msgs );
+            if( newParentServiceCDCs != null )
+                msgs = ( ( InternalEObject ) newParentServiceCDCs ).eInverseAdd( this,
+                        NsdPackage.SERVICE_CD_CS__SERVICE_CDC, ServiceCDCs.class, msgs );
+            msgs = basicSetParentServiceCDCs( newParentServiceCDCs, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.SERVICE_CDC__SERVICE_CD_CS,
-                    newServiceCDCs, newServiceCDCs ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.SERVICE_CDC__PARENT_SERVICE_CD_CS,
+                    newParentServiceCDCs, newParentServiceCDCs ) );
     }
 
     /**
@@ -340,10 +342,10 @@ public class ServiceCDCImpl extends NsdObjectImpl implements ServiceCDC {
         case NsdPackage.SERVICE_CDC__SERVICE_DATA_ATTRIBUTE:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getServiceDataAttribute() )
                     .basicAdd( otherEnd, msgs );
-        case NsdPackage.SERVICE_CDC__SERVICE_CD_CS:
+        case NsdPackage.SERVICE_CDC__PARENT_SERVICE_CD_CS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetServiceCDCs( ( ServiceCDCs ) otherEnd, msgs );
+            return basicSetParentServiceCDCs( ( ServiceCDCs ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -358,8 +360,8 @@ public class ServiceCDCImpl extends NsdObjectImpl implements ServiceCDC {
         switch( featureID ) {
         case NsdPackage.SERVICE_CDC__SERVICE_DATA_ATTRIBUTE:
             return ( ( InternalEList< ? > ) getServiceDataAttribute() ).basicRemove( otherEnd, msgs );
-        case NsdPackage.SERVICE_CDC__SERVICE_CD_CS:
-            return basicSetServiceCDCs( null, msgs );
+        case NsdPackage.SERVICE_CDC__PARENT_SERVICE_CD_CS:
+            return basicSetParentServiceCDCs( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -372,7 +374,7 @@ public class ServiceCDCImpl extends NsdObjectImpl implements ServiceCDC {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.SERVICE_CDC__SERVICE_CD_CS:
+        case NsdPackage.SERVICE_CDC__PARENT_SERVICE_CD_CS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.SERVICE_CD_CS__SERVICE_CDC, ServiceCDCs.class,
                     msgs );
         }
@@ -393,8 +395,8 @@ public class ServiceCDCImpl extends NsdObjectImpl implements ServiceCDC {
             return getCdc();
         case NsdPackage.SERVICE_CDC__VARIANT:
             return getVariant();
-        case NsdPackage.SERVICE_CDC__SERVICE_CD_CS:
-            return getServiceCDCs();
+        case NsdPackage.SERVICE_CDC__PARENT_SERVICE_CD_CS:
+            return getParentServiceCDCs();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -418,8 +420,8 @@ public class ServiceCDCImpl extends NsdObjectImpl implements ServiceCDC {
         case NsdPackage.SERVICE_CDC__VARIANT:
             setVariant( ( String ) newValue );
             return;
-        case NsdPackage.SERVICE_CDC__SERVICE_CD_CS:
-            setServiceCDCs( ( ServiceCDCs ) newValue );
+        case NsdPackage.SERVICE_CDC__PARENT_SERVICE_CD_CS:
+            setParentServiceCDCs( ( ServiceCDCs ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -442,8 +444,8 @@ public class ServiceCDCImpl extends NsdObjectImpl implements ServiceCDC {
         case NsdPackage.SERVICE_CDC__VARIANT:
             unsetVariant();
             return;
-        case NsdPackage.SERVICE_CDC__SERVICE_CD_CS:
-            setServiceCDCs( ( ServiceCDCs ) null );
+        case NsdPackage.SERVICE_CDC__PARENT_SERVICE_CD_CS:
+            setParentServiceCDCs( ( ServiceCDCs ) null );
             return;
         }
         super.eUnset( featureID );
@@ -463,8 +465,8 @@ public class ServiceCDCImpl extends NsdObjectImpl implements ServiceCDC {
             return isSetCdc();
         case NsdPackage.SERVICE_CDC__VARIANT:
             return isSetVariant();
-        case NsdPackage.SERVICE_CDC__SERVICE_CD_CS:
-            return getServiceCDCs() != null;
+        case NsdPackage.SERVICE_CDC__PARENT_SERVICE_CD_CS:
+            return getParentServiceCDCs() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceCDCsImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceCDCsImpl.java
index 7b764f2acc83d28b188352e742ab4c1f845cf654..24584b656c5c5dcc8d9df93ae8f437a1f6da4668 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceCDCsImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceCDCsImpl.java
@@ -48,7 +48,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceCDCsImpl#getServiceCDC <em>Service CDC</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceCDCsImpl#getServiceNS <em>Service NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceCDCsImpl#getParentServiceNS <em>Parent Service NS</em>}</li>
  * </ul>
  *
  * @generated
@@ -92,7 +92,7 @@ public class ServiceCDCsImpl extends NsdObjectImpl implements ServiceCDCs {
     public EList< ServiceCDC > getServiceCDC() {
         if( serviceCDC == null ) {
             serviceCDC = new EObjectContainmentWithInverseEList.Unsettable< ServiceCDC >( ServiceCDC.class, this,
-                    NsdPackage.SERVICE_CD_CS__SERVICE_CDC, NsdPackage.SERVICE_CDC__SERVICE_CD_CS );
+                    NsdPackage.SERVICE_CD_CS__SERVICE_CDC, NsdPackage.SERVICE_CDC__PARENT_SERVICE_CD_CS );
         }
         return serviceCDC;
     }
@@ -123,8 +123,8 @@ public class ServiceCDCsImpl extends NsdObjectImpl implements ServiceCDCs {
      * @generated
      */
     @Override
-    public ServiceNS getServiceNS() {
-        if( eContainerFeatureID() != NsdPackage.SERVICE_CD_CS__SERVICE_NS ) return null;
+    public ServiceNS getParentServiceNS() {
+        if( eContainerFeatureID() != NsdPackage.SERVICE_CD_CS__PARENT_SERVICE_NS ) return null;
         return ( ServiceNS ) eInternalContainer();
     }
 
@@ -133,8 +133,9 @@ public class ServiceCDCsImpl extends NsdObjectImpl implements ServiceCDCs {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetServiceNS( ServiceNS newServiceNS, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newServiceNS, NsdPackage.SERVICE_CD_CS__SERVICE_NS, msgs );
+    public NotificationChain basicSetParentServiceNS( ServiceNS newParentServiceNS, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentServiceNS, NsdPackage.SERVICE_CD_CS__PARENT_SERVICE_NS,
+                msgs );
         return msgs;
     }
 
@@ -144,23 +145,24 @@ public class ServiceCDCsImpl extends NsdObjectImpl implements ServiceCDCs {
      * @generated
      */
     @Override
-    public void setServiceNS( ServiceNS newServiceNS ) {
-        if( newServiceNS != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.SERVICE_CD_CS__SERVICE_NS && newServiceNS != null ) ) {
-            if( EcoreUtil.isAncestor( this, newServiceNS ) )
+    public void setParentServiceNS( ServiceNS newParentServiceNS ) {
+        if( newParentServiceNS != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.SERVICE_CD_CS__PARENT_SERVICE_NS
+                        && newParentServiceNS != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentServiceNS ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newServiceNS != null )
-                msgs = ( ( InternalEObject ) newServiceNS ).eInverseAdd( this, NsdPackage.SERVICE_NS__SERVICE_CD_CS,
-                        ServiceNS.class, msgs );
-            msgs = basicSetServiceNS( newServiceNS, msgs );
+            if( newParentServiceNS != null )
+                msgs = ( ( InternalEObject ) newParentServiceNS ).eInverseAdd( this,
+                        NsdPackage.SERVICE_NS__SERVICE_CD_CS, ServiceNS.class, msgs );
+            msgs = basicSetParentServiceNS( newParentServiceNS, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.SERVICE_CD_CS__SERVICE_NS, newServiceNS,
-                    newServiceNS ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.SERVICE_CD_CS__PARENT_SERVICE_NS,
+                    newParentServiceNS, newParentServiceNS ) );
     }
 
     /**
@@ -175,10 +177,10 @@ public class ServiceCDCsImpl extends NsdObjectImpl implements ServiceCDCs {
         case NsdPackage.SERVICE_CD_CS__SERVICE_CDC:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getServiceCDC() ).basicAdd( otherEnd,
                     msgs );
-        case NsdPackage.SERVICE_CD_CS__SERVICE_NS:
+        case NsdPackage.SERVICE_CD_CS__PARENT_SERVICE_NS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetServiceNS( ( ServiceNS ) otherEnd, msgs );
+            return basicSetParentServiceNS( ( ServiceNS ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -193,8 +195,8 @@ public class ServiceCDCsImpl extends NsdObjectImpl implements ServiceCDCs {
         switch( featureID ) {
         case NsdPackage.SERVICE_CD_CS__SERVICE_CDC:
             return ( ( InternalEList< ? > ) getServiceCDC() ).basicRemove( otherEnd, msgs );
-        case NsdPackage.SERVICE_CD_CS__SERVICE_NS:
-            return basicSetServiceNS( null, msgs );
+        case NsdPackage.SERVICE_CD_CS__PARENT_SERVICE_NS:
+            return basicSetParentServiceNS( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -207,7 +209,7 @@ public class ServiceCDCsImpl extends NsdObjectImpl implements ServiceCDCs {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.SERVICE_CD_CS__SERVICE_NS:
+        case NsdPackage.SERVICE_CD_CS__PARENT_SERVICE_NS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.SERVICE_NS__SERVICE_CD_CS, ServiceNS.class,
                     msgs );
         }
@@ -224,8 +226,8 @@ public class ServiceCDCsImpl extends NsdObjectImpl implements ServiceCDCs {
         switch( featureID ) {
         case NsdPackage.SERVICE_CD_CS__SERVICE_CDC:
             return getServiceCDC();
-        case NsdPackage.SERVICE_CD_CS__SERVICE_NS:
-            return getServiceNS();
+        case NsdPackage.SERVICE_CD_CS__PARENT_SERVICE_NS:
+            return getParentServiceNS();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -243,8 +245,8 @@ public class ServiceCDCsImpl extends NsdObjectImpl implements ServiceCDCs {
             getServiceCDC().clear();
             getServiceCDC().addAll( ( Collection< ? extends ServiceCDC > ) newValue );
             return;
-        case NsdPackage.SERVICE_CD_CS__SERVICE_NS:
-            setServiceNS( ( ServiceNS ) newValue );
+        case NsdPackage.SERVICE_CD_CS__PARENT_SERVICE_NS:
+            setParentServiceNS( ( ServiceNS ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -261,8 +263,8 @@ public class ServiceCDCsImpl extends NsdObjectImpl implements ServiceCDCs {
         case NsdPackage.SERVICE_CD_CS__SERVICE_CDC:
             unsetServiceCDC();
             return;
-        case NsdPackage.SERVICE_CD_CS__SERVICE_NS:
-            setServiceNS( ( ServiceNS ) null );
+        case NsdPackage.SERVICE_CD_CS__PARENT_SERVICE_NS:
+            setParentServiceNS( ( ServiceNS ) null );
             return;
         }
         super.eUnset( featureID );
@@ -278,8 +280,8 @@ public class ServiceCDCsImpl extends NsdObjectImpl implements ServiceCDCs {
         switch( featureID ) {
         case NsdPackage.SERVICE_CD_CS__SERVICE_CDC:
             return isSetServiceCDC();
-        case NsdPackage.SERVICE_CD_CS__SERVICE_NS:
-            return getServiceNS() != null;
+        case NsdPackage.SERVICE_CD_CS__PARENT_SERVICE_NS:
+            return getParentServiceNS() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceConstructedAttributeImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceConstructedAttributeImpl.java
index 3424d1ed2a4945d24e1ef540089844fef3b79527..352bc66fbe39a016d076809742fbc5928273bfda 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceConstructedAttributeImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceConstructedAttributeImpl.java
@@ -41,7 +41,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceConstructedAttributeImpl#isTypeKindParameterized <em>Type Kind Parameterized</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceConstructedAttributeImpl#getServiceConstructedAttribute <em>Service Constructed Attribute</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceConstructedAttributeImpl#getParentServiceConstructedAttributes <em>Parent Service Constructed Attributes</em>}</li>
  * </ul>
  *
  * @generated
@@ -155,8 +155,8 @@ public class ServiceConstructedAttributeImpl extends ConstructedAttributeImpl im
      * @generated
      */
     @Override
-    public ServiceConstructedAttributes getServiceConstructedAttribute() {
-        if( eContainerFeatureID() != NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__SERVICE_CONSTRUCTED_ATTRIBUTE )
+    public ServiceConstructedAttributes getParentServiceConstructedAttributes() {
+        if( eContainerFeatureID() != NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_CONSTRUCTED_ATTRIBUTES )
             return null;
         return ( ServiceConstructedAttributes ) eInternalContainer();
     }
@@ -166,10 +166,10 @@ public class ServiceConstructedAttributeImpl extends ConstructedAttributeImpl im
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetServiceConstructedAttribute(
-            ServiceConstructedAttributes newServiceConstructedAttribute, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newServiceConstructedAttribute,
-                NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__SERVICE_CONSTRUCTED_ATTRIBUTE, msgs );
+    public NotificationChain basicSetParentServiceConstructedAttributes(
+            ServiceConstructedAttributes newParentServiceConstructedAttributes, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentServiceConstructedAttributes,
+                NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_CONSTRUCTED_ATTRIBUTES, msgs );
         return msgs;
     }
 
@@ -179,26 +179,27 @@ public class ServiceConstructedAttributeImpl extends ConstructedAttributeImpl im
      * @generated
      */
     @Override
-    public void setServiceConstructedAttribute( ServiceConstructedAttributes newServiceConstructedAttribute ) {
-        if( newServiceConstructedAttribute != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__SERVICE_CONSTRUCTED_ATTRIBUTE
-                        && newServiceConstructedAttribute != null ) ) {
-            if( EcoreUtil.isAncestor( this, newServiceConstructedAttribute ) )
+    public void setParentServiceConstructedAttributes(
+            ServiceConstructedAttributes newParentServiceConstructedAttributes ) {
+        if( newParentServiceConstructedAttributes != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_CONSTRUCTED_ATTRIBUTES
+                        && newParentServiceConstructedAttributes != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentServiceConstructedAttributes ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newServiceConstructedAttribute != null )
-                msgs = ( ( InternalEObject ) newServiceConstructedAttribute ).eInverseAdd( this,
+            if( newParentServiceConstructedAttributes != null )
+                msgs = ( ( InternalEObject ) newParentServiceConstructedAttributes ).eInverseAdd( this,
                         NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_CONSTRUCTED_ATTRIBUTE,
                         ServiceConstructedAttributes.class, msgs );
-            msgs = basicSetServiceConstructedAttribute( newServiceConstructedAttribute, msgs );
+            msgs = basicSetParentServiceConstructedAttributes( newParentServiceConstructedAttributes, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
             eNotify( new ENotificationImpl( this, Notification.SET,
-                    NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__SERVICE_CONSTRUCTED_ATTRIBUTE,
-                    newServiceConstructedAttribute, newServiceConstructedAttribute ) );
+                    NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_CONSTRUCTED_ATTRIBUTES,
+                    newParentServiceConstructedAttributes, newParentServiceConstructedAttributes ) );
     }
 
     /**
@@ -209,10 +210,10 @@ public class ServiceConstructedAttributeImpl extends ConstructedAttributeImpl im
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__SERVICE_CONSTRUCTED_ATTRIBUTE:
+        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_CONSTRUCTED_ATTRIBUTES:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetServiceConstructedAttribute( ( ServiceConstructedAttributes ) otherEnd, msgs );
+            return basicSetParentServiceConstructedAttributes( ( ServiceConstructedAttributes ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -225,8 +226,8 @@ public class ServiceConstructedAttributeImpl extends ConstructedAttributeImpl im
     @Override
     public NotificationChain eInverseRemove( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__SERVICE_CONSTRUCTED_ATTRIBUTE:
-            return basicSetServiceConstructedAttribute( null, msgs );
+        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_CONSTRUCTED_ATTRIBUTES:
+            return basicSetParentServiceConstructedAttributes( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -239,7 +240,7 @@ public class ServiceConstructedAttributeImpl extends ConstructedAttributeImpl im
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__SERVICE_CONSTRUCTED_ATTRIBUTE:
+        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_CONSTRUCTED_ATTRIBUTES:
             return eInternalContainer().eInverseRemove( this,
                     NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_CONSTRUCTED_ATTRIBUTE,
                     ServiceConstructedAttributes.class, msgs );
@@ -257,8 +258,8 @@ public class ServiceConstructedAttributeImpl extends ConstructedAttributeImpl im
         switch( featureID ) {
         case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__TYPE_KIND_PARAMETERIZED:
             return isTypeKindParameterized();
-        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__SERVICE_CONSTRUCTED_ATTRIBUTE:
-            return getServiceConstructedAttribute();
+        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_CONSTRUCTED_ATTRIBUTES:
+            return getParentServiceConstructedAttributes();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -274,8 +275,8 @@ public class ServiceConstructedAttributeImpl extends ConstructedAttributeImpl im
         case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__TYPE_KIND_PARAMETERIZED:
             setTypeKindParameterized( ( Boolean ) newValue );
             return;
-        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__SERVICE_CONSTRUCTED_ATTRIBUTE:
-            setServiceConstructedAttribute( ( ServiceConstructedAttributes ) newValue );
+        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_CONSTRUCTED_ATTRIBUTES:
+            setParentServiceConstructedAttributes( ( ServiceConstructedAttributes ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -292,8 +293,8 @@ public class ServiceConstructedAttributeImpl extends ConstructedAttributeImpl im
         case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__TYPE_KIND_PARAMETERIZED:
             unsetTypeKindParameterized();
             return;
-        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__SERVICE_CONSTRUCTED_ATTRIBUTE:
-            setServiceConstructedAttribute( ( ServiceConstructedAttributes ) null );
+        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_CONSTRUCTED_ATTRIBUTES:
+            setParentServiceConstructedAttributes( ( ServiceConstructedAttributes ) null );
             return;
         }
         super.eUnset( featureID );
@@ -309,8 +310,8 @@ public class ServiceConstructedAttributeImpl extends ConstructedAttributeImpl im
         switch( featureID ) {
         case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__TYPE_KIND_PARAMETERIZED:
             return isSetTypeKindParameterized();
-        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__SERVICE_CONSTRUCTED_ATTRIBUTE:
-            return getServiceConstructedAttribute() != null;
+        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_CONSTRUCTED_ATTRIBUTES:
+            return getParentServiceConstructedAttributes() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceConstructedAttributesImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceConstructedAttributesImpl.java
index 34e1a387fa8c39a0d0c64c2c2d9c4360813c3529..9a3751e1bd16263544344380d1cd9a42b6c47060 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceConstructedAttributesImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceConstructedAttributesImpl.java
@@ -48,7 +48,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceConstructedAttributesImpl#getServiceConstructedAttribute <em>Service Constructed Attribute</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceConstructedAttributesImpl#getServiceNS <em>Service NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceConstructedAttributesImpl#getParentServiceNS <em>Parent Service NS</em>}</li>
  * </ul>
  *
  * @generated
@@ -94,7 +94,7 @@ public class ServiceConstructedAttributesImpl extends NsdObjectImpl implements S
             serviceConstructedAttribute = new EObjectContainmentWithInverseEList.Unsettable< ServiceConstructedAttribute >(
                     ServiceConstructedAttribute.class, this,
                     NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_CONSTRUCTED_ATTRIBUTE,
-                    NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__SERVICE_CONSTRUCTED_ATTRIBUTE );
+                    NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_CONSTRUCTED_ATTRIBUTES );
         }
         return serviceConstructedAttribute;
     }
@@ -127,8 +127,8 @@ public class ServiceConstructedAttributesImpl extends NsdObjectImpl implements S
      * @generated
      */
     @Override
-    public ServiceNS getServiceNS() {
-        if( eContainerFeatureID() != NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_NS ) return null;
+    public ServiceNS getParentServiceNS() {
+        if( eContainerFeatureID() != NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__PARENT_SERVICE_NS ) return null;
         return ( ServiceNS ) eInternalContainer();
     }
 
@@ -137,9 +137,9 @@ public class ServiceConstructedAttributesImpl extends NsdObjectImpl implements S
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetServiceNS( ServiceNS newServiceNS, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newServiceNS,
-                NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_NS, msgs );
+    public NotificationChain basicSetParentServiceNS( ServiceNS newParentServiceNS, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentServiceNS,
+                NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__PARENT_SERVICE_NS, msgs );
         return msgs;
     }
 
@@ -149,24 +149,25 @@ public class ServiceConstructedAttributesImpl extends NsdObjectImpl implements S
      * @generated
      */
     @Override
-    public void setServiceNS( ServiceNS newServiceNS ) {
-        if( newServiceNS != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_NS
-                        && newServiceNS != null ) ) {
-            if( EcoreUtil.isAncestor( this, newServiceNS ) )
+    public void setParentServiceNS( ServiceNS newParentServiceNS ) {
+        if( newParentServiceNS != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__PARENT_SERVICE_NS
+                        && newParentServiceNS != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentServiceNS ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newServiceNS != null )
-                msgs = ( ( InternalEObject ) newServiceNS ).eInverseAdd( this,
+            if( newParentServiceNS != null )
+                msgs = ( ( InternalEObject ) newParentServiceNS ).eInverseAdd( this,
                         NsdPackage.SERVICE_NS__SERVICE_CONSTRUCTED_ATTRIBUTES, ServiceNS.class, msgs );
-            msgs = basicSetServiceNS( newServiceNS, msgs );
+            msgs = basicSetParentServiceNS( newParentServiceNS, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
             eNotify( new ENotificationImpl( this, Notification.SET,
-                    NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_NS, newServiceNS, newServiceNS ) );
+                    NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__PARENT_SERVICE_NS, newParentServiceNS,
+                    newParentServiceNS ) );
     }
 
     /**
@@ -181,10 +182,10 @@ public class ServiceConstructedAttributesImpl extends NsdObjectImpl implements S
         case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_CONSTRUCTED_ATTRIBUTE:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getServiceConstructedAttribute() )
                     .basicAdd( otherEnd, msgs );
-        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_NS:
+        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__PARENT_SERVICE_NS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetServiceNS( ( ServiceNS ) otherEnd, msgs );
+            return basicSetParentServiceNS( ( ServiceNS ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -199,8 +200,8 @@ public class ServiceConstructedAttributesImpl extends NsdObjectImpl implements S
         switch( featureID ) {
         case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_CONSTRUCTED_ATTRIBUTE:
             return ( ( InternalEList< ? > ) getServiceConstructedAttribute() ).basicRemove( otherEnd, msgs );
-        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_NS:
-            return basicSetServiceNS( null, msgs );
+        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__PARENT_SERVICE_NS:
+            return basicSetParentServiceNS( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -213,7 +214,7 @@ public class ServiceConstructedAttributesImpl extends NsdObjectImpl implements S
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_NS:
+        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__PARENT_SERVICE_NS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.SERVICE_NS__SERVICE_CONSTRUCTED_ATTRIBUTES,
                     ServiceNS.class, msgs );
         }
@@ -230,8 +231,8 @@ public class ServiceConstructedAttributesImpl extends NsdObjectImpl implements S
         switch( featureID ) {
         case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_CONSTRUCTED_ATTRIBUTE:
             return getServiceConstructedAttribute();
-        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_NS:
-            return getServiceNS();
+        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__PARENT_SERVICE_NS:
+            return getParentServiceNS();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -249,8 +250,8 @@ public class ServiceConstructedAttributesImpl extends NsdObjectImpl implements S
             getServiceConstructedAttribute().clear();
             getServiceConstructedAttribute().addAll( ( Collection< ? extends ServiceConstructedAttribute > ) newValue );
             return;
-        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_NS:
-            setServiceNS( ( ServiceNS ) newValue );
+        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__PARENT_SERVICE_NS:
+            setParentServiceNS( ( ServiceNS ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -267,8 +268,8 @@ public class ServiceConstructedAttributesImpl extends NsdObjectImpl implements S
         case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_CONSTRUCTED_ATTRIBUTE:
             unsetServiceConstructedAttribute();
             return;
-        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_NS:
-            setServiceNS( ( ServiceNS ) null );
+        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__PARENT_SERVICE_NS:
+            setParentServiceNS( ( ServiceNS ) null );
             return;
         }
         super.eUnset( featureID );
@@ -284,8 +285,8 @@ public class ServiceConstructedAttributesImpl extends NsdObjectImpl implements S
         switch( featureID ) {
         case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_CONSTRUCTED_ATTRIBUTE:
             return isSetServiceConstructedAttribute();
-        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_NS:
-            return getServiceNS() != null;
+        case NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__PARENT_SERVICE_NS:
+            return getParentServiceNS() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceDataAttributeImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceDataAttributeImpl.java
index e0d930a751ec6c2aac1532bbcf5e952b20547709..6e73f61303dc4c86f7e241e01adcc2eb6750e285 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceDataAttributeImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceDataAttributeImpl.java
@@ -56,7 +56,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceDataAttributeImpl#getUnderlyingTypeKind <em>Underlying Type Kind</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceDataAttributeImpl#getFc <em>Fc</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceDataAttributeImpl#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceDataAttributeImpl#getServiceCDC <em>Service CDC</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceDataAttributeImpl#getParentServiceCDC <em>Parent Service CDC</em>}</li>
  * </ul>
  *
  * @generated
@@ -447,6 +447,54 @@ public class ServiceDataAttributeImpl extends DocumentedClassImpl implements Ser
         return nameESet;
     }
 
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public ServiceCDC getParentServiceCDC() {
+        if( eContainerFeatureID() != NsdPackage.SERVICE_DATA_ATTRIBUTE__PARENT_SERVICE_CDC ) return null;
+        return ( ServiceCDC ) eInternalContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetParentServiceCDC( ServiceCDC newParentServiceCDC, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentServiceCDC,
+                NsdPackage.SERVICE_DATA_ATTRIBUTE__PARENT_SERVICE_CDC, msgs );
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public void setParentServiceCDC( ServiceCDC newParentServiceCDC ) {
+        if( newParentServiceCDC != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.SERVICE_DATA_ATTRIBUTE__PARENT_SERVICE_CDC
+                        && newParentServiceCDC != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentServiceCDC ) )
+                throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
+            NotificationChain msgs = null;
+            if( eInternalContainer() != null )
+                msgs = eBasicRemoveFromContainer( msgs );
+            if( newParentServiceCDC != null )
+                msgs = ( ( InternalEObject ) newParentServiceCDC ).eInverseAdd( this,
+                        NsdPackage.SERVICE_CDC__SERVICE_DATA_ATTRIBUTE, ServiceCDC.class, msgs );
+            msgs = basicSetParentServiceCDC( newParentServiceCDC, msgs );
+            if( msgs != null ) msgs.dispatch();
+        }
+        else if( eNotificationRequired() )
+            eNotify( new ENotificationImpl( this, Notification.SET,
+                    NsdPackage.SERVICE_DATA_ATTRIBUTE__PARENT_SERVICE_CDC, newParentServiceCDC, newParentServiceCDC ) );
+    }
+
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -816,54 +864,6 @@ public class ServiceDataAttributeImpl extends DocumentedClassImpl implements Ser
         return underlyingTypeKindESet;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public ServiceCDC getServiceCDC() {
-        if( eContainerFeatureID() != NsdPackage.SERVICE_DATA_ATTRIBUTE__SERVICE_CDC ) return null;
-        return ( ServiceCDC ) eInternalContainer();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public NotificationChain basicSetServiceCDC( ServiceCDC newServiceCDC, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newServiceCDC, NsdPackage.SERVICE_DATA_ATTRIBUTE__SERVICE_CDC,
-                msgs );
-        return msgs;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void setServiceCDC( ServiceCDC newServiceCDC ) {
-        if( newServiceCDC != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.SERVICE_DATA_ATTRIBUTE__SERVICE_CDC
-                        && newServiceCDC != null ) ) {
-            if( EcoreUtil.isAncestor( this, newServiceCDC ) )
-                throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
-            NotificationChain msgs = null;
-            if( eInternalContainer() != null )
-                msgs = eBasicRemoveFromContainer( msgs );
-            if( newServiceCDC != null )
-                msgs = ( ( InternalEObject ) newServiceCDC ).eInverseAdd( this,
-                        NsdPackage.SERVICE_CDC__SERVICE_DATA_ATTRIBUTE, ServiceCDC.class, msgs );
-            msgs = basicSetServiceCDC( newServiceCDC, msgs );
-            if( msgs != null ) msgs.dispatch();
-        }
-        else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.SERVICE_DATA_ATTRIBUTE__SERVICE_CDC,
-                    newServiceCDC, newServiceCDC ) );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -872,10 +872,10 @@ public class ServiceDataAttributeImpl extends DocumentedClassImpl implements Ser
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.SERVICE_DATA_ATTRIBUTE__SERVICE_CDC:
+        case NsdPackage.SERVICE_DATA_ATTRIBUTE__PARENT_SERVICE_CDC:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetServiceCDC( ( ServiceCDC ) otherEnd, msgs );
+            return basicSetParentServiceCDC( ( ServiceCDC ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -888,8 +888,8 @@ public class ServiceDataAttributeImpl extends DocumentedClassImpl implements Ser
     @Override
     public NotificationChain eInverseRemove( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.SERVICE_DATA_ATTRIBUTE__SERVICE_CDC:
-            return basicSetServiceCDC( null, msgs );
+        case NsdPackage.SERVICE_DATA_ATTRIBUTE__PARENT_SERVICE_CDC:
+            return basicSetParentServiceCDC( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -902,7 +902,7 @@ public class ServiceDataAttributeImpl extends DocumentedClassImpl implements Ser
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.SERVICE_DATA_ATTRIBUTE__SERVICE_CDC:
+        case NsdPackage.SERVICE_DATA_ATTRIBUTE__PARENT_SERVICE_CDC:
             return eInternalContainer().eInverseRemove( this, NsdPackage.SERVICE_CDC__SERVICE_DATA_ATTRIBUTE,
                     ServiceCDC.class, msgs );
         }
@@ -935,8 +935,8 @@ public class ServiceDataAttributeImpl extends DocumentedClassImpl implements Ser
             return getFc();
         case NsdPackage.SERVICE_DATA_ATTRIBUTE__NAME:
             return getName();
-        case NsdPackage.SERVICE_DATA_ATTRIBUTE__SERVICE_CDC:
-            return getServiceCDC();
+        case NsdPackage.SERVICE_DATA_ATTRIBUTE__PARENT_SERVICE_CDC:
+            return getParentServiceCDC();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -976,8 +976,8 @@ public class ServiceDataAttributeImpl extends DocumentedClassImpl implements Ser
         case NsdPackage.SERVICE_DATA_ATTRIBUTE__NAME:
             setName( ( String ) newValue );
             return;
-        case NsdPackage.SERVICE_DATA_ATTRIBUTE__SERVICE_CDC:
-            setServiceCDC( ( ServiceCDC ) newValue );
+        case NsdPackage.SERVICE_DATA_ATTRIBUTE__PARENT_SERVICE_CDC:
+            setParentServiceCDC( ( ServiceCDC ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -1018,8 +1018,8 @@ public class ServiceDataAttributeImpl extends DocumentedClassImpl implements Ser
         case NsdPackage.SERVICE_DATA_ATTRIBUTE__NAME:
             unsetName();
             return;
-        case NsdPackage.SERVICE_DATA_ATTRIBUTE__SERVICE_CDC:
-            setServiceCDC( ( ServiceCDC ) null );
+        case NsdPackage.SERVICE_DATA_ATTRIBUTE__PARENT_SERVICE_CDC:
+            setParentServiceCDC( ( ServiceCDC ) null );
             return;
         }
         super.eUnset( featureID );
@@ -1051,8 +1051,8 @@ public class ServiceDataAttributeImpl extends DocumentedClassImpl implements Ser
             return isSetFc();
         case NsdPackage.SERVICE_DATA_ATTRIBUTE__NAME:
             return isSetName();
-        case NsdPackage.SERVICE_DATA_ATTRIBUTE__SERVICE_CDC:
-            return getServiceCDC() != null;
+        case NsdPackage.SERVICE_DATA_ATTRIBUTE__PARENT_SERVICE_CDC:
+            return getParentServiceCDC() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceNSImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceNSImpl.java
index 2fadcf465f321650d7a7e886abe812ef7204b95f..054633fcef67a5ecac9e34d14432373b809844d5 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceNSImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceNSImpl.java
@@ -496,10 +496,10 @@ public class ServiceNSImpl extends CopyrightedImpl implements ServiceNS {
         if( newChanges != changes ) {
             NotificationChain msgs = null;
             if( changes != null )
-                msgs = ( ( InternalEObject ) changes ).eInverseRemove( this, NsdPackage.CHANGES__SERVICE_NS,
+                msgs = ( ( InternalEObject ) changes ).eInverseRemove( this, NsdPackage.CHANGES__PARENT_SERVICE_NS,
                         Changes.class, msgs );
             if( newChanges != null )
-                msgs = ( ( InternalEObject ) newChanges ).eInverseAdd( this, NsdPackage.CHANGES__SERVICE_NS,
+                msgs = ( ( InternalEObject ) newChanges ).eInverseAdd( this, NsdPackage.CHANGES__PARENT_SERVICE_NS,
                         Changes.class, msgs );
             msgs = basicSetChanges( newChanges, msgs );
             if( msgs != null ) msgs.dispatch();
@@ -543,8 +543,8 @@ public class ServiceNSImpl extends CopyrightedImpl implements ServiceNS {
     public void unsetChanges() {
         if( changes != null ) {
             NotificationChain msgs = null;
-            msgs = ( ( InternalEObject ) changes ).eInverseRemove( this, NsdPackage.CHANGES__SERVICE_NS, Changes.class,
-                    msgs );
+            msgs = ( ( InternalEObject ) changes ).eInverseRemove( this, NsdPackage.CHANGES__PARENT_SERVICE_NS,
+                    Changes.class, msgs );
             msgs = basicUnsetChanges( msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -611,10 +611,10 @@ public class ServiceNSImpl extends CopyrightedImpl implements ServiceNS {
             NotificationChain msgs = null;
             if( functionalConstraints != null )
                 msgs = ( ( InternalEObject ) functionalConstraints ).eInverseRemove( this,
-                        NsdPackage.FUNCTIONAL_CONSTRAINTS__SERVICE_NS, FunctionalConstraints.class, msgs );
+                        NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_SERVICE_NS, FunctionalConstraints.class, msgs );
             if( newFunctionalConstraints != null )
                 msgs = ( ( InternalEObject ) newFunctionalConstraints ).eInverseAdd( this,
-                        NsdPackage.FUNCTIONAL_CONSTRAINTS__SERVICE_NS, FunctionalConstraints.class, msgs );
+                        NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_SERVICE_NS, FunctionalConstraints.class, msgs );
             msgs = basicSetFunctionalConstraints( newFunctionalConstraints, msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -659,7 +659,7 @@ public class ServiceNSImpl extends CopyrightedImpl implements ServiceNS {
         if( functionalConstraints != null ) {
             NotificationChain msgs = null;
             msgs = ( ( InternalEObject ) functionalConstraints ).eInverseRemove( this,
-                    NsdPackage.FUNCTIONAL_CONSTRAINTS__SERVICE_NS, FunctionalConstraints.class, msgs );
+                    NsdPackage.FUNCTIONAL_CONSTRAINTS__PARENT_SERVICE_NS, FunctionalConstraints.class, msgs );
             msgs = basicUnsetFunctionalConstraints( msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -726,10 +726,10 @@ public class ServiceNSImpl extends CopyrightedImpl implements ServiceNS {
             NotificationChain msgs = null;
             if( presenceConditions != null )
                 msgs = ( ( InternalEObject ) presenceConditions ).eInverseRemove( this,
-                        NsdPackage.PRESENCE_CONDITIONS__SERVICE_NS, PresenceConditions.class, msgs );
+                        NsdPackage.PRESENCE_CONDITIONS__PARENT_SERVICE_NS, PresenceConditions.class, msgs );
             if( newPresenceConditions != null )
                 msgs = ( ( InternalEObject ) newPresenceConditions ).eInverseAdd( this,
-                        NsdPackage.PRESENCE_CONDITIONS__SERVICE_NS, PresenceConditions.class, msgs );
+                        NsdPackage.PRESENCE_CONDITIONS__PARENT_SERVICE_NS, PresenceConditions.class, msgs );
             msgs = basicSetPresenceConditions( newPresenceConditions, msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -774,7 +774,7 @@ public class ServiceNSImpl extends CopyrightedImpl implements ServiceNS {
         if( presenceConditions != null ) {
             NotificationChain msgs = null;
             msgs = ( ( InternalEObject ) presenceConditions ).eInverseRemove( this,
-                    NsdPackage.PRESENCE_CONDITIONS__SERVICE_NS, PresenceConditions.class, msgs );
+                    NsdPackage.PRESENCE_CONDITIONS__PARENT_SERVICE_NS, PresenceConditions.class, msgs );
             msgs = basicUnsetPresenceConditions( msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -838,11 +838,11 @@ public class ServiceNSImpl extends CopyrightedImpl implements ServiceNS {
         if( newAbbreviations != abbreviations ) {
             NotificationChain msgs = null;
             if( abbreviations != null )
-                msgs = ( ( InternalEObject ) abbreviations ).eInverseRemove( this, NsdPackage.ABBREVIATIONS__SERVICE_NS,
-                        Abbreviations.class, msgs );
+                msgs = ( ( InternalEObject ) abbreviations ).eInverseRemove( this,
+                        NsdPackage.ABBREVIATIONS__PARENT_SERVICE_NS, Abbreviations.class, msgs );
             if( newAbbreviations != null )
-                msgs = ( ( InternalEObject ) newAbbreviations ).eInverseAdd( this, NsdPackage.ABBREVIATIONS__SERVICE_NS,
-                        Abbreviations.class, msgs );
+                msgs = ( ( InternalEObject ) newAbbreviations ).eInverseAdd( this,
+                        NsdPackage.ABBREVIATIONS__PARENT_SERVICE_NS, Abbreviations.class, msgs );
             msgs = basicSetAbbreviations( newAbbreviations, msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -885,8 +885,8 @@ public class ServiceNSImpl extends CopyrightedImpl implements ServiceNS {
     public void unsetAbbreviations() {
         if( abbreviations != null ) {
             NotificationChain msgs = null;
-            msgs = ( ( InternalEObject ) abbreviations ).eInverseRemove( this, NsdPackage.ABBREVIATIONS__SERVICE_NS,
-                    Abbreviations.class, msgs );
+            msgs = ( ( InternalEObject ) abbreviations ).eInverseRemove( this,
+                    NsdPackage.ABBREVIATIONS__PARENT_SERVICE_NS, Abbreviations.class, msgs );
             msgs = basicUnsetAbbreviations( msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -953,10 +953,10 @@ public class ServiceNSImpl extends CopyrightedImpl implements ServiceNS {
             NotificationChain msgs = null;
             if( serviceTypeRealizations != null )
                 msgs = ( ( InternalEObject ) serviceTypeRealizations ).eInverseRemove( this,
-                        NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_NS, ServiceTypeRealizations.class, msgs );
+                        NsdPackage.SERVICE_TYPE_REALIZATIONS__PARENT_SERVICE_NS, ServiceTypeRealizations.class, msgs );
             if( newServiceTypeRealizations != null )
                 msgs = ( ( InternalEObject ) newServiceTypeRealizations ).eInverseAdd( this,
-                        NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_NS, ServiceTypeRealizations.class, msgs );
+                        NsdPackage.SERVICE_TYPE_REALIZATIONS__PARENT_SERVICE_NS, ServiceTypeRealizations.class, msgs );
             msgs = basicSetServiceTypeRealizations( newServiceTypeRealizations, msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -1002,7 +1002,7 @@ public class ServiceNSImpl extends CopyrightedImpl implements ServiceNS {
         if( serviceTypeRealizations != null ) {
             NotificationChain msgs = null;
             msgs = ( ( InternalEObject ) serviceTypeRealizations ).eInverseRemove( this,
-                    NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_NS, ServiceTypeRealizations.class, msgs );
+                    NsdPackage.SERVICE_TYPE_REALIZATIONS__PARENT_SERVICE_NS, ServiceTypeRealizations.class, msgs );
             msgs = basicUnsetServiceTypeRealizations( msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -1070,12 +1070,12 @@ public class ServiceNSImpl extends CopyrightedImpl implements ServiceNS {
             NotificationChain msgs = null;
             if( serviceConstructedAttributes != null )
                 msgs = ( ( InternalEObject ) serviceConstructedAttributes ).eInverseRemove( this,
-                        NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_NS, ServiceConstructedAttributes.class,
-                        msgs );
+                        NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__PARENT_SERVICE_NS,
+                        ServiceConstructedAttributes.class, msgs );
             if( newServiceConstructedAttributes != null )
                 msgs = ( ( InternalEObject ) newServiceConstructedAttributes ).eInverseAdd( this,
-                        NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_NS, ServiceConstructedAttributes.class,
-                        msgs );
+                        NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__PARENT_SERVICE_NS,
+                        ServiceConstructedAttributes.class, msgs );
             msgs = basicSetServiceConstructedAttributes( newServiceConstructedAttributes, msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -1121,7 +1121,8 @@ public class ServiceNSImpl extends CopyrightedImpl implements ServiceNS {
         if( serviceConstructedAttributes != null ) {
             NotificationChain msgs = null;
             msgs = ( ( InternalEObject ) serviceConstructedAttributes ).eInverseRemove( this,
-                    NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__SERVICE_NS, ServiceConstructedAttributes.class, msgs );
+                    NsdPackage.SERVICE_CONSTRUCTED_ATTRIBUTES__PARENT_SERVICE_NS, ServiceConstructedAttributes.class,
+                    msgs );
             msgs = basicUnsetServiceConstructedAttributes( msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -1186,11 +1187,11 @@ public class ServiceNSImpl extends CopyrightedImpl implements ServiceNS {
         if( newServiceCDCs != serviceCDCs ) {
             NotificationChain msgs = null;
             if( serviceCDCs != null )
-                msgs = ( ( InternalEObject ) serviceCDCs ).eInverseRemove( this, NsdPackage.SERVICE_CD_CS__SERVICE_NS,
-                        ServiceCDCs.class, msgs );
+                msgs = ( ( InternalEObject ) serviceCDCs ).eInverseRemove( this,
+                        NsdPackage.SERVICE_CD_CS__PARENT_SERVICE_NS, ServiceCDCs.class, msgs );
             if( newServiceCDCs != null )
-                msgs = ( ( InternalEObject ) newServiceCDCs ).eInverseAdd( this, NsdPackage.SERVICE_CD_CS__SERVICE_NS,
-                        ServiceCDCs.class, msgs );
+                msgs = ( ( InternalEObject ) newServiceCDCs ).eInverseAdd( this,
+                        NsdPackage.SERVICE_CD_CS__PARENT_SERVICE_NS, ServiceCDCs.class, msgs );
             msgs = basicSetServiceCDCs( newServiceCDCs, msgs );
             if( msgs != null ) msgs.dispatch();
         }
@@ -1233,8 +1234,8 @@ public class ServiceNSImpl extends CopyrightedImpl implements ServiceNS {
     public void unsetServiceCDCs() {
         if( serviceCDCs != null ) {
             NotificationChain msgs = null;
-            msgs = ( ( InternalEObject ) serviceCDCs ).eInverseRemove( this, NsdPackage.SERVICE_CD_CS__SERVICE_NS,
-                    ServiceCDCs.class, msgs );
+            msgs = ( ( InternalEObject ) serviceCDCs ).eInverseRemove( this,
+                    NsdPackage.SERVICE_CD_CS__PARENT_SERVICE_NS, ServiceCDCs.class, msgs );
             msgs = basicUnsetServiceCDCs( msgs );
             if( msgs != null ) msgs.dispatch();
         }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceNsUsageImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceNsUsageImpl.java
index 6f29b600e113a73bb985eabf741142ce1cc5b536..e6c278654cfd132a38e726db109c5dae4147a894 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceNsUsageImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceNsUsageImpl.java
@@ -55,7 +55,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceNsUsageImpl#getRevision <em>Revision</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceNsUsageImpl#getPublicationStage <em>Publication Stage</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceNsUsageImpl#getAppliesTo <em>Applies To</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceNsUsageImpl#getApplicableServiceNS <em>Applicable Service NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceNsUsageImpl#getParentApplicableServiceNS <em>Parent Applicable Service NS</em>}</li>
  * </ul>
  *
  * @generated
@@ -348,7 +348,7 @@ public class ServiceNsUsageImpl extends NsdObjectImpl implements ServiceNsUsage
     public EList< AppliesToType > getAppliesTo() {
         if( appliesTo == null ) {
             appliesTo = new EObjectContainmentWithInverseEList.Unsettable< AppliesToType >( AppliesToType.class, this,
-                    NsdPackage.SERVICE_NS_USAGE__APPLIES_TO, NsdPackage.APPLIES_TO_TYPE__SERVICE_NS_USAGE );
+                    NsdPackage.SERVICE_NS_USAGE__APPLIES_TO, NsdPackage.APPLIES_TO_TYPE__PARENT_SERVICE_NS_USAGE );
         }
         return appliesTo;
     }
@@ -373,6 +373,56 @@ public class ServiceNsUsageImpl extends NsdObjectImpl implements ServiceNsUsage
         return appliesTo != null && ( ( InternalEList.Unsettable< ? > ) appliesTo ).isSet();
     }
 
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public ApplicableServiceNS getParentApplicableServiceNS() {
+        if( eContainerFeatureID() != NsdPackage.SERVICE_NS_USAGE__PARENT_APPLICABLE_SERVICE_NS ) return null;
+        return ( ApplicableServiceNS ) eInternalContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetParentApplicableServiceNS( ApplicableServiceNS newParentApplicableServiceNS,
+            NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentApplicableServiceNS,
+                NsdPackage.SERVICE_NS_USAGE__PARENT_APPLICABLE_SERVICE_NS, msgs );
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public void setParentApplicableServiceNS( ApplicableServiceNS newParentApplicableServiceNS ) {
+        if( newParentApplicableServiceNS != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.SERVICE_NS_USAGE__PARENT_APPLICABLE_SERVICE_NS
+                        && newParentApplicableServiceNS != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentApplicableServiceNS ) )
+                throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
+            NotificationChain msgs = null;
+            if( eInternalContainer() != null )
+                msgs = eBasicRemoveFromContainer( msgs );
+            if( newParentApplicableServiceNS != null )
+                msgs = ( ( InternalEObject ) newParentApplicableServiceNS ).eInverseAdd( this,
+                        NsdPackage.APPLICABLE_SERVICE_NS__SERVICE_NS_USAGE, ApplicableServiceNS.class, msgs );
+            msgs = basicSetParentApplicableServiceNS( newParentApplicableServiceNS, msgs );
+            if( msgs != null ) msgs.dispatch();
+        }
+        else if( eNotificationRequired() )
+            eNotify( new ENotificationImpl( this, Notification.SET,
+                    NsdPackage.SERVICE_NS_USAGE__PARENT_APPLICABLE_SERVICE_NS, newParentApplicableServiceNS,
+                    newParentApplicableServiceNS ) );
+    }
+
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -529,55 +579,6 @@ public class ServiceNsUsageImpl extends NsdObjectImpl implements ServiceNsUsage
         return revisionESet;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public ApplicableServiceNS getApplicableServiceNS() {
-        if( eContainerFeatureID() != NsdPackage.SERVICE_NS_USAGE__APPLICABLE_SERVICE_NS ) return null;
-        return ( ApplicableServiceNS ) eInternalContainer();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public NotificationChain basicSetApplicableServiceNS( ApplicableServiceNS newApplicableServiceNS,
-            NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newApplicableServiceNS,
-                NsdPackage.SERVICE_NS_USAGE__APPLICABLE_SERVICE_NS, msgs );
-        return msgs;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void setApplicableServiceNS( ApplicableServiceNS newApplicableServiceNS ) {
-        if( newApplicableServiceNS != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.SERVICE_NS_USAGE__APPLICABLE_SERVICE_NS
-                        && newApplicableServiceNS != null ) ) {
-            if( EcoreUtil.isAncestor( this, newApplicableServiceNS ) )
-                throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
-            NotificationChain msgs = null;
-            if( eInternalContainer() != null )
-                msgs = eBasicRemoveFromContainer( msgs );
-            if( newApplicableServiceNS != null )
-                msgs = ( ( InternalEObject ) newApplicableServiceNS ).eInverseAdd( this,
-                        NsdPackage.APPLICABLE_SERVICE_NS__SERVICE_NS_USAGE, ApplicableServiceNS.class, msgs );
-            msgs = basicSetApplicableServiceNS( newApplicableServiceNS, msgs );
-            if( msgs != null ) msgs.dispatch();
-        }
-        else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.SERVICE_NS_USAGE__APPLICABLE_SERVICE_NS,
-                    newApplicableServiceNS, newApplicableServiceNS ) );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -590,10 +591,10 @@ public class ServiceNsUsageImpl extends NsdObjectImpl implements ServiceNsUsage
         case NsdPackage.SERVICE_NS_USAGE__APPLIES_TO:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getAppliesTo() ).basicAdd( otherEnd,
                     msgs );
-        case NsdPackage.SERVICE_NS_USAGE__APPLICABLE_SERVICE_NS:
+        case NsdPackage.SERVICE_NS_USAGE__PARENT_APPLICABLE_SERVICE_NS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetApplicableServiceNS( ( ApplicableServiceNS ) otherEnd, msgs );
+            return basicSetParentApplicableServiceNS( ( ApplicableServiceNS ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -608,8 +609,8 @@ public class ServiceNsUsageImpl extends NsdObjectImpl implements ServiceNsUsage
         switch( featureID ) {
         case NsdPackage.SERVICE_NS_USAGE__APPLIES_TO:
             return ( ( InternalEList< ? > ) getAppliesTo() ).basicRemove( otherEnd, msgs );
-        case NsdPackage.SERVICE_NS_USAGE__APPLICABLE_SERVICE_NS:
-            return basicSetApplicableServiceNS( null, msgs );
+        case NsdPackage.SERVICE_NS_USAGE__PARENT_APPLICABLE_SERVICE_NS:
+            return basicSetParentApplicableServiceNS( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -622,7 +623,7 @@ public class ServiceNsUsageImpl extends NsdObjectImpl implements ServiceNsUsage
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.SERVICE_NS_USAGE__APPLICABLE_SERVICE_NS:
+        case NsdPackage.SERVICE_NS_USAGE__PARENT_APPLICABLE_SERVICE_NS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.APPLICABLE_SERVICE_NS__SERVICE_NS_USAGE,
                     ApplicableServiceNS.class, msgs );
         }
@@ -649,8 +650,8 @@ public class ServiceNsUsageImpl extends NsdObjectImpl implements ServiceNsUsage
             return getPublicationStage();
         case NsdPackage.SERVICE_NS_USAGE__APPLIES_TO:
             return getAppliesTo();
-        case NsdPackage.SERVICE_NS_USAGE__APPLICABLE_SERVICE_NS:
-            return getApplicableServiceNS();
+        case NsdPackage.SERVICE_NS_USAGE__PARENT_APPLICABLE_SERVICE_NS:
+            return getParentApplicableServiceNS();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -683,8 +684,8 @@ public class ServiceNsUsageImpl extends NsdObjectImpl implements ServiceNsUsage
             getAppliesTo().clear();
             getAppliesTo().addAll( ( Collection< ? extends AppliesToType > ) newValue );
             return;
-        case NsdPackage.SERVICE_NS_USAGE__APPLICABLE_SERVICE_NS:
-            setApplicableServiceNS( ( ApplicableServiceNS ) newValue );
+        case NsdPackage.SERVICE_NS_USAGE__PARENT_APPLICABLE_SERVICE_NS:
+            setParentApplicableServiceNS( ( ApplicableServiceNS ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -716,8 +717,8 @@ public class ServiceNsUsageImpl extends NsdObjectImpl implements ServiceNsUsage
         case NsdPackage.SERVICE_NS_USAGE__APPLIES_TO:
             unsetAppliesTo();
             return;
-        case NsdPackage.SERVICE_NS_USAGE__APPLICABLE_SERVICE_NS:
-            setApplicableServiceNS( ( ApplicableServiceNS ) null );
+        case NsdPackage.SERVICE_NS_USAGE__PARENT_APPLICABLE_SERVICE_NS:
+            setParentApplicableServiceNS( ( ApplicableServiceNS ) null );
             return;
         }
         super.eUnset( featureID );
@@ -743,8 +744,8 @@ public class ServiceNsUsageImpl extends NsdObjectImpl implements ServiceNsUsage
             return isSetPublicationStage();
         case NsdPackage.SERVICE_NS_USAGE__APPLIES_TO:
             return isSetAppliesTo();
-        case NsdPackage.SERVICE_NS_USAGE__APPLICABLE_SERVICE_NS:
-            return getApplicableServiceNS() != null;
+        case NsdPackage.SERVICE_NS_USAGE__PARENT_APPLICABLE_SERVICE_NS:
+            return getParentApplicableServiceNS() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceParameterImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceParameterImpl.java
index 97287d74d30968070cac873e5b03ac70a3e798a3..c9195e9e895587bccbace90b7ae9207114431710 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceParameterImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceParameterImpl.java
@@ -53,7 +53,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceParameterImpl#getMaxValue <em>Max Value</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceParameterImpl#getMinValue <em>Min Value</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceParameterImpl#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceParameterImpl#getCDC <em>CDC</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceParameterImpl#getParentCDC <em>Parent CDC</em>}</li>
  * </ul>
  *
  * @generated
@@ -461,6 +461,52 @@ public class ServiceParameterImpl extends DocumentedClassImpl implements Service
         return nameESet;
     }
 
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public CDC getParentCDC() {
+        if( eContainerFeatureID() != NsdPackage.SERVICE_PARAMETER__PARENT_CDC ) return null;
+        return ( CDC ) eInternalContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetParentCDC( CDC newParentCDC, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentCDC, NsdPackage.SERVICE_PARAMETER__PARENT_CDC, msgs );
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public void setParentCDC( CDC newParentCDC ) {
+        if( newParentCDC != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.SERVICE_PARAMETER__PARENT_CDC && newParentCDC != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentCDC ) )
+                throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
+            NotificationChain msgs = null;
+            if( eInternalContainer() != null )
+                msgs = eBasicRemoveFromContainer( msgs );
+            if( newParentCDC != null )
+                msgs = ( ( InternalEObject ) newParentCDC ).eInverseAdd( this, NsdPackage.CDC__SERVICE_PARAMETER,
+                        CDC.class, msgs );
+            msgs = basicSetParentCDC( newParentCDC, msgs );
+            if( msgs != null ) msgs.dispatch();
+        }
+        else if( eNotificationRequired() )
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.SERVICE_PARAMETER__PARENT_CDC,
+                    newParentCDC, newParentCDC ) );
+    }
+
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -565,52 +611,6 @@ public class ServiceParameterImpl extends DocumentedClassImpl implements Service
         return typeKindESet;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public CDC getCDC() {
-        if( eContainerFeatureID() != NsdPackage.SERVICE_PARAMETER__CDC ) return null;
-        return ( CDC ) eInternalContainer();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public NotificationChain basicSetCDC( CDC newCDC, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newCDC, NsdPackage.SERVICE_PARAMETER__CDC, msgs );
-        return msgs;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void setCDC( CDC newCDC ) {
-        if( newCDC != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.SERVICE_PARAMETER__CDC && newCDC != null ) ) {
-            if( EcoreUtil.isAncestor( this, newCDC ) )
-                throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
-            NotificationChain msgs = null;
-            if( eInternalContainer() != null )
-                msgs = eBasicRemoveFromContainer( msgs );
-            if( newCDC != null )
-                msgs = ( ( InternalEObject ) newCDC ).eInverseAdd( this, NsdPackage.CDC__SERVICE_PARAMETER, CDC.class,
-                        msgs );
-            msgs = basicSetCDC( newCDC, msgs );
-            if( msgs != null ) msgs.dispatch();
-        }
-        else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.SERVICE_PARAMETER__CDC, newCDC,
-                    newCDC ) );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -619,10 +619,10 @@ public class ServiceParameterImpl extends DocumentedClassImpl implements Service
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.SERVICE_PARAMETER__CDC:
+        case NsdPackage.SERVICE_PARAMETER__PARENT_CDC:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetCDC( ( CDC ) otherEnd, msgs );
+            return basicSetParentCDC( ( CDC ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -635,8 +635,8 @@ public class ServiceParameterImpl extends DocumentedClassImpl implements Service
     @Override
     public NotificationChain eInverseRemove( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.SERVICE_PARAMETER__CDC:
-            return basicSetCDC( null, msgs );
+        case NsdPackage.SERVICE_PARAMETER__PARENT_CDC:
+            return basicSetParentCDC( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -649,7 +649,7 @@ public class ServiceParameterImpl extends DocumentedClassImpl implements Service
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.SERVICE_PARAMETER__CDC:
+        case NsdPackage.SERVICE_PARAMETER__PARENT_CDC:
             return eInternalContainer().eInverseRemove( this, NsdPackage.CDC__SERVICE_PARAMETER, CDC.class, msgs );
         }
         return super.eBasicRemoveFromContainerFeature( msgs );
@@ -675,8 +675,8 @@ public class ServiceParameterImpl extends DocumentedClassImpl implements Service
             return getMinValue();
         case NsdPackage.SERVICE_PARAMETER__NAME:
             return getName();
-        case NsdPackage.SERVICE_PARAMETER__CDC:
-            return getCDC();
+        case NsdPackage.SERVICE_PARAMETER__PARENT_CDC:
+            return getParentCDC();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -707,8 +707,8 @@ public class ServiceParameterImpl extends DocumentedClassImpl implements Service
         case NsdPackage.SERVICE_PARAMETER__NAME:
             setName( ( String ) newValue );
             return;
-        case NsdPackage.SERVICE_PARAMETER__CDC:
-            setCDC( ( CDC ) newValue );
+        case NsdPackage.SERVICE_PARAMETER__PARENT_CDC:
+            setParentCDC( ( CDC ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -740,8 +740,8 @@ public class ServiceParameterImpl extends DocumentedClassImpl implements Service
         case NsdPackage.SERVICE_PARAMETER__NAME:
             unsetName();
             return;
-        case NsdPackage.SERVICE_PARAMETER__CDC:
-            setCDC( ( CDC ) null );
+        case NsdPackage.SERVICE_PARAMETER__PARENT_CDC:
+            setParentCDC( ( CDC ) null );
             return;
         }
         super.eUnset( featureID );
@@ -767,8 +767,8 @@ public class ServiceParameterImpl extends DocumentedClassImpl implements Service
             return isSetMinValue();
         case NsdPackage.SERVICE_PARAMETER__NAME:
             return isSetName();
-        case NsdPackage.SERVICE_PARAMETER__CDC:
-            return getCDC() != null;
+        case NsdPackage.SERVICE_PARAMETER__PARENT_CDC:
+            return getParentCDC() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceTypeImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceTypeImpl.java
index 15acce3868b80556c120d131ebd52adf2c87fbca..f130ace761cb07e2e084f570dd3d79db9e6fcde8 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceTypeImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceTypeImpl.java
@@ -42,7 +42,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceTypeImpl#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceTypeImpl#getApplicableServices <em>Applicable Services</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceTypeImpl#getParentApplicableServices <em>Parent Applicable Services</em>}</li>
  * </ul>
  *
  * @generated
@@ -154,8 +154,8 @@ public class ServiceTypeImpl extends NsdObjectImpl implements ServiceType {
      * @generated
      */
     @Override
-    public ApplicableServices getApplicableServices() {
-        if( eContainerFeatureID() != NsdPackage.SERVICE_TYPE__APPLICABLE_SERVICES ) return null;
+    public ApplicableServices getParentApplicableServices() {
+        if( eContainerFeatureID() != NsdPackage.SERVICE_TYPE__PARENT_APPLICABLE_SERVICES ) return null;
         return ( ApplicableServices ) eInternalContainer();
     }
 
@@ -164,10 +164,10 @@ public class ServiceTypeImpl extends NsdObjectImpl implements ServiceType {
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetApplicableServices( ApplicableServices newApplicableServices,
+    public NotificationChain basicSetParentApplicableServices( ApplicableServices newParentApplicableServices,
             NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newApplicableServices,
-                NsdPackage.SERVICE_TYPE__APPLICABLE_SERVICES, msgs );
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentApplicableServices,
+                NsdPackage.SERVICE_TYPE__PARENT_APPLICABLE_SERVICES, msgs );
         return msgs;
     }
 
@@ -177,24 +177,24 @@ public class ServiceTypeImpl extends NsdObjectImpl implements ServiceType {
      * @generated
      */
     @Override
-    public void setApplicableServices( ApplicableServices newApplicableServices ) {
-        if( newApplicableServices != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.SERVICE_TYPE__APPLICABLE_SERVICES
-                        && newApplicableServices != null ) ) {
-            if( EcoreUtil.isAncestor( this, newApplicableServices ) )
+    public void setParentApplicableServices( ApplicableServices newParentApplicableServices ) {
+        if( newParentApplicableServices != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.SERVICE_TYPE__PARENT_APPLICABLE_SERVICES
+                        && newParentApplicableServices != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentApplicableServices ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newApplicableServices != null )
-                msgs = ( ( InternalEObject ) newApplicableServices ).eInverseAdd( this,
+            if( newParentApplicableServices != null )
+                msgs = ( ( InternalEObject ) newParentApplicableServices ).eInverseAdd( this,
                         NsdPackage.APPLICABLE_SERVICES__SERVICE, ApplicableServices.class, msgs );
-            msgs = basicSetApplicableServices( newApplicableServices, msgs );
+            msgs = basicSetParentApplicableServices( newParentApplicableServices, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.SERVICE_TYPE__APPLICABLE_SERVICES,
-                    newApplicableServices, newApplicableServices ) );
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.SERVICE_TYPE__PARENT_APPLICABLE_SERVICES,
+                    newParentApplicableServices, newParentApplicableServices ) );
     }
 
     /**
@@ -205,10 +205,10 @@ public class ServiceTypeImpl extends NsdObjectImpl implements ServiceType {
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.SERVICE_TYPE__APPLICABLE_SERVICES:
+        case NsdPackage.SERVICE_TYPE__PARENT_APPLICABLE_SERVICES:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetApplicableServices( ( ApplicableServices ) otherEnd, msgs );
+            return basicSetParentApplicableServices( ( ApplicableServices ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -221,8 +221,8 @@ public class ServiceTypeImpl extends NsdObjectImpl implements ServiceType {
     @Override
     public NotificationChain eInverseRemove( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.SERVICE_TYPE__APPLICABLE_SERVICES:
-            return basicSetApplicableServices( null, msgs );
+        case NsdPackage.SERVICE_TYPE__PARENT_APPLICABLE_SERVICES:
+            return basicSetParentApplicableServices( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -235,7 +235,7 @@ public class ServiceTypeImpl extends NsdObjectImpl implements ServiceType {
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.SERVICE_TYPE__APPLICABLE_SERVICES:
+        case NsdPackage.SERVICE_TYPE__PARENT_APPLICABLE_SERVICES:
             return eInternalContainer().eInverseRemove( this, NsdPackage.APPLICABLE_SERVICES__SERVICE,
                     ApplicableServices.class, msgs );
         }
@@ -252,8 +252,8 @@ public class ServiceTypeImpl extends NsdObjectImpl implements ServiceType {
         switch( featureID ) {
         case NsdPackage.SERVICE_TYPE__NAME:
             return getName();
-        case NsdPackage.SERVICE_TYPE__APPLICABLE_SERVICES:
-            return getApplicableServices();
+        case NsdPackage.SERVICE_TYPE__PARENT_APPLICABLE_SERVICES:
+            return getParentApplicableServices();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -269,8 +269,8 @@ public class ServiceTypeImpl extends NsdObjectImpl implements ServiceType {
         case NsdPackage.SERVICE_TYPE__NAME:
             setName( ( ACSIServicesKind ) newValue );
             return;
-        case NsdPackage.SERVICE_TYPE__APPLICABLE_SERVICES:
-            setApplicableServices( ( ApplicableServices ) newValue );
+        case NsdPackage.SERVICE_TYPE__PARENT_APPLICABLE_SERVICES:
+            setParentApplicableServices( ( ApplicableServices ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -287,8 +287,8 @@ public class ServiceTypeImpl extends NsdObjectImpl implements ServiceType {
         case NsdPackage.SERVICE_TYPE__NAME:
             unsetName();
             return;
-        case NsdPackage.SERVICE_TYPE__APPLICABLE_SERVICES:
-            setApplicableServices( ( ApplicableServices ) null );
+        case NsdPackage.SERVICE_TYPE__PARENT_APPLICABLE_SERVICES:
+            setParentApplicableServices( ( ApplicableServices ) null );
             return;
         }
         super.eUnset( featureID );
@@ -304,8 +304,8 @@ public class ServiceTypeImpl extends NsdObjectImpl implements ServiceType {
         switch( featureID ) {
         case NsdPackage.SERVICE_TYPE__NAME:
             return isSetName();
-        case NsdPackage.SERVICE_TYPE__APPLICABLE_SERVICES:
-            return getApplicableServices() != null;
+        case NsdPackage.SERVICE_TYPE__PARENT_APPLICABLE_SERVICES:
+            return getParentApplicableServices() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceTypeRealizationsImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceTypeRealizationsImpl.java
index 2e072a5e10821eec2c476fb0f627bfbea9b634a2..e2dec3c38b671caeb8d3673145095c10f15d41f5 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceTypeRealizationsImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceTypeRealizationsImpl.java
@@ -48,7 +48,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  * </p>
  * <ul>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceTypeRealizationsImpl#getServiceTypeRealization <em>Service Type Realization</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceTypeRealizationsImpl#getServiceNS <em>Service NS</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.ServiceTypeRealizationsImpl#getParentServiceNS <em>Parent Service NS</em>}</li>
  * </ul>
  *
  * @generated
@@ -93,7 +93,7 @@ public class ServiceTypeRealizationsImpl extends NsdObjectImpl implements Servic
         if( serviceTypeRealization == null ) {
             serviceTypeRealization = new EObjectContainmentWithInverseEList.Unsettable< ConstructedAttribute >(
                     ConstructedAttribute.class, this, NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_TYPE_REALIZATION,
-                    NsdPackage.CONSTRUCTED_ATTRIBUTE__SERVICE_TYPE_REALIZATIONS );
+                    NsdPackage.CONSTRUCTED_ATTRIBUTE__PARENT_SERVICE_TYPE_REALIZATIONS );
         }
         return serviceTypeRealization;
     }
@@ -124,8 +124,8 @@ public class ServiceTypeRealizationsImpl extends NsdObjectImpl implements Servic
      * @generated
      */
     @Override
-    public ServiceNS getServiceNS() {
-        if( eContainerFeatureID() != NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_NS ) return null;
+    public ServiceNS getParentServiceNS() {
+        if( eContainerFeatureID() != NsdPackage.SERVICE_TYPE_REALIZATIONS__PARENT_SERVICE_NS ) return null;
         return ( ServiceNS ) eInternalContainer();
     }
 
@@ -134,9 +134,9 @@ public class ServiceTypeRealizationsImpl extends NsdObjectImpl implements Servic
      * <!-- end-user-doc -->
      * @generated
      */
-    public NotificationChain basicSetServiceNS( ServiceNS newServiceNS, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newServiceNS, NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_NS,
-                msgs );
+    public NotificationChain basicSetParentServiceNS( ServiceNS newParentServiceNS, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentServiceNS,
+                NsdPackage.SERVICE_TYPE_REALIZATIONS__PARENT_SERVICE_NS, msgs );
         return msgs;
     }
 
@@ -146,24 +146,24 @@ public class ServiceTypeRealizationsImpl extends NsdObjectImpl implements Servic
      * @generated
      */
     @Override
-    public void setServiceNS( ServiceNS newServiceNS ) {
-        if( newServiceNS != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_NS
-                        && newServiceNS != null ) ) {
-            if( EcoreUtil.isAncestor( this, newServiceNS ) )
+    public void setParentServiceNS( ServiceNS newParentServiceNS ) {
+        if( newParentServiceNS != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.SERVICE_TYPE_REALIZATIONS__PARENT_SERVICE_NS
+                        && newParentServiceNS != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentServiceNS ) )
                 throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
             NotificationChain msgs = null;
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            if( newServiceNS != null )
-                msgs = ( ( InternalEObject ) newServiceNS ).eInverseAdd( this,
+            if( newParentServiceNS != null )
+                msgs = ( ( InternalEObject ) newParentServiceNS ).eInverseAdd( this,
                         NsdPackage.SERVICE_NS__SERVICE_TYPE_REALIZATIONS, ServiceNS.class, msgs );
-            msgs = basicSetServiceNS( newServiceNS, msgs );
+            msgs = basicSetParentServiceNS( newParentServiceNS, msgs );
             if( msgs != null ) msgs.dispatch();
         }
         else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_NS,
-                    newServiceNS, newServiceNS ) );
+            eNotify( new ENotificationImpl( this, Notification.SET,
+                    NsdPackage.SERVICE_TYPE_REALIZATIONS__PARENT_SERVICE_NS, newParentServiceNS, newParentServiceNS ) );
     }
 
     /**
@@ -178,10 +178,10 @@ public class ServiceTypeRealizationsImpl extends NsdObjectImpl implements Servic
         case NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_TYPE_REALIZATION:
             return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getServiceTypeRealization() )
                     .basicAdd( otherEnd, msgs );
-        case NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_NS:
+        case NsdPackage.SERVICE_TYPE_REALIZATIONS__PARENT_SERVICE_NS:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetServiceNS( ( ServiceNS ) otherEnd, msgs );
+            return basicSetParentServiceNS( ( ServiceNS ) otherEnd, msgs );
         }
         return super.eInverseAdd( otherEnd, featureID, msgs );
     }
@@ -196,8 +196,8 @@ public class ServiceTypeRealizationsImpl extends NsdObjectImpl implements Servic
         switch( featureID ) {
         case NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_TYPE_REALIZATION:
             return ( ( InternalEList< ? > ) getServiceTypeRealization() ).basicRemove( otherEnd, msgs );
-        case NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_NS:
-            return basicSetServiceNS( null, msgs );
+        case NsdPackage.SERVICE_TYPE_REALIZATIONS__PARENT_SERVICE_NS:
+            return basicSetParentServiceNS( null, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -210,7 +210,7 @@ public class ServiceTypeRealizationsImpl extends NsdObjectImpl implements Servic
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_NS:
+        case NsdPackage.SERVICE_TYPE_REALIZATIONS__PARENT_SERVICE_NS:
             return eInternalContainer().eInverseRemove( this, NsdPackage.SERVICE_NS__SERVICE_TYPE_REALIZATIONS,
                     ServiceNS.class, msgs );
         }
@@ -227,8 +227,8 @@ public class ServiceTypeRealizationsImpl extends NsdObjectImpl implements Servic
         switch( featureID ) {
         case NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_TYPE_REALIZATION:
             return getServiceTypeRealization();
-        case NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_NS:
-            return getServiceNS();
+        case NsdPackage.SERVICE_TYPE_REALIZATIONS__PARENT_SERVICE_NS:
+            return getParentServiceNS();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -246,8 +246,8 @@ public class ServiceTypeRealizationsImpl extends NsdObjectImpl implements Servic
             getServiceTypeRealization().clear();
             getServiceTypeRealization().addAll( ( Collection< ? extends ConstructedAttribute > ) newValue );
             return;
-        case NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_NS:
-            setServiceNS( ( ServiceNS ) newValue );
+        case NsdPackage.SERVICE_TYPE_REALIZATIONS__PARENT_SERVICE_NS:
+            setParentServiceNS( ( ServiceNS ) newValue );
             return;
         }
         super.eSet( featureID, newValue );
@@ -264,8 +264,8 @@ public class ServiceTypeRealizationsImpl extends NsdObjectImpl implements Servic
         case NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_TYPE_REALIZATION:
             unsetServiceTypeRealization();
             return;
-        case NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_NS:
-            setServiceNS( ( ServiceNS ) null );
+        case NsdPackage.SERVICE_TYPE_REALIZATIONS__PARENT_SERVICE_NS:
+            setParentServiceNS( ( ServiceNS ) null );
             return;
         }
         super.eUnset( featureID );
@@ -281,8 +281,8 @@ public class ServiceTypeRealizationsImpl extends NsdObjectImpl implements Servic
         switch( featureID ) {
         case NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_TYPE_REALIZATION:
             return isSetServiceTypeRealization();
-        case NsdPackage.SERVICE_TYPE_REALIZATIONS__SERVICE_NS:
-            return getServiceNS() != null;
+        case NsdPackage.SERVICE_TYPE_REALIZATIONS__PARENT_SERVICE_NS:
+            return getParentServiceNS() != null;
         }
         return super.eIsSet( featureID );
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/SubDataAttributeImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/SubDataAttributeImpl.java
index 1b21d08c31afed0bed4abdc486415e15b0b7cf85..3452e3c7c40f86f634d301ea702a4f4f7c378030 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/SubDataAttributeImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/SubDataAttributeImpl.java
@@ -65,7 +65,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.SubDataAttributeImpl#getMaxValue <em>Max Value</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.SubDataAttributeImpl#getMinValue <em>Min Value</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.SubDataAttributeImpl#getName <em>Name</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.SubDataAttributeImpl#getConstructedAttribute <em>Constructed Attribute</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.SubDataAttributeImpl#getParentConstructedAttribute <em>Parent Constructed Attribute</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.SubDataAttributeImpl#getRefersToPresenceCondition <em>Refers To Presence Condition</em>}</li>
  * </ul>
  *
@@ -853,6 +853,56 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData
         return nameESet;
     }
 
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public ConstructedAttribute getParentConstructedAttribute() {
+        if( eContainerFeatureID() != NsdPackage.SUB_DATA_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTE ) return null;
+        return ( ConstructedAttribute ) eInternalContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetParentConstructedAttribute( ConstructedAttribute newParentConstructedAttribute,
+            NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentConstructedAttribute,
+                NsdPackage.SUB_DATA_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTE, msgs );
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public void setParentConstructedAttribute( ConstructedAttribute newParentConstructedAttribute ) {
+        if( newParentConstructedAttribute != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.SUB_DATA_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTE
+                        && newParentConstructedAttribute != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentConstructedAttribute ) )
+                throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
+            NotificationChain msgs = null;
+            if( eInternalContainer() != null )
+                msgs = eBasicRemoveFromContainer( msgs );
+            if( newParentConstructedAttribute != null )
+                msgs = ( ( InternalEObject ) newParentConstructedAttribute ).eInverseAdd( this,
+                        NsdPackage.CONSTRUCTED_ATTRIBUTE__SUB_DATA_ATTRIBUTE, ConstructedAttribute.class, msgs );
+            msgs = basicSetParentConstructedAttribute( newParentConstructedAttribute, msgs );
+            if( msgs != null ) msgs.dispatch();
+        }
+        else if( eNotificationRequired() )
+            eNotify( new ENotificationImpl( this, Notification.SET,
+                    NsdPackage.SUB_DATA_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTE, newParentConstructedAttribute,
+                    newParentConstructedAttribute ) );
+    }
+
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1165,56 +1215,6 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData
         return typeKindESet;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public ConstructedAttribute getConstructedAttribute() {
-        if( eContainerFeatureID() != NsdPackage.SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE ) return null;
-        return ( ConstructedAttribute ) eInternalContainer();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public NotificationChain basicSetConstructedAttribute( ConstructedAttribute newConstructedAttribute,
-            NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newConstructedAttribute,
-                NsdPackage.SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE, msgs );
-        return msgs;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void setConstructedAttribute( ConstructedAttribute newConstructedAttribute ) {
-        if( newConstructedAttribute != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE
-                        && newConstructedAttribute != null ) ) {
-            if( EcoreUtil.isAncestor( this, newConstructedAttribute ) )
-                throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
-            NotificationChain msgs = null;
-            if( eInternalContainer() != null )
-                msgs = eBasicRemoveFromContainer( msgs );
-            if( newConstructedAttribute != null )
-                msgs = ( ( InternalEObject ) newConstructedAttribute ).eInverseAdd( this,
-                        NsdPackage.CONSTRUCTED_ATTRIBUTE__SUB_DATA_ATTRIBUTE, ConstructedAttribute.class, msgs );
-            msgs = basicSetConstructedAttribute( newConstructedAttribute, msgs );
-            if( msgs != null ) msgs.dispatch();
-        }
-        else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET,
-                    NsdPackage.SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE, newConstructedAttribute,
-                    newConstructedAttribute ) );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1340,10 +1340,10 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE:
+        case NsdPackage.SUB_DATA_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTE:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetConstructedAttribute( ( ConstructedAttribute ) otherEnd, msgs );
+            return basicSetParentConstructedAttribute( ( ConstructedAttribute ) otherEnd, msgs );
         case NsdPackage.SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION:
             if( refersToPresenceCondition != null )
                 msgs = ( ( InternalEObject ) refersToPresenceCondition ).eInverseRemove( this,
@@ -1361,8 +1361,8 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData
     @Override
     public NotificationChain eInverseRemove( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE:
-            return basicSetConstructedAttribute( null, msgs );
+        case NsdPackage.SUB_DATA_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTE:
+            return basicSetParentConstructedAttribute( null, msgs );
         case NsdPackage.SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION:
             return basicUnsetRefersToPresenceCondition( msgs );
         }
@@ -1377,7 +1377,7 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE:
+        case NsdPackage.SUB_DATA_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTE:
             return eInternalContainer().eInverseRemove( this, NsdPackage.CONSTRUCTED_ATTRIBUTE__SUB_DATA_ATTRIBUTE,
                     ConstructedAttribute.class, msgs );
         }
@@ -1418,8 +1418,8 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData
             return getMinValue();
         case NsdPackage.SUB_DATA_ATTRIBUTE__NAME:
             return getName();
-        case NsdPackage.SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE:
-            return getConstructedAttribute();
+        case NsdPackage.SUB_DATA_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTE:
+            return getParentConstructedAttribute();
         case NsdPackage.SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION:
             return getRefersToPresenceCondition();
         }
@@ -1473,8 +1473,8 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData
         case NsdPackage.SUB_DATA_ATTRIBUTE__NAME:
             setName( ( String ) newValue );
             return;
-        case NsdPackage.SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE:
-            setConstructedAttribute( ( ConstructedAttribute ) newValue );
+        case NsdPackage.SUB_DATA_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTE:
+            setParentConstructedAttribute( ( ConstructedAttribute ) newValue );
             return;
         case NsdPackage.SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION:
             setRefersToPresenceCondition( ( PresenceCondition ) newValue );
@@ -1530,8 +1530,8 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData
         case NsdPackage.SUB_DATA_ATTRIBUTE__NAME:
             unsetName();
             return;
-        case NsdPackage.SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE:
-            setConstructedAttribute( ( ConstructedAttribute ) null );
+        case NsdPackage.SUB_DATA_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTE:
+            setParentConstructedAttribute( ( ConstructedAttribute ) null );
             return;
         case NsdPackage.SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION:
             unsetRefersToPresenceCondition();
@@ -1574,8 +1574,8 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData
             return isSetMinValue();
         case NsdPackage.SUB_DATA_ATTRIBUTE__NAME:
             return isSetName();
-        case NsdPackage.SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE:
-            return getConstructedAttribute() != null;
+        case NsdPackage.SUB_DATA_ATTRIBUTE__PARENT_CONSTRUCTED_ATTRIBUTE:
+            return getParentConstructedAttribute() != null;
         case NsdPackage.SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION:
             return isSetRefersToPresenceCondition();
         }
@@ -1786,7 +1786,7 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData
     public boolean buildExplicitLinks( IRiseClipseConsole console, boolean forceUpdate ) {
         if( super.buildExplicitLinks( console, forceUpdate ) ) return true;
 
-        NS ns = getConstructedAttribute().getConstructedAttributes().getNS();
+        NS ns = getParentConstructedAttribute().getParentConstructedAttributes().getParentNS();
         if( isSetPresCond() ) {
             PresenceCondition foundPC = ns.findPresenceCondition( getPresCond(), console );
             if( foundPC == null ) {
@@ -1797,7 +1797,7 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData
                 setRefersToPresenceCondition( foundPC );
                 console.verbose( "PresenceCondition (name: " + getPresCond() + ") refers by SubDataAttribute (name: "
                         + getName() + ") in NS (id:" + ns.getId() + ") found in NS (id:"
-                        + getRefersToPresenceCondition().getPresenceConditions().getNS().getId() + ")" );
+                        + getRefersToPresenceCondition().getParentPresenceConditions().getParentNS().getId() + ")" );
             }
         }
 
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/SubDataObjectImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/SubDataObjectImpl.java
index ee1e4f9fd308f45fc5538787630bbd2f7fd48c38..59d078dc0357cdd9ad7df361adc15be0f48e051f 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/SubDataObjectImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/SubDataObjectImpl.java
@@ -59,7 +59,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.SubDataObjectImpl#getUnderlyingTypeKind <em>Underlying Type Kind</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.SubDataObjectImpl#getName <em>Name</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.SubDataObjectImpl#getType <em>Type</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.SubDataObjectImpl#getCDC <em>CDC</em>}</li>
+ *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.SubDataObjectImpl#getParentCDC <em>Parent CDC</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.SubDataObjectImpl#getRefersToCDC <em>Refers To CDC</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.SubDataObjectImpl#getRefersToPresenceCondition <em>Refers To Presence Condition</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.SubDataObjectImpl#getRefersToSizeAttribute <em>Refers To Size Attribute</em>}</li>
@@ -951,6 +951,52 @@ public class SubDataObjectImpl extends DocumentedClassImpl implements SubDataObj
         return typeESet;
     }
 
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public CDC getParentCDC() {
+        if( eContainerFeatureID() != NsdPackage.SUB_DATA_OBJECT__PARENT_CDC ) return null;
+        return ( CDC ) eInternalContainer();
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    public NotificationChain basicSetParentCDC( CDC newParentCDC, NotificationChain msgs ) {
+        msgs = eBasicSetContainer( ( InternalEObject ) newParentCDC, NsdPackage.SUB_DATA_OBJECT__PARENT_CDC, msgs );
+        return msgs;
+    }
+
+    /**
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    @Override
+    public void setParentCDC( CDC newParentCDC ) {
+        if( newParentCDC != eInternalContainer()
+                || ( eContainerFeatureID() != NsdPackage.SUB_DATA_OBJECT__PARENT_CDC && newParentCDC != null ) ) {
+            if( EcoreUtil.isAncestor( this, newParentCDC ) )
+                throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
+            NotificationChain msgs = null;
+            if( eInternalContainer() != null )
+                msgs = eBasicRemoveFromContainer( msgs );
+            if( newParentCDC != null )
+                msgs = ( ( InternalEObject ) newParentCDC ).eInverseAdd( this, NsdPackage.CDC__SUB_DATA_OBJECT,
+                        CDC.class, msgs );
+            msgs = basicSetParentCDC( newParentCDC, msgs );
+            if( msgs != null ) msgs.dispatch();
+        }
+        else if( eNotificationRequired() )
+            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.SUB_DATA_OBJECT__PARENT_CDC,
+                    newParentCDC, newParentCDC ) );
+    }
+
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1055,51 +1101,6 @@ public class SubDataObjectImpl extends DocumentedClassImpl implements SubDataObj
         return underlyingTypeKindESet;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public CDC getCDC() {
-        if( eContainerFeatureID() != NsdPackage.SUB_DATA_OBJECT__CDC ) return null;
-        return ( CDC ) eInternalContainer();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public NotificationChain basicSetCDC( CDC newCDC, NotificationChain msgs ) {
-        msgs = eBasicSetContainer( ( InternalEObject ) newCDC, NsdPackage.SUB_DATA_OBJECT__CDC, msgs );
-        return msgs;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void setCDC( CDC newCDC ) {
-        if( newCDC != eInternalContainer()
-                || ( eContainerFeatureID() != NsdPackage.SUB_DATA_OBJECT__CDC && newCDC != null ) ) {
-            if( EcoreUtil.isAncestor( this, newCDC ) )
-                throw new IllegalArgumentException( "Recursive containment not allowed for " + toString() );
-            NotificationChain msgs = null;
-            if( eInternalContainer() != null )
-                msgs = eBasicRemoveFromContainer( msgs );
-            if( newCDC != null )
-                msgs = ( ( InternalEObject ) newCDC ).eInverseAdd( this, NsdPackage.CDC__SUB_DATA_OBJECT, CDC.class,
-                        msgs );
-            msgs = basicSetCDC( newCDC, msgs );
-            if( msgs != null ) msgs.dispatch();
-        }
-        else if( eNotificationRequired() )
-            eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.SUB_DATA_OBJECT__CDC, newCDC, newCDC ) );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1577,10 +1578,10 @@ public class SubDataObjectImpl extends DocumentedClassImpl implements SubDataObj
     @Override
     public NotificationChain eInverseAdd( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.SUB_DATA_OBJECT__CDC:
+        case NsdPackage.SUB_DATA_OBJECT__PARENT_CDC:
             if( eInternalContainer() != null )
                 msgs = eBasicRemoveFromContainer( msgs );
-            return basicSetCDC( ( CDC ) otherEnd, msgs );
+            return basicSetParentCDC( ( CDC ) otherEnd, msgs );
         case NsdPackage.SUB_DATA_OBJECT__REFERS_TO_CDC:
             if( refersToCDC != null )
                 msgs = ( ( InternalEObject ) refersToCDC ).eInverseRemove( this,
@@ -1615,8 +1616,8 @@ public class SubDataObjectImpl extends DocumentedClassImpl implements SubDataObj
     @Override
     public NotificationChain eInverseRemove( InternalEObject otherEnd, int featureID, NotificationChain msgs ) {
         switch( featureID ) {
-        case NsdPackage.SUB_DATA_OBJECT__CDC:
-            return basicSetCDC( null, msgs );
+        case NsdPackage.SUB_DATA_OBJECT__PARENT_CDC:
+            return basicSetParentCDC( null, msgs );
         case NsdPackage.SUB_DATA_OBJECT__REFERS_TO_CDC:
             return basicUnsetRefersToCDC( msgs );
         case NsdPackage.SUB_DATA_OBJECT__REFERS_TO_PRESENCE_CONDITION:
@@ -1637,7 +1638,7 @@ public class SubDataObjectImpl extends DocumentedClassImpl implements SubDataObj
     @Override
     public NotificationChain eBasicRemoveFromContainerFeature( NotificationChain msgs ) {
         switch( eContainerFeatureID() ) {
-        case NsdPackage.SUB_DATA_OBJECT__CDC:
+        case NsdPackage.SUB_DATA_OBJECT__PARENT_CDC:
             return eInternalContainer().eInverseRemove( this, NsdPackage.CDC__SUB_DATA_OBJECT, CDC.class, msgs );
         }
         return super.eBasicRemoveFromContainerFeature( msgs );
@@ -1673,8 +1674,8 @@ public class SubDataObjectImpl extends DocumentedClassImpl implements SubDataObj
             return getName();
         case NsdPackage.SUB_DATA_OBJECT__TYPE:
             return getType();
-        case NsdPackage.SUB_DATA_OBJECT__CDC:
-            return getCDC();
+        case NsdPackage.SUB_DATA_OBJECT__PARENT_CDC:
+            return getParentCDC();
         case NsdPackage.SUB_DATA_OBJECT__REFERS_TO_CDC:
             return getRefersToCDC();
         case NsdPackage.SUB_DATA_OBJECT__REFERS_TO_PRESENCE_CONDITION:
@@ -1728,8 +1729,8 @@ public class SubDataObjectImpl extends DocumentedClassImpl implements SubDataObj
         case NsdPackage.SUB_DATA_OBJECT__TYPE:
             setType( ( String ) newValue );
             return;
-        case NsdPackage.SUB_DATA_OBJECT__CDC:
-            setCDC( ( CDC ) newValue );
+        case NsdPackage.SUB_DATA_OBJECT__PARENT_CDC:
+            setParentCDC( ( CDC ) newValue );
             return;
         case NsdPackage.SUB_DATA_OBJECT__REFERS_TO_CDC:
             setRefersToCDC( ( CDC ) newValue );
@@ -1788,8 +1789,8 @@ public class SubDataObjectImpl extends DocumentedClassImpl implements SubDataObj
         case NsdPackage.SUB_DATA_OBJECT__TYPE:
             unsetType();
             return;
-        case NsdPackage.SUB_DATA_OBJECT__CDC:
-            setCDC( ( CDC ) null );
+        case NsdPackage.SUB_DATA_OBJECT__PARENT_CDC:
+            setParentCDC( ( CDC ) null );
             return;
         case NsdPackage.SUB_DATA_OBJECT__REFERS_TO_CDC:
             unsetRefersToCDC();
@@ -1837,8 +1838,8 @@ public class SubDataObjectImpl extends DocumentedClassImpl implements SubDataObj
             return isSetName();
         case NsdPackage.SUB_DATA_OBJECT__TYPE:
             return isSetType();
-        case NsdPackage.SUB_DATA_OBJECT__CDC:
-            return getCDC() != null;
+        case NsdPackage.SUB_DATA_OBJECT__PARENT_CDC:
+            return getParentCDC() != null;
         case NsdPackage.SUB_DATA_OBJECT__REFERS_TO_CDC:
             return isSetRefersToCDC();
         case NsdPackage.SUB_DATA_OBJECT__REFERS_TO_PRESENCE_CONDITION:
@@ -2022,7 +2023,7 @@ public class SubDataObjectImpl extends DocumentedClassImpl implements SubDataObj
     public boolean buildExplicitLinks( IRiseClipseConsole console, boolean forceUpdate ) {
         if( super.buildExplicitLinks( console, forceUpdate ) ) return true;
 
-        NS ns = getCDC().getCDCs().getNS();
+        NS ns = getParentCDC().getParentCDCs().getParentNS();
         if( isSetType() ) {
             CDC foundCDC = ns.findCDC( getType(), console );
 
@@ -2035,7 +2036,7 @@ public class SubDataObjectImpl extends DocumentedClassImpl implements SubDataObj
                 setRefersToCDC( foundCDC );
                 console.verbose( "CDC (name: " + getType() + ") refers by SubDataObject (name: " + getName()
                         + ") in NS (id:" + ns.getId() + ") found in NS (id:"
-                        + getRefersToCDC().getCDCs().getNS().getId() + ")" );
+                        + getRefersToCDC().getParentCDCs().getParentNS().getId() + ")" );
             }
         }
 
@@ -2050,12 +2051,12 @@ public class SubDataObjectImpl extends DocumentedClassImpl implements SubDataObj
                 setRefersToPresenceCondition( foundPC );
                 console.verbose( "PresenceCondition (name: " + getPresCond() + ") refers by SubDataObject (name: "
                         + getName() + ") in NS (id:" + ns.getId() + ") found in NS (id:"
-                        + getRefersToPresenceCondition().getPresenceConditions().getNS().getId() + ")" );
+                        + getRefersToPresenceCondition().getParentPresenceConditions().getParentNS().getId() + ")" );
             }
         }
 
         if( isSetSizeAttribute() ) {
-            getCDC()
+            getParentCDC()
                     .getDataAttribute()
                     .stream()
                     .filter( att -> att.getName().equals( getSizeAttribute() ) )
@@ -2075,7 +2076,7 @@ public class SubDataObjectImpl extends DocumentedClassImpl implements SubDataObj
         }
 
         if( isSetMaxIndexAttribute() ) {
-            getCDC()
+            getParentCDC()
                     .getDataAttribute()
                     .stream()
                     .filter( att -> att.getName().equals( getSizeAttribute() ) )