diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore
index 44da8c0a1fca5080a5dd3ad3f656503225ad322e..b606690261d0dfdd97b90b09dd12e217f7748fc2 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore
@@ -9,7 +9,7 @@
       <details key="name" value="AppliesTo_._type"/>
       <details key="kind" value="empty"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="#//NSIdentifier">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Identifier of the namespace, e.g., &quot;IEC 61850-7-4&quot;, &quot;(Tr)IEC 61850-90-4&quot;."/>
       </eAnnotations>
@@ -38,7 +38,7 @@
         <details key="name" value="release"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="revision" eType="#//NSRevision"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="revision" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
         defaultValueLiteral="A" unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Revision of the namespace version, by default 'A'."/>
@@ -64,7 +64,7 @@
       <details key="name" value="DependsOn_._type"/>
       <details key="kind" value="empty"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="#//NSIdentifier">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Identifier of the namespace, e.g., &quot;IEC 61850-7-4&quot;, &quot;(Tr)IEC 61850-90-4&quot;."/>
       </eAnnotations>
@@ -93,7 +93,7 @@
         <details key="name" value="release"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="revision" eType="#//NSRevision"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="revision" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
         defaultValueLiteral="A" unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Revision of the namespace version, by default 'A'."/>
@@ -223,7 +223,7 @@
       <details key="name" value="tAbbreviation"/>
       <details key="kind" value="empty"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descID" eType="#//DocID">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Documentation identifier referring to a full description of this abbreviation."/>
       </eAnnotations>
@@ -232,7 +232,7 @@
         <details key="name" value="descID"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="#//AbbreviationName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the abbreviation, as used in IEC 61850 data models."/>
       </eAnnotations>
@@ -242,15 +242,6 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="AbbreviationName" instanceClassName="java.lang.String">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Name of an abbreviation."/>
-    </eAnnotations>
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="name" value="tAbbreviationName"/>
-      <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#normalizedString"/>
-    </eAnnotations>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Abbreviations">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="List of abbreviationss which are introduced by a namespace."/>
@@ -279,7 +270,7 @@
       <details key="name" value="tAbstractLNClass"/>
       <details key="kind" value="elementOnly"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="#//AbstractLNClassName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The name of the abstract logical node."/>
       </eAnnotations>
@@ -289,15 +280,6 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="AbstractLNClassName" instanceClassName="java.lang.String">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Name of an abstract logical node."/>
-    </eAnnotations>
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="name" value="tAbstractLNClassName"/>
-      <details key="baseType" value="tIec61850Name"/>
-    </eAnnotations>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="ACSIServicesKind">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Enumeration holding the names of all ACSI services, as defined in Part 7-2. Is conceptually identical to the 7-2 ServiceNameKind enumeration (except the Unknown)."/>
@@ -390,7 +372,7 @@
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="base" eType="#//AbstractLNClassName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="base" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the abstract LN class this one extends (directly)."/>
       </eAnnotations>
@@ -471,15 +453,6 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="AttributeName" instanceClassName="java.lang.String">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Name of a Data Attribute."/>
-    </eAnnotations>
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="name" value="tAttributeName"/>
-      <details key="baseType" value="tIec61850Name"/>
-    </eAnnotations>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EDataType" name="AttributeTypeKind" instanceClassName="org.eclipse.emf.common.util.Enumerator">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Type kind of a data attribute, which may be &quot;undefined&quot;."/>
@@ -497,7 +470,7 @@
       <details key="name" value="tBasicType"/>
       <details key="kind" value="empty"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descID" eType="#//DocID">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Documentation identifier referring to a full description of this object."/>
       </eAnnotations>
@@ -506,7 +479,7 @@
         <details key="name" value="descID"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="#//BasicTypeName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the basic type (e.g., INT32), as used in SCL."/>
       </eAnnotations>
@@ -516,16 +489,6 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="BasicTypeName" instanceClassName="java.lang.String">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Type describing the name of a basic type of a data attribute."/>
-    </eAnnotations>
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="name" value="tBasicTypeName"/>
-      <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#token"/>
-      <details key="minLength" value="1"/>
-    </eAnnotations>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="BasicTypes">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="List of basic types for data attributes introduced by a namespace."/>
@@ -603,7 +566,7 @@
         <details key="name" value="enumParameterized"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="#//CDCName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the common data class."/>
       </eAnnotations>
@@ -643,16 +606,6 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="CDCName" instanceClassName="java.lang.String">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Name of a Common Data Class (CDC)."/>
-    </eAnnotations>
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="name" value="tCDCName"/>
-      <details key="baseType" value="tIec61850Name"/>
-      <details key="minLength" value="1"/>
-    </eAnnotations>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="CDCs">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="List of CDCs introduced by a namespace."/>
@@ -681,7 +634,7 @@
       <details key="name" value="tChanges"/>
       <details key="kind" value="empty"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="changesID" eType="#//DocID">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="changesID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Documentation identifier referring to a textual description of changes (not TISSUE list). Shall only be used for private namespaces."/>
       </eAnnotations>
@@ -709,7 +662,7 @@
         <details key="name" value="release"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="revision" eType="#//NSRevision"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="revision" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
         defaultValueLiteral="A" unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Revision of the namespace this NSD file is based on, per default 'A'."/>
@@ -719,7 +672,7 @@
         <details key="name" value="revision"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="tissues" eType="#//issuesType">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="tissues" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Comma-separated list of TISSUE numbers that were implemented since the previous namespace version/revision/release."/>
       </eAnnotations>
@@ -755,7 +708,7 @@
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="#//Iec61850Name">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the constructed (structured) data attribute."/>
       </eAnnotations>
@@ -867,7 +820,7 @@
         <details key="name" value="dupd"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="fc" lowerBound="1" eType="#//FCAbbreviation">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="fc" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Functional constraint of the data attribute."/>
       </eAnnotations>
@@ -886,7 +839,7 @@
         <details key="name" value="isArray"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxIndexAttribute" eType="#//AttributeName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxIndexAttribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the Attribute holding the maximal index of the array.&#xA;Is relevant information if and only if isArray=true. One and only one of sizeAttribute and maxIndexAttribute shall be used."/>
       </eAnnotations>
@@ -923,7 +876,7 @@
         <details key="name" value="minValue"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="#//AttributeName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the data attribute."/>
       </eAnnotations>
@@ -932,7 +885,7 @@
         <details key="name" value="name"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCond" eType="#//PresenceConditionName"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCond" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
         defaultValueLiteral="M" unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Presence condition of the element. By default 'M' (mandatory)."/>
@@ -942,7 +895,7 @@
         <details key="name" value="presCond"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgs" eType="#//PresenceConditionArgument">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgs" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Optional argument to the presence condition. Can be a sibling element or a group number."/>
       </eAnnotations>
@@ -951,7 +904,7 @@
         <details key="name" value="presCondArgs"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgsID" eType="#//DocID">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgsID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Optional argument to the presence condition: a documentation identifier referring to some free text."/>
       </eAnnotations>
@@ -967,7 +920,7 @@
         <details key="name" value="qchg"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="sizeAttribute" eType="#//AttributeName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="sizeAttribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Sibling data attribute name holding the size of the array.&#xA;Is relevant information if and only if isArray=true. One and only one of sizeAttribute and maxIndexAttribute shall be used."/>
       </eAnnotations>
@@ -976,7 +929,7 @@
         <details key="name" value="sizeAttribute"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//Iec61850Name">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The type of the data attribute, e.g., the name of a basic type like INT32, the name of an enumeration of a constructed data attribute - depending on the sibling typeKind. If not provided, shall be defined by the &quot;parent&quot; element."/>
       </eAnnotations>
@@ -1004,7 +957,7 @@
       <details key="name" value="tDataObject"/>
       <details key="kind" value="empty"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="dsPresCond" eType="#//PresenceConditionName"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="dsPresCond" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
         defaultValueLiteral="M" unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Presence condition of the element. By default 'M' (mandatory)."/>
@@ -1014,7 +967,7 @@
         <details key="name" value="dsPresCond"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="dsPresCondArgs" eType="#//PresenceConditionArgument">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="dsPresCondArgs" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Optional argument to the presence condition. Can be a sibling element or a group number."/>
       </eAnnotations>
@@ -1023,7 +976,7 @@
         <details key="name" value="dsPresCondArgs"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="dsPresCondArgsID" eType="#//DocID">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="dsPresCondArgsID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Optional argument to the presence condition: a documentation identifier referring to some free text."/>
       </eAnnotations>
@@ -1032,7 +985,7 @@
         <details key="name" value="dsPresCondArgsID"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="#//DataObjectName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the data object."/>
       </eAnnotations>
@@ -1041,7 +994,7 @@
         <details key="name" value="name"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCond" eType="#//PresenceConditionName"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCond" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
         defaultValueLiteral="M" unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Presence condition of the element. By default 'M' (mandatory)."/>
@@ -1051,7 +1004,7 @@
         <details key="name" value="presCond"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgs" eType="#//PresenceConditionArgument">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgs" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Optional argument to the presence condition. Can be a sibling element or a group number."/>
       </eAnnotations>
@@ -1060,7 +1013,7 @@
         <details key="name" value="presCondArgs"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgsID" eType="#//DocID">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgsID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Optional argument to the presence condition: a documentation identifier referring to some free text."/>
       </eAnnotations>
@@ -1079,7 +1032,7 @@
         <details key="name" value="transient"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="#//CDCName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Type of the data object, i.e., the name of the CDC."/>
       </eAnnotations>
@@ -1088,7 +1041,7 @@
         <details key="name" value="type"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="underlyingType" eType="#//Iec61850Name">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="underlyingType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Type to be used for type-open CDCs, e.g., enumeration to be used for enumeration-based CDCs (e.g., ENS, ENC, ENG)."/>
       </eAnnotations>
@@ -1108,16 +1061,6 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="DataObjectName" instanceClassName="java.lang.String">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Name of a Data Object."/>
-    </eAnnotations>
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="name" value="tDataObjectName"/>
-      <details key="baseType" value="tIec61850Name"/>
-      <details key="maxLength" value="12"/>
-    </eAnnotations>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DataSetMemberOf">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Indication of a given object can be a data set member of a given control block."/>
@@ -1200,7 +1143,7 @@
         <details key="group" value="#group:1"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="#//DocID">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Identifier of the documentation string."/>
       </eAnnotations>
@@ -1210,16 +1153,6 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="DocID" instanceClassName="java.lang.String">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Identifier referring to a documentation string, available in a sibling file."/>
-    </eAnnotations>
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="name" value="tDocID"/>
-      <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#normalizedString"/>
-      <details key="minLength" value="1"/>
-    </eAnnotations>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DocumentedClass">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A class with description."/>
@@ -1238,7 +1171,7 @@
         <details key="name" value="deprecated"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descID" eType="#//DocID">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Documentation identifier referring to a full description of this object."/>
       </eAnnotations>
@@ -1258,16 +1191,6 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="EmptyString" instanceClassName="java.lang.String">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="The empty string."/>
-    </eAnnotations>
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="name" value="tEmptyString"/>
-      <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#normalizedString"/>
-      <details key="maxLength" value="0"/>
-    </eAnnotations>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Enumeration" eSuperTypes="#//TitledClass">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Definition of an enumeration."/>
@@ -1284,7 +1207,7 @@
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="inheritedFrom" eType="#//Iec61850Name">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="inheritedFrom" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the enumeration which is extended by the current enumeration."/>
       </eAnnotations>
@@ -1293,7 +1216,7 @@
         <details key="name" value="inheritedFrom"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="#//Iec61850Name">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the enumeration."/>
       </eAnnotations>
@@ -1323,17 +1246,6 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="FCAbbreviation" instanceClassName="java.lang.String">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Functional Constraint abbreviation."/>
-    </eAnnotations>
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="name" value="tFCAbbreviation"/>
-      <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#token"/>
-      <details key="minLength" value="1"/>
-      <details key="pattern" value="[\p{IsBasicLatin}]+"/>
-    </eAnnotations>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="FunctionalConstraint">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Definition of a Functional Constraint."/>
@@ -1351,7 +1263,7 @@
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="abbreviation" lowerBound="1"
-        eType="#//FCAbbreviation">
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Abbreviated name of the FC (e.g., ST, MX, etc.)."/>
       </eAnnotations>
@@ -1360,7 +1272,7 @@
         <details key="name" value="abbreviation"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descID" eType="#//DocID">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Documentation identifier referring to a full description of this object."/>
       </eAnnotations>
@@ -1369,7 +1281,7 @@
         <details key="name" value="descID"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="titleID" eType="#//DocID">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="titleID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Documentation identifier referring to the title (alias) of this object."/>
       </eAnnotations>
@@ -1399,28 +1311,6 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="Iec61850Name" instanceClassName="java.lang.String">
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="name" value="tIec61850Name"/>
-      <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#Name"/>
-      <details key="minLength" value="1"/>
-      <details key="pattern" value="[\p{IsBasicLatin}\p{IsLatin-1Supplement}]+"/>
-    </eAnnotations>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="Iec61850NameString" instanceClassName="java.lang.String">
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="name" value="tIec61850NameString"/>
-      <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#normalizedString"/>
-      <details key="pattern" value="[\p{IsBasicLatin}\p{IsLatin-1Supplement}]+"/>
-    </eAnnotations>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="issuesType" instanceClassName="java.lang.String">
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="name" value="tissues_._type"/>
-      <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#normalizedString"/>
-      <details key="minLength" value="1"/>
-    </eAnnotations>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="License">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Describe the license definition."/>
@@ -1491,7 +1381,7 @@
         <details key="name" value="literalVal"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="#//LiteralName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the enumeration's literal."/>
       </eAnnotations>
@@ -1501,17 +1391,6 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="LiteralName" instanceClassName="java.lang.String">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Name of an enumeration literal. Maybe the empty string."/>
-    </eAnnotations>
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="name" value="tLiteralName"/>
-      <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#normalizedString"/>
-      <details key="maxLength" value="127"/>
-      <details key="pattern" value="[\p{IsBasicLatin}\p{IsLatin-1Supplement}]*"/>
-    </eAnnotations>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="LNClass" eSuperTypes="#//AnyLNClass">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Definition of a concrete (i.e., not abstract) logical node and its contents. At most one of &quot;base&quot; and &quot;isExtension&quot; shall be defined."/>
@@ -1540,7 +1419,7 @@
         <details key="name" value="isExtension"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="#//LNClassName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The logical node class name."/>
       </eAnnotations>
@@ -1581,16 +1460,6 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="LNClassName" instanceClassName="java.lang.String">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Name of a (non-abstract) logical node class."/>
-    </eAnnotations>
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="name" value="tLNClassName"/>
-      <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#Name"/>
-      <details key="pattern" value="LLN0 [A-Z]{4}"/>
-    </eAnnotations>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Notice">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Textual notice"/>
@@ -1725,7 +1594,7 @@
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descID" eType="#//DocID">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Documentation identifier referring to a full description of this NS."/>
       </eAnnotations>
@@ -1734,7 +1603,7 @@
         <details key="name" value="descID"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="#//NSIdentifier">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Identifier of the namespace, e.g., &quot;IEC 61850-7-4&quot;, &quot;(Tr)IEC 61850-90-4&quot;."/>
       </eAnnotations>
@@ -1763,7 +1632,7 @@
         <details key="name" value="release"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="revision" eType="#//NSRevision"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="revision" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
         defaultValueLiteral="A" unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Revision of the namespace version, by default 'A'."/>
@@ -1782,7 +1651,7 @@
         <details key="name" value="umlDate"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="umlVersion" eType="#//UMLVersion">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="umlVersion" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Version of UML from which this namespace definition file was generated from."/>
       </eAnnotations>
@@ -1821,7 +1690,7 @@
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="#//NSIdentifier">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Identifier of the namespace, e.g., &quot;IEC 61850-7-4&quot;, &quot;(Tr)IEC 61850-90-4&quot;."/>
       </eAnnotations>
@@ -1859,7 +1728,7 @@
         <details key="name" value="release"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="revision" eType="#//NSRevision"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="revision" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
         defaultValueLiteral="A" unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Revision of the namespace version, by default 'A'."/>
@@ -1878,7 +1747,7 @@
         <details key="name" value="umlDate"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="umlVersion" eType="#//UMLVersion">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="umlVersion" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Version of UML from which this namespace definition file was generated from."/>
       </eAnnotations>
@@ -1898,16 +1767,6 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="NSIdentifier" instanceClassName="java.lang.String">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Identifier of a namespace."/>
-    </eAnnotations>
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="name" value="tNSIdentifier"/>
-      <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#normalizedString"/>
-      <details key="pattern" value="\p{IsBasicLatin}+"/>
-    </eAnnotations>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EDataType" name="NSRelease" instanceClassName="short">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Release of a namespace (number between 1 and 255), distinguishing between releases of a same namespace version and revision."/>
@@ -1924,16 +1783,6 @@
       <details key="baseType" value="tNSRelease"/>
     </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="NSRevision" instanceClassName="java.lang.String">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Revision of a namespace (a basic latin upper-case letter), distinguishing between revisions of a same namespace version."/>
-    </eAnnotations>
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="name" value="tNSRevision"/>
-      <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#token"/>
-      <details key="pattern" value="[A-Z]"/>
-    </eAnnotations>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EDataType" name="NSVersion" instanceClassName="int">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Version of a namespace (a year between 2002 and 2099)."/>
@@ -1959,7 +1808,7 @@
       <details key="name" value="tPresenceCondition"/>
       <details key="kind" value="empty"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="argument" eType="#//PresenceConditionArgument">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="argument" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The presence condition argument, if any."/>
       </eAnnotations>
@@ -1968,7 +1817,7 @@
         <details key="name" value="argument"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descID" eType="#//DocID">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Documentation identifier referring to a full description of this object."/>
       </eAnnotations>
@@ -1977,7 +1826,7 @@
         <details key="name" value="descID"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="#//PresenceConditionName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the presence condition, as used in IEC 61850 data models."/>
       </eAnnotations>
@@ -1986,7 +1835,7 @@
         <details key="name" value="name"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="titleID" eType="#//DocID">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="titleID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Documentation identifier referring to the title (alias) of this object."/>
       </eAnnotations>
@@ -1996,24 +1845,6 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="PresenceConditionArgument" instanceClassName="java.lang.String">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Argument to (some) presence conditions."/>
-    </eAnnotations>
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="name" value="tPresenceConditionArgument"/>
-      <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#normalizedString"/>
-    </eAnnotations>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="PresenceConditionName" instanceClassName="java.lang.String">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Name of a presence condition of a child."/>
-    </eAnnotations>
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="name" value="tPresenceConditionName"/>
-      <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#normalizedString"/>
-    </eAnnotations>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="PresenceConditions">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="List of presence conditions which are introduced by a namespace."/>
@@ -2112,7 +1943,7 @@
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="cdc" lowerBound="1" eType="#//CDCName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="cdc" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the common data class the service extension is for."/>
       </eAnnotations>
@@ -2200,7 +2031,7 @@
       <details key="name" value="tServiceDataAttribute"/>
       <details key="kind" value="empty"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="fc" lowerBound="1" eType="#//FCAbbreviation">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="fc" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Functional constraint of the data attribute."/>
       </eAnnotations>
@@ -2209,7 +2040,7 @@
         <details key="name" value="fc"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="#//AttributeName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the data attribute."/>
       </eAnnotations>
@@ -2218,7 +2049,7 @@
         <details key="name" value="name"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCond" eType="#//PresenceConditionName"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCond" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
         defaultValueLiteral="M" unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Presence condition of the element. By default 'M' (mandatory)."/>
@@ -2228,7 +2059,7 @@
         <details key="name" value="presCond"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgs" eType="#//PresenceConditionArgument">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgs" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Optional argument to the presence condition. Can be a sibling element or a group number."/>
       </eAnnotations>
@@ -2237,7 +2068,7 @@
         <details key="name" value="presCondArgs"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgsID" eType="#//DocID">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgsID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Optional argument to the presence condition: a documentation identifier referring to some free text."/>
       </eAnnotations>
@@ -2246,7 +2077,7 @@
         <details key="name" value="presCondArgsID"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//Iec61850Name">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The type of the data attribute, e.g., the name of a basic type like INT32, the name of an enumeration of a constructed data attribute - depending on the sibling typeKind. If not provided, shall be defined by the &quot;parent&quot; element."/>
       </eAnnotations>
@@ -2265,7 +2096,7 @@
         <details key="name" value="typeKind"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="underlyingType" eType="#//Iec61850Name">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="underlyingType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Type to be used for type-open CDCs, e.g., enumeration to be used for enumeration-based CDCs (e.g., ENS, ENC, ENG)."/>
       </eAnnotations>
@@ -2370,7 +2201,7 @@
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descID" eType="#//DocID">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Documentation identifier referring to a full description of this NS."/>
       </eAnnotations>
@@ -2379,7 +2210,7 @@
         <details key="name" value="descID"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="#//NSIdentifier">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Identifier of the namespace, e.g., &quot;IEC 61850-7-4&quot;, &quot;(Tr)IEC 61850-90-4&quot;."/>
       </eAnnotations>
@@ -2408,7 +2239,7 @@
         <details key="name" value="release"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="revision" eType="#//NSRevision"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="revision" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
         defaultValueLiteral="A" unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Revision of the namespace version, by default 'A'."/>
@@ -2427,7 +2258,7 @@
         <details key="name" value="umlDate"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="umlVersion" eType="#//UMLVersion">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="umlVersion" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Version of UML from which this namespace definition file was generated from."/>
       </eAnnotations>
@@ -2466,7 +2297,7 @@
         <details key="namespace" value="##targetNamespace"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="#//NSIdentifier">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Identifier of the namespace, e.g., &quot;IEC 61850-7-4&quot;, &quot;(Tr)IEC 61850-90-4&quot;."/>
       </eAnnotations>
@@ -2495,7 +2326,7 @@
         <details key="name" value="release"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="revision" eType="#//NSRevision"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="revision" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
         defaultValueLiteral="A" unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Revision of the namespace version, by default 'A'."/>
@@ -2551,7 +2382,7 @@
         <details key="name" value="minValue"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="#//AttributeName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the data attribute."/>
       </eAnnotations>
@@ -2560,7 +2391,7 @@
         <details key="name" value="name"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//Iec61850Name">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The type of the data attribute, e.g., the name of a basic type like INT32, the name of an enumeration of a constructed data attribute - depending on the sibling typeKind. If not provided, shall be defined by the &quot;parent&quot; element."/>
       </eAnnotations>
@@ -2588,7 +2419,7 @@
       <details key="name" value="tServiceTypeRealization"/>
       <details key="kind" value="empty"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="fc" lowerBound="1" eType="#//FCAbbreviation">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="fc" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Functional constraint of the data attribute."/>
       </eAnnotations>
@@ -2597,7 +2428,7 @@
         <details key="name" value="fc"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="#//AttributeName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the data attribute."/>
       </eAnnotations>
@@ -2606,7 +2437,7 @@
         <details key="name" value="name"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCond" eType="#//PresenceConditionName"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCond" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
         defaultValueLiteral="M" unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Presence condition of the element. By default 'M' (mandatory)."/>
@@ -2616,7 +2447,7 @@
         <details key="name" value="presCond"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgs" eType="#//PresenceConditionArgument">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgs" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Optional argument to the presence condition. Can be a sibling element or a group number."/>
       </eAnnotations>
@@ -2625,7 +2456,7 @@
         <details key="name" value="presCondArgs"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgsID" eType="#//DocID">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgsID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Optional argument to the presence condition: a documentation identifier referring to some free text."/>
       </eAnnotations>
@@ -2634,7 +2465,7 @@
         <details key="name" value="presCondArgsID"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//Iec61850Name">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The type of the data attribute, e.g., the name of a basic type like INT32, the name of an enumeration of a constructed data attribute - depending on the sibling typeKind. If not provided, shall be defined by the &quot;parent&quot; element."/>
       </eAnnotations>
@@ -2701,7 +2532,7 @@
         <details key="name" value="isArray"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxIndexAttribute" eType="#//AttributeName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxIndexAttribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the Attribute holding the maximal index of the array.&#xA;Is relevant information if and only if isArray=true. One and only one of sizeAttribute and maxIndexAttribute shall be used."/>
       </eAnnotations>
@@ -2738,7 +2569,7 @@
         <details key="name" value="minValue"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="#//AttributeName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the data attribute."/>
       </eAnnotations>
@@ -2747,7 +2578,7 @@
         <details key="name" value="name"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCond" eType="#//PresenceConditionName"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCond" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
         defaultValueLiteral="M" unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Presence condition of the element. By default 'M' (mandatory)."/>
@@ -2757,7 +2588,7 @@
         <details key="name" value="presCond"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgs" eType="#//PresenceConditionArgument">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgs" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Optional argument to the presence condition. Can be a sibling element or a group number."/>
       </eAnnotations>
@@ -2766,7 +2597,7 @@
         <details key="name" value="presCondArgs"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgsID" eType="#//DocID">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgsID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Optional argument to the presence condition: a documentation identifier referring to some free text."/>
       </eAnnotations>
@@ -2775,7 +2606,7 @@
         <details key="name" value="presCondArgsID"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="sizeAttribute" eType="#//AttributeName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="sizeAttribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Sibling data attribute name holding the size of the array.&#xA;Is relevant information if and only if isArray=true. One and only one of sizeAttribute and maxIndexAttribute shall be used."/>
       </eAnnotations>
@@ -2784,7 +2615,7 @@
         <details key="name" value="sizeAttribute"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//Iec61850Name">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="The type of the data attribute, e.g., the name of a basic type like INT32, the name of an enumeration of a constructed data attribute - depending on the sibling typeKind. If not provided, shall be defined by the &quot;parent&quot; element."/>
       </eAnnotations>
@@ -2822,7 +2653,7 @@
         <details key="name" value="isArray"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxIndexAttribute" eType="#//AttributeName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxIndexAttribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the Attribute holding the maximal index of the array.&#xA;Is relevant information if and only if isArray=true. One and only one of sizeAttribute and maxIndexAttribute shall be used."/>
       </eAnnotations>
@@ -2841,7 +2672,7 @@
         <details key="name" value="minIndex"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="#//SubDataObjectName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the Sub-Data Object."/>
       </eAnnotations>
@@ -2850,7 +2681,7 @@
         <details key="name" value="name"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCond" eType="#//PresenceConditionName"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCond" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
         defaultValueLiteral="M" unsettable="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Presence condition of the element. By default 'M' (mandatory)."/>
@@ -2860,7 +2691,7 @@
         <details key="name" value="presCond"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgs" eType="#//PresenceConditionArgument">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgs" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Optional argument to the presence condition. Can be a sibling element or a group number."/>
       </eAnnotations>
@@ -2869,7 +2700,7 @@
         <details key="name" value="presCondArgs"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgsID" eType="#//DocID">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="presCondArgsID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Optional argument to the presence condition: a documentation identifier referring to some free text."/>
       </eAnnotations>
@@ -2878,7 +2709,7 @@
         <details key="name" value="presCondArgsID"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="sizeAttribute" eType="#//AttributeName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="sizeAttribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Sibling data attribute name holding the size of the array.&#xA;Is relevant information if and only if isArray=true. One and only one of sizeAttribute and maxIndexAttribute shall be used."/>
       </eAnnotations>
@@ -2887,7 +2718,7 @@
         <details key="name" value="sizeAttribute"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="#//CDCName">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Type of the SubDataObject, i.e., its CDC."/>
       </eAnnotations>
@@ -2896,7 +2727,7 @@
         <details key="name" value="type"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="underlyingType" eType="#//Iec61850Name">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="underlyingType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Type to be used for type-open CDCs, e.g., enumeration to be used for enumeration-based CDCs (e.g., ENS, ENC, ENG)."/>
       </eAnnotations>
@@ -2916,15 +2747,6 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="SubDataObjectName" instanceClassName="java.lang.String">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Name of a Sub-Data Object."/>
-    </eAnnotations>
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="name" value="tSubDataObjectName"/>
-      <details key="baseType" value="tIec61850Name"/>
-    </eAnnotations>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="TitledClass" eSuperTypes="#//DocumentedClass">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A tDocumentedClass with title."/>
@@ -2934,7 +2756,7 @@
       <details key="kind" value="empty"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="titleID" lowerBound="1"
-        eType="#//DocID">
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Documentation identifier referring to the title (alias) of this object."/>
       </eAnnotations>
@@ -2944,16 +2766,6 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EDataType" name="UMLVersion" instanceClassName="java.lang.String">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="Version of the UML model used to generate this NSD."/>
-    </eAnnotations>
-    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-      <details key="name" value="tUMLVersion"/>
-      <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#Name"/>
-      <details key="minLength" value="1"/>
-    </eAnnotations>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="UndefinedAttributeTypeKind">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Type kind for a data attribute which has its type &quot;undefined&quot;."/>
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel
index 3c71784f26b103cf0c05910045946e57401d07c1..5c97dd48c96688377ff65b3ced461f4fcb3604ef 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel
@@ -100,36 +100,16 @@
     <genEnums typeSafeEnumCompatible="false" ecoreEnum="nsd.ecore#//UndefinedAttributeTypeKind">
       <genEnumLiterals ecoreEnumLiteral="nsd.ecore#//UndefinedAttributeTypeKind/undefined"/>
     </genEnums>
-    <genDataTypes ecoreDataType="nsd.ecore#//AbbreviationName"/>
-    <genDataTypes ecoreDataType="nsd.ecore#//AbstractLNClassName"/>
     <genDataTypes ecoreDataType="nsd.ecore#//ACSIServicesKindObject"/>
-    <genDataTypes ecoreDataType="nsd.ecore#//AttributeName"/>
     <genDataTypes ecoreDataType="nsd.ecore#//AttributeTypeKind"/>
-    <genDataTypes ecoreDataType="nsd.ecore#//BasicTypeName"/>
     <genDataTypes ecoreDataType="nsd.ecore#//CBKindObject"/>
-    <genDataTypes ecoreDataType="nsd.ecore#//CDCName"/>
-    <genDataTypes ecoreDataType="nsd.ecore#//DataObjectName"/>
     <genDataTypes ecoreDataType="nsd.ecore#//DefinedAttributeTypeKindObject"/>
-    <genDataTypes ecoreDataType="nsd.ecore#//DocID"/>
-    <genDataTypes ecoreDataType="nsd.ecore#//EmptyString"/>
-    <genDataTypes ecoreDataType="nsd.ecore#//FCAbbreviation"/>
-    <genDataTypes ecoreDataType="nsd.ecore#//Iec61850Name"/>
-    <genDataTypes ecoreDataType="nsd.ecore#//Iec61850NameString"/>
-    <genDataTypes ecoreDataType="nsd.ecore#//issuesType"/>
     <genDataTypes ecoreDataType="nsd.ecore#//LicenseKindObject"/>
-    <genDataTypes ecoreDataType="nsd.ecore#//LiteralName"/>
-    <genDataTypes ecoreDataType="nsd.ecore#//LNClassName"/>
-    <genDataTypes ecoreDataType="nsd.ecore#//NSIdentifier"/>
     <genDataTypes ecoreDataType="nsd.ecore#//NSRelease"/>
     <genDataTypes ecoreDataType="nsd.ecore#//NSReleaseObject"/>
-    <genDataTypes ecoreDataType="nsd.ecore#//NSRevision"/>
     <genDataTypes ecoreDataType="nsd.ecore#//NSVersion"/>
     <genDataTypes ecoreDataType="nsd.ecore#//NSVersionObject"/>
-    <genDataTypes ecoreDataType="nsd.ecore#//PresenceConditionArgument"/>
-    <genDataTypes ecoreDataType="nsd.ecore#//PresenceConditionName"/>
     <genDataTypes ecoreDataType="nsd.ecore#//PubStageObject"/>
-    <genDataTypes ecoreDataType="nsd.ecore#//SubDataObjectName"/>
-    <genDataTypes ecoreDataType="nsd.ecore#//UMLVersion"/>
     <genDataTypes ecoreDataType="nsd.ecore#//UndefinedAttributeTypeKindObject"/>
     <genClasses ecoreClass="nsd.ecore#//AppliesToType">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//AppliesToType/id"/>
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 e37118b209ccd3b0aee871c9378c25a2faa0f569..cf303875e3931ad0961b2d89cfd64cc383aaa4fd 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
@@ -53,8 +53,7 @@ public interface Abbreviation extends EObject {
      * @return the value of the '<em>Desc ID</em>' attribute.
      * @see #setDescID(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAbbreviation_DescID()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocID"
-     *        extendedMetaData="kind='attribute' name='descID'"
+     * @model extendedMetaData="kind='attribute' name='descID'"
      * @generated
      */
     String getDescID();
@@ -79,7 +78,7 @@ public interface Abbreviation extends EObject {
      * @return the value of the '<em>Name</em>' attribute.
      * @see #setName(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAbbreviation_Name()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbbreviationName" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='name'"
      * @generated
      */
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 2932e9e49474c53a4408a76b7ef01e65c4b1d8bf..7cd2accfb982a0182500b53b1a01a458721637fb 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
@@ -50,7 +50,7 @@ public interface AbstractLNClass extends AnyLNClass {
      * @return the value of the '<em>Name</em>' attribute.
      * @see #setName(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAbstractLNClass_Name()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClassName" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='name'"
      * @generated
      */
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 9f4beb38742735ceb35a2527f0e53e6c2b5804ed..b197973e24edcc81895c44a31a0d6715258fd0a7 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
@@ -70,8 +70,7 @@ public interface AnyLNClass extends TitledClass {
      * @return the value of the '<em>Base</em>' attribute.
      * @see #setBase(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAnyLNClass_Base()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClassName"
-     *        extendedMetaData="kind='attribute' name='base'"
+     * @model extendedMetaData="kind='attribute' name='base'"
      * @generated
      */
     String getBase();
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 0daa1144ec191b6a29a55e8647b307455dae3378..d8ff24a5409155d8d27c2f651915a5943eb2c19d 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
@@ -52,7 +52,7 @@ public interface AppliesToType extends EObject {
      * @return the value of the '<em>Id</em>' attribute.
      * @see #setId(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAppliesToType_Id()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.NSIdentifier" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='id'"
      * @generated
      */
@@ -192,7 +192,7 @@ public interface AppliesToType extends EObject {
      * @see #unsetRevision()
      * @see #setRevision(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAppliesToType_Revision()
-     * @model default="A" unsettable="true" dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.NSRevision"
+     * @model default="A" unsettable="true"
      *        extendedMetaData="kind='attribute' name='revision'"
      * @generated
      */
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 0706d51ffa92fd7d99708693f6da27a6e9b0fe93..6a8bdf8bd3e47ef1ba36a0ce9821c03128835c10 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
@@ -53,8 +53,7 @@ public interface BasicType extends EObject {
      * @return the value of the '<em>Desc ID</em>' attribute.
      * @see #setDescID(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getBasicType_DescID()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocID"
-     *        extendedMetaData="kind='attribute' name='descID'"
+     * @model extendedMetaData="kind='attribute' name='descID'"
      * @generated
      */
     String getDescID();
@@ -79,7 +78,7 @@ public interface BasicType extends EObject {
      * @return the value of the '<em>Name</em>' attribute.
      * @see #setName(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getBasicType_Name()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypeName" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='name'"
      * @generated
      */
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 bfdb5fe34068891332a40c57de24f89039cc516b..fc3d8d7bf65b7d04a3d805fa14c825a0c7487cbc 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
@@ -174,7 +174,7 @@ public interface CDC extends TitledClass {
      * @return the value of the '<em>Name</em>' attribute.
      * @see #setName(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getCDC_Name()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCName" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='name'"
      * @generated
      */
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 7ae81c9d6cc3af635382931df2adaff0e83c0ece..af6feb7d71a20ef25ef4d9d4ae83b0cc84e9a25c 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
@@ -59,8 +59,7 @@ public interface Changes extends EObject {
      * @return the value of the '<em>Changes ID</em>' attribute.
      * @see #setChangesID(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getChanges_ChangesID()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocID"
-     *        extendedMetaData="kind='attribute' name='changesID'"
+     * @model extendedMetaData="kind='attribute' name='changesID'"
      * @generated
      */
     String getChangesID();
@@ -168,7 +167,7 @@ public interface Changes extends EObject {
      * @see #unsetRevision()
      * @see #setRevision(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getChanges_Revision()
-     * @model default="A" unsettable="true" dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.NSRevision"
+     * @model default="A" unsettable="true"
      *        extendedMetaData="kind='attribute' name='revision'"
      * @generated
      */
@@ -219,8 +218,7 @@ public interface Changes extends EObject {
      * @return the value of the '<em>Tissues</em>' attribute.
      * @see #setTissues(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getChanges_Tissues()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.issuesType"
-     *        extendedMetaData="kind='attribute' name='tissues'"
+     * @model extendedMetaData="kind='attribute' name='tissues'"
      * @generated
      */
     String getTissues();
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 67a67f7100af165d82b9f8696215fe9938863dba..ccf9dea5f5a3800428d669c8c8c992d289de1f72 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
@@ -70,7 +70,7 @@ public interface ConstructedAttribute extends TitledClass {
      * @return the value of the '<em>Name</em>' attribute.
      * @see #setName(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getConstructedAttribute_Name()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.Iec61850Name" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='name'"
      * @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 d7ef85c13b5b2031f306478e634c0b6caf74ae3d..2899eab135a4bd33fd499abf93251fb468bdbcdd 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
@@ -206,7 +206,7 @@ public interface DataAttribute extends DocumentedClass {
      * @return the value of the '<em>Fc</em>' attribute.
      * @see #setFc(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataAttribute_Fc()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.FCAbbreviation" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='fc'"
      * @generated
      */
@@ -287,8 +287,7 @@ public interface DataAttribute extends DocumentedClass {
      * @return the value of the '<em>Max Index Attribute</em>' attribute.
      * @see #setMaxIndexAttribute(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataAttribute_MaxIndexAttribute()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.AttributeName"
-     *        extendedMetaData="kind='attribute' name='maxIndexAttribute'"
+     * @model extendedMetaData="kind='attribute' name='maxIndexAttribute'"
      * @generated
      */
     String getMaxIndexAttribute();
@@ -421,7 +420,7 @@ public interface DataAttribute extends DocumentedClass {
      * @return the value of the '<em>Name</em>' attribute.
      * @see #setName(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataAttribute_Name()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.AttributeName" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='name'"
      * @generated
      */
@@ -450,7 +449,7 @@ public interface DataAttribute extends DocumentedClass {
      * @see #unsetPresCond()
      * @see #setPresCond(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataAttribute_PresCond()
-     * @model default="M" unsettable="true" dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditionName"
+     * @model default="M" unsettable="true"
      *        extendedMetaData="kind='attribute' name='presCond'"
      * @generated
      */
@@ -501,8 +500,7 @@ public interface DataAttribute extends DocumentedClass {
      * @return the value of the '<em>Pres Cond Args</em>' attribute.
      * @see #setPresCondArgs(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataAttribute_PresCondArgs()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditionArgument"
-     *        extendedMetaData="kind='attribute' name='presCondArgs'"
+     * @model extendedMetaData="kind='attribute' name='presCondArgs'"
      * @generated
      */
     String getPresCondArgs();
@@ -527,8 +525,7 @@ public interface DataAttribute extends DocumentedClass {
      * @return the value of the '<em>Pres Cond Args ID</em>' attribute.
      * @see #setPresCondArgsID(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataAttribute_PresCondArgsID()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocID"
-     *        extendedMetaData="kind='attribute' name='presCondArgsID'"
+     * @model extendedMetaData="kind='attribute' name='presCondArgsID'"
      * @generated
      */
     String getPresCondArgsID();
@@ -609,8 +606,7 @@ public interface DataAttribute extends DocumentedClass {
      * @return the value of the '<em>Size Attribute</em>' attribute.
      * @see #setSizeAttribute(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataAttribute_SizeAttribute()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.AttributeName"
-     *        extendedMetaData="kind='attribute' name='sizeAttribute'"
+     * @model extendedMetaData="kind='attribute' name='sizeAttribute'"
      * @generated
      */
     String getSizeAttribute();
@@ -635,8 +631,7 @@ public interface DataAttribute extends DocumentedClass {
      * @return the value of the '<em>Type</em>' attribute.
      * @see #setType(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataAttribute_Type()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.Iec61850Name"
-     *        extendedMetaData="kind='attribute' name='type'"
+     * @model extendedMetaData="kind='attribute' name='type'"
      * @generated
      */
     String getType();
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 bd440ef52de08dc53582864243ed04137f9701cc..2a723fe77054dcc816d375a42c33df7e9e68efbf 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
@@ -63,7 +63,7 @@ public interface DataObject extends DocumentedClass {
      * @see #unsetDsPresCond()
      * @see #setDsPresCond(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataObject_DsPresCond()
-     * @model default="M" unsettable="true" dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditionName"
+     * @model default="M" unsettable="true"
      *        extendedMetaData="kind='attribute' name='dsPresCond'"
      * @generated
      */
@@ -114,8 +114,7 @@ public interface DataObject extends DocumentedClass {
      * @return the value of the '<em>Ds Pres Cond Args</em>' attribute.
      * @see #setDsPresCondArgs(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataObject_DsPresCondArgs()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditionArgument"
-     *        extendedMetaData="kind='attribute' name='dsPresCondArgs'"
+     * @model extendedMetaData="kind='attribute' name='dsPresCondArgs'"
      * @generated
      */
     String getDsPresCondArgs();
@@ -140,8 +139,7 @@ public interface DataObject extends DocumentedClass {
      * @return the value of the '<em>Ds Pres Cond Args ID</em>' attribute.
      * @see #setDsPresCondArgsID(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataObject_DsPresCondArgsID()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocID"
-     *        extendedMetaData="kind='attribute' name='dsPresCondArgsID'"
+     * @model extendedMetaData="kind='attribute' name='dsPresCondArgsID'"
      * @generated
      */
     String getDsPresCondArgsID();
@@ -166,7 +164,7 @@ public interface DataObject extends DocumentedClass {
      * @return the value of the '<em>Name</em>' attribute.
      * @see #setName(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataObject_Name()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObjectName" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='name'"
      * @generated
      */
@@ -195,7 +193,7 @@ public interface DataObject extends DocumentedClass {
      * @see #unsetPresCond()
      * @see #setPresCond(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataObject_PresCond()
-     * @model default="M" unsettable="true" dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditionName"
+     * @model default="M" unsettable="true"
      *        extendedMetaData="kind='attribute' name='presCond'"
      * @generated
      */
@@ -246,8 +244,7 @@ public interface DataObject extends DocumentedClass {
      * @return the value of the '<em>Pres Cond Args</em>' attribute.
      * @see #setPresCondArgs(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataObject_PresCondArgs()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditionArgument"
-     *        extendedMetaData="kind='attribute' name='presCondArgs'"
+     * @model extendedMetaData="kind='attribute' name='presCondArgs'"
      * @generated
      */
     String getPresCondArgs();
@@ -272,8 +269,7 @@ public interface DataObject extends DocumentedClass {
      * @return the value of the '<em>Pres Cond Args ID</em>' attribute.
      * @see #setPresCondArgsID(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataObject_PresCondArgsID()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocID"
-     *        extendedMetaData="kind='attribute' name='presCondArgsID'"
+     * @model extendedMetaData="kind='attribute' name='presCondArgsID'"
      * @generated
      */
     String getPresCondArgsID();
@@ -352,7 +348,7 @@ public interface DataObject extends DocumentedClass {
      * @return the value of the '<em>Type</em>' attribute.
      * @see #setType(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataObject_Type()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCName" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='type'"
      * @generated
      */
@@ -378,8 +374,7 @@ public interface DataObject extends DocumentedClass {
      * @return the value of the '<em>Underlying Type</em>' attribute.
      * @see #setUnderlyingType(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataObject_UnderlyingType()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.Iec61850Name"
-     *        extendedMetaData="kind='attribute' name='underlyingType'"
+     * @model extendedMetaData="kind='attribute' name='underlyingType'"
      * @generated
      */
     String getUnderlyingType();
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DependsOnType.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DependsOnType.java
index 4815baee383a83983557b57b77436b0794d6ee90..6cd4d5bcce4aa1a970b5d0423ee165ebbfff5f39 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DependsOnType.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DependsOnType.java
@@ -52,7 +52,7 @@ public interface DependsOnType extends EObject {
      * @return the value of the '<em>Id</em>' attribute.
      * @see #setId(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDependsOnType_Id()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.NSIdentifier" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='id'"
      * @generated
      */
@@ -192,7 +192,7 @@ public interface DependsOnType extends EObject {
      * @see #unsetRevision()
      * @see #setRevision(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDependsOnType_Revision()
-     * @model default="A" unsettable="true" dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.NSRevision"
+     * @model default="A" unsettable="true"
      *        extendedMetaData="kind='attribute' name='revision'"
      * @generated
      */
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 3fa5c1bd6d4685054bde31eb79781460df02e67b..fdfbb2125f2c2d6072018948860d44a07d7bea91 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
@@ -108,7 +108,7 @@ public interface Doc extends EObject {
      * @return the value of the '<em>Id</em>' attribute.
      * @see #setId(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDoc_Id()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocID" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='id'"
      * @generated
      */
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DocumentedClass.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DocumentedClass.java
index 0a4ecc7b13f6e385628f2777d3e7de384adf0fb3..0c737563855313567994cfe15c3866bce171f1a5 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DocumentedClass.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DocumentedClass.java
@@ -108,8 +108,7 @@ public interface DocumentedClass extends EObject {
      * @return the value of the '<em>Desc ID</em>' attribute.
      * @see #setDescID(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDocumentedClass_DescID()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocID"
-     *        extendedMetaData="kind='attribute' name='descID'"
+     * @model extendedMetaData="kind='attribute' name='descID'"
      * @generated
      */
     String getDescID();
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 8cd757a835fbb0374dca641054059b22f3d1ca02..cad7d78ef6903bf0a8fc2456b59f584bea64b513 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
@@ -71,8 +71,7 @@ public interface Enumeration extends TitledClass {
      * @return the value of the '<em>Inherited From</em>' attribute.
      * @see #setInheritedFrom(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getEnumeration_InheritedFrom()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.Iec61850Name"
-     *        extendedMetaData="kind='attribute' name='inheritedFrom'"
+     * @model extendedMetaData="kind='attribute' name='inheritedFrom'"
      * @generated
      */
     String getInheritedFrom();
@@ -97,7 +96,7 @@ public interface Enumeration extends TitledClass {
      * @return the value of the '<em>Name</em>' attribute.
      * @see #setName(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getEnumeration_Name()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.Iec61850Name" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='name'"
      * @generated
      */
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 fdc5dc60d43d4fd50f682479f78a259ee6c45fb9..86de5c9eb9db76763c98ef54c2ee0d2880cd542c 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
@@ -82,7 +82,7 @@ public interface FunctionalConstraint extends EObject {
      * @return the value of the '<em>Abbreviation</em>' attribute.
      * @see #setAbbreviation(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getFunctionalConstraint_Abbreviation()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.FCAbbreviation" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='abbreviation'"
      * @generated
      */
@@ -108,8 +108,7 @@ public interface FunctionalConstraint extends EObject {
      * @return the value of the '<em>Desc ID</em>' attribute.
      * @see #setDescID(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getFunctionalConstraint_DescID()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocID"
-     *        extendedMetaData="kind='attribute' name='descID'"
+     * @model extendedMetaData="kind='attribute' name='descID'"
      * @generated
      */
     String getDescID();
@@ -134,8 +133,7 @@ public interface FunctionalConstraint extends EObject {
      * @return the value of the '<em>Title ID</em>' attribute.
      * @see #setTitleID(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getFunctionalConstraint_TitleID()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocID"
-     *        extendedMetaData="kind='attribute' name='titleID'"
+     * @model extendedMetaData="kind='attribute' name='titleID'"
      * @generated
      */
     String getTitleID();
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 59b1168f76134e0d93ff5f7a02683031cf7268a9..844e537f18ccd05e59084d18fd21187d0dafe42e 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
@@ -160,7 +160,7 @@ public interface LNClass extends AnyLNClass {
      * @return the value of the '<em>Name</em>' attribute.
      * @see #setName(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getLNClass_Name()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClassName" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='name'"
      * @generated
      */
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 b9b05ff93b46447fffa70ce9c094d3d9bcb6cbac..a30b6794cce2f936b437c819cd5d0f9f6ff888c7 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
@@ -104,7 +104,7 @@ public interface Literal extends DocumentedClass {
      * @return the value of the '<em>Name</em>' attribute.
      * @see #setName(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getLiteral_Name()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.LiteralName" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='name'"
      * @generated
      */
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 0e768d81dd6798ccb36c767fcb0ab91b7c6ebb5f..69935ac19c6cc1fa8f760f88c1f58d8447ea599a 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
@@ -329,8 +329,7 @@ public interface NS extends Copyrighted {
      * @return the value of the '<em>Desc ID</em>' attribute.
      * @see #setDescID(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNS_DescID()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocID"
-     *        extendedMetaData="kind='attribute' name='descID'"
+     * @model extendedMetaData="kind='attribute' name='descID'"
      * @generated
      */
     String getDescID();
@@ -355,7 +354,7 @@ public interface NS extends Copyrighted {
      * @return the value of the '<em>Id</em>' attribute.
      * @see #setId(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNS_Id()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.NSIdentifier" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='id'"
      * @generated
      */
@@ -495,7 +494,7 @@ public interface NS extends Copyrighted {
      * @see #unsetRevision()
      * @see #setRevision(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNS_Revision()
-     * @model default="A" unsettable="true" dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.NSRevision"
+     * @model default="A" unsettable="true"
      *        extendedMetaData="kind='attribute' name='revision'"
      * @generated
      */
@@ -573,8 +572,7 @@ public interface NS extends Copyrighted {
      * @return the value of the '<em>Uml Version</em>' attribute.
      * @see #setUmlVersion(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNS_UmlVersion()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.UMLVersion"
-     *        extendedMetaData="kind='attribute' name='umlVersion'"
+     * @model extendedMetaData="kind='attribute' name='umlVersion'"
      * @generated
      */
     String getUmlVersion();
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 cf7f8c0d9bf782c8acb303340d6bdd500a140357..505b163ea0859b89547863b37a2743c7ab6204b8 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
@@ -78,7 +78,7 @@ public interface NSDoc extends Copyrighted {
      * @return the value of the '<em>Id</em>' attribute.
      * @see #setId(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNSDoc_Id()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.NSIdentifier" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='id'"
      * @generated
      */
@@ -244,7 +244,7 @@ public interface NSDoc extends Copyrighted {
      * @see #unsetRevision()
      * @see #setRevision(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNSDoc_Revision()
-     * @model default="A" unsettable="true" dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.NSRevision"
+     * @model default="A" unsettable="true"
      *        extendedMetaData="kind='attribute' name='revision'"
      * @generated
      */
@@ -322,8 +322,7 @@ public interface NSDoc extends Copyrighted {
      * @return the value of the '<em>Uml Version</em>' attribute.
      * @see #setUmlVersion(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNSDoc_UmlVersion()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.UMLVersion"
-     *        extendedMetaData="kind='attribute' name='umlVersion'"
+     * @model extendedMetaData="kind='attribute' name='umlVersion'"
      * @generated
      */
     String getUmlVersion();
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 97c715eceb2a29994e322d0d7fcdd48da0b51d8e..c189709f025f90aa9d87676c113cd123fd9d793e 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
@@ -4049,26 +4049,6 @@ public interface NsdPackage extends EPackage {
      */
     int UNDEFINED_ATTRIBUTE_TYPE_KIND = 55;
 
-    /**
-     * The meta object id for the '<em>Abbreviation Name</em>' data type.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see java.lang.String
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getAbbreviationName()
-     * @generated
-     */
-    int ABBREVIATION_NAME = 56;
-
-    /**
-     * The meta object id for the '<em>Abstract LN Class Name</em>' data type.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see java.lang.String
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getAbstractLNClassName()
-     * @generated
-     */
-    int ABSTRACT_LN_CLASS_NAME = 57;
-
     /**
      * The meta object id for the '<em>ACSI Services Kind Object</em>' data type.
      * <!-- begin-user-doc -->
@@ -4077,17 +4057,7 @@ public interface NsdPackage extends EPackage {
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getACSIServicesKindObject()
      * @generated
      */
-    int ACSI_SERVICES_KIND_OBJECT = 58;
-
-    /**
-     * The meta object id for the '<em>Attribute Name</em>' data type.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see java.lang.String
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getAttributeName()
-     * @generated
-     */
-    int ATTRIBUTE_NAME = 59;
+    int ACSI_SERVICES_KIND_OBJECT = 56;
 
     /**
      * The meta object id for the '<em>Attribute Type Kind</em>' data type.
@@ -4097,17 +4067,7 @@ public interface NsdPackage extends EPackage {
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getAttributeTypeKind()
      * @generated
      */
-    int ATTRIBUTE_TYPE_KIND = 60;
-
-    /**
-     * The meta object id for the '<em>Basic Type Name</em>' data type.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see java.lang.String
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getBasicTypeName()
-     * @generated
-     */
-    int BASIC_TYPE_NAME = 61;
+    int ATTRIBUTE_TYPE_KIND = 57;
 
     /**
      * The meta object id for the '<em>CB Kind Object</em>' data type.
@@ -4117,27 +4077,7 @@ public interface NsdPackage extends EPackage {
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getCBKindObject()
      * @generated
      */
-    int CB_KIND_OBJECT = 62;
-
-    /**
-     * The meta object id for the '<em>CDC Name</em>' data type.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see java.lang.String
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getCDCName()
-     * @generated
-     */
-    int CDC_NAME = 63;
-
-    /**
-     * The meta object id for the '<em>Data Object Name</em>' data type.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see java.lang.String
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getDataObjectName()
-     * @generated
-     */
-    int DATA_OBJECT_NAME = 64;
+    int CB_KIND_OBJECT = 58;
 
     /**
      * The meta object id for the '<em>Defined Attribute Type Kind Object</em>' data type.
@@ -4147,67 +4087,7 @@ public interface NsdPackage extends EPackage {
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getDefinedAttributeTypeKindObject()
      * @generated
      */
-    int DEFINED_ATTRIBUTE_TYPE_KIND_OBJECT = 65;
-
-    /**
-     * The meta object id for the '<em>Doc ID</em>' data type.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see java.lang.String
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getDocID()
-     * @generated
-     */
-    int DOC_ID = 66;
-
-    /**
-     * The meta object id for the '<em>Empty String</em>' data type.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see java.lang.String
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getEmptyString()
-     * @generated
-     */
-    int EMPTY_STRING = 67;
-
-    /**
-     * The meta object id for the '<em>FC Abbreviation</em>' data type.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see java.lang.String
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getFCAbbreviation()
-     * @generated
-     */
-    int FC_ABBREVIATION = 68;
-
-    /**
-     * The meta object id for the '<em>Iec61850 Name</em>' data type.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see java.lang.String
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getIec61850Name()
-     * @generated
-     */
-    int IEC61850_NAME = 69;
-
-    /**
-     * The meta object id for the '<em>Iec61850 Name String</em>' data type.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see java.lang.String
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getIec61850NameString()
-     * @generated
-     */
-    int IEC61850_NAME_STRING = 70;
-
-    /**
-     * The meta object id for the '<em>issues Type</em>' data type.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see java.lang.String
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getissuesType()
-     * @generated
-     */
-    int ISSUES_TYPE = 71;
+    int DEFINED_ATTRIBUTE_TYPE_KIND_OBJECT = 59;
 
     /**
      * The meta object id for the '<em>License Kind Object</em>' data type.
@@ -4217,37 +4097,7 @@ public interface NsdPackage extends EPackage {
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getLicenseKindObject()
      * @generated
      */
-    int LICENSE_KIND_OBJECT = 72;
-
-    /**
-     * The meta object id for the '<em>Literal Name</em>' data type.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see java.lang.String
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getLiteralName()
-     * @generated
-     */
-    int LITERAL_NAME = 73;
-
-    /**
-     * The meta object id for the '<em>LN Class Name</em>' data type.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see java.lang.String
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getLNClassName()
-     * @generated
-     */
-    int LN_CLASS_NAME = 74;
-
-    /**
-     * The meta object id for the '<em>NS Identifier</em>' data type.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see java.lang.String
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getNSIdentifier()
-     * @generated
-     */
-    int NS_IDENTIFIER = 75;
+    int LICENSE_KIND_OBJECT = 60;
 
     /**
      * The meta object id for the '<em>NS Release</em>' data type.
@@ -4256,7 +4106,7 @@ public interface NsdPackage extends EPackage {
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getNSRelease()
      * @generated
      */
-    int NS_RELEASE = 76;
+    int NS_RELEASE = 61;
 
     /**
      * The meta object id for the '<em>NS Release Object</em>' data type.
@@ -4266,17 +4116,7 @@ public interface NsdPackage extends EPackage {
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getNSReleaseObject()
      * @generated
      */
-    int NS_RELEASE_OBJECT = 77;
-
-    /**
-     * The meta object id for the '<em>NS Revision</em>' data type.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see java.lang.String
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getNSRevision()
-     * @generated
-     */
-    int NS_REVISION = 78;
+    int NS_RELEASE_OBJECT = 62;
 
     /**
      * The meta object id for the '<em>NS Version</em>' data type.
@@ -4285,7 +4125,7 @@ public interface NsdPackage extends EPackage {
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getNSVersion()
      * @generated
      */
-    int NS_VERSION = 79;
+    int NS_VERSION = 63;
 
     /**
      * The meta object id for the '<em>NS Version Object</em>' data type.
@@ -4295,27 +4135,7 @@ public interface NsdPackage extends EPackage {
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getNSVersionObject()
      * @generated
      */
-    int NS_VERSION_OBJECT = 80;
-
-    /**
-     * The meta object id for the '<em>Presence Condition Argument</em>' data type.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see java.lang.String
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getPresenceConditionArgument()
-     * @generated
-     */
-    int PRESENCE_CONDITION_ARGUMENT = 81;
-
-    /**
-     * The meta object id for the '<em>Presence Condition Name</em>' data type.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see java.lang.String
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getPresenceConditionName()
-     * @generated
-     */
-    int PRESENCE_CONDITION_NAME = 82;
+    int NS_VERSION_OBJECT = 64;
 
     /**
      * The meta object id for the '<em>Pub Stage Object</em>' data type.
@@ -4325,27 +4145,7 @@ public interface NsdPackage extends EPackage {
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getPubStageObject()
      * @generated
      */
-    int PUB_STAGE_OBJECT = 83;
-
-    /**
-     * The meta object id for the '<em>Sub Data Object Name</em>' data type.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see java.lang.String
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getSubDataObjectName()
-     * @generated
-     */
-    int SUB_DATA_OBJECT_NAME = 84;
-
-    /**
-     * The meta object id for the '<em>UML Version</em>' data type.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see java.lang.String
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getUMLVersion()
-     * @generated
-     */
-    int UML_VERSION = 85;
+    int PUB_STAGE_OBJECT = 65;
 
     /**
      * The meta object id for the '<em>Undefined Attribute Type Kind Object</em>' data type.
@@ -4355,7 +4155,7 @@ public interface NsdPackage extends EPackage {
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getUndefinedAttributeTypeKindObject()
      * @generated
      */
-    int UNDEFINED_ATTRIBUTE_TYPE_KIND_OBJECT = 86;
+    int UNDEFINED_ATTRIBUTE_TYPE_KIND_OBJECT = 66;
 
     /**
      * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AppliesToType <em>Applies To Type</em>}'.
@@ -7304,36 +7104,6 @@ public interface NsdPackage extends EPackage {
      */
     EEnum getUndefinedAttributeTypeKind();
 
-    /**
-     * Returns the meta object for data type '{@link java.lang.String <em>Abbreviation Name</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * <!-- begin-model-doc -->
-     * Name of an abbreviation.
-     * <!-- end-model-doc -->
-     * @return the meta object for data type '<em>Abbreviation Name</em>'.
-     * @see java.lang.String
-     * @model instanceClass="java.lang.String"
-     *        extendedMetaData="name='tAbbreviationName' baseType='http://www.eclipse.org/emf/2003/XMLType#normalizedString'"
-     * @generated
-     */
-    EDataType getAbbreviationName();
-
-    /**
-     * Returns the meta object for data type '{@link java.lang.String <em>Abstract LN Class Name</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * <!-- begin-model-doc -->
-     * Name of an abstract logical node.
-     * <!-- end-model-doc -->
-     * @return the meta object for data type '<em>Abstract LN Class Name</em>'.
-     * @see java.lang.String
-     * @model instanceClass="java.lang.String"
-     *        extendedMetaData="name='tAbstractLNClassName' baseType='tIec61850Name'"
-     * @generated
-     */
-    EDataType getAbstractLNClassName();
-
     /**
      * Returns the meta object for data type '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ACSIServicesKind <em>ACSI Services Kind Object</em>}'.
      * <!-- begin-user-doc -->
@@ -7346,21 +7116,6 @@ public interface NsdPackage extends EPackage {
      */
     EDataType getACSIServicesKindObject();
 
-    /**
-     * Returns the meta object for data type '{@link java.lang.String <em>Attribute Name</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * <!-- begin-model-doc -->
-     * Name of a Data Attribute.
-     * <!-- end-model-doc -->
-     * @return the meta object for data type '<em>Attribute Name</em>'.
-     * @see java.lang.String
-     * @model instanceClass="java.lang.String"
-     *        extendedMetaData="name='tAttributeName' baseType='tIec61850Name'"
-     * @generated
-     */
-    EDataType getAttributeName();
-
     /**
      * Returns the meta object for data type '{@link org.eclipse.emf.common.util.Enumerator <em>Attribute Type Kind</em>}'.
      * <!-- begin-user-doc -->
@@ -7376,21 +7131,6 @@ public interface NsdPackage extends EPackage {
      */
     EDataType getAttributeTypeKind();
 
-    /**
-     * Returns the meta object for data type '{@link java.lang.String <em>Basic Type Name</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * <!-- begin-model-doc -->
-     * Type describing the name of a basic type of a data attribute.
-     * <!-- end-model-doc -->
-     * @return the meta object for data type '<em>Basic Type Name</em>'.
-     * @see java.lang.String
-     * @model instanceClass="java.lang.String"
-     *        extendedMetaData="name='tBasicTypeName' baseType='http://www.eclipse.org/emf/2003/XMLType#token' minLength='1'"
-     * @generated
-     */
-    EDataType getBasicTypeName();
-
     /**
      * Returns the meta object for data type '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.CBKind <em>CB Kind Object</em>}'.
      * <!-- begin-user-doc -->
@@ -7403,36 +7143,6 @@ public interface NsdPackage extends EPackage {
      */
     EDataType getCBKindObject();
 
-    /**
-     * Returns the meta object for data type '{@link java.lang.String <em>CDC Name</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * <!-- begin-model-doc -->
-     * Name of a Common Data Class (CDC).
-     * <!-- end-model-doc -->
-     * @return the meta object for data type '<em>CDC Name</em>'.
-     * @see java.lang.String
-     * @model instanceClass="java.lang.String"
-     *        extendedMetaData="name='tCDCName' baseType='tIec61850Name' minLength='1'"
-     * @generated
-     */
-    EDataType getCDCName();
-
-    /**
-     * Returns the meta object for data type '{@link java.lang.String <em>Data Object Name</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * <!-- begin-model-doc -->
-     * Name of a Data Object.
-     * <!-- end-model-doc -->
-     * @return the meta object for data type '<em>Data Object Name</em>'.
-     * @see java.lang.String
-     * @model instanceClass="java.lang.String"
-     *        extendedMetaData="name='tDataObjectName' baseType='tIec61850Name' maxLength='12'"
-     * @generated
-     */
-    EDataType getDataObjectName();
-
     /**
      * Returns the meta object for data type '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DefinedAttributeTypeKind <em>Defined Attribute Type Kind Object</em>}'.
      * <!-- begin-user-doc -->
@@ -7445,87 +7155,6 @@ public interface NsdPackage extends EPackage {
      */
     EDataType getDefinedAttributeTypeKindObject();
 
-    /**
-     * Returns the meta object for data type '{@link java.lang.String <em>Doc ID</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * <!-- begin-model-doc -->
-     * Identifier referring to a documentation string, available in a sibling file.
-     * <!-- end-model-doc -->
-     * @return the meta object for data type '<em>Doc ID</em>'.
-     * @see java.lang.String
-     * @model instanceClass="java.lang.String"
-     *        extendedMetaData="name='tDocID' baseType='http://www.eclipse.org/emf/2003/XMLType#normalizedString' minLength='1'"
-     * @generated
-     */
-    EDataType getDocID();
-
-    /**
-     * Returns the meta object for data type '{@link java.lang.String <em>Empty String</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * <!-- begin-model-doc -->
-     * The empty string.
-     * <!-- end-model-doc -->
-     * @return the meta object for data type '<em>Empty String</em>'.
-     * @see java.lang.String
-     * @model instanceClass="java.lang.String"
-     *        extendedMetaData="name='tEmptyString' baseType='http://www.eclipse.org/emf/2003/XMLType#normalizedString' maxLength='0'"
-     * @generated
-     */
-    EDataType getEmptyString();
-
-    /**
-     * Returns the meta object for data type '{@link java.lang.String <em>FC Abbreviation</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * <!-- begin-model-doc -->
-     * Functional Constraint abbreviation.
-     * <!-- end-model-doc -->
-     * @return the meta object for data type '<em>FC Abbreviation</em>'.
-     * @see java.lang.String
-     * @model instanceClass="java.lang.String"
-     *        extendedMetaData="name='tFCAbbreviation' baseType='http://www.eclipse.org/emf/2003/XMLType#token' minLength='1' pattern='[\\p{IsBasicLatin}]+'"
-     * @generated
-     */
-    EDataType getFCAbbreviation();
-
-    /**
-     * Returns the meta object for data type '{@link java.lang.String <em>Iec61850 Name</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for data type '<em>Iec61850 Name</em>'.
-     * @see java.lang.String
-     * @model instanceClass="java.lang.String"
-     *        extendedMetaData="name='tIec61850Name' baseType='http://www.eclipse.org/emf/2003/XMLType#Name' minLength='1' pattern='[\\p{IsBasicLatin}\\p{IsLatin-1Supplement}]+'"
-     * @generated
-     */
-    EDataType getIec61850Name();
-
-    /**
-     * Returns the meta object for data type '{@link java.lang.String <em>Iec61850 Name String</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for data type '<em>Iec61850 Name String</em>'.
-     * @see java.lang.String
-     * @model instanceClass="java.lang.String"
-     *        extendedMetaData="name='tIec61850NameString' baseType='http://www.eclipse.org/emf/2003/XMLType#normalizedString' pattern='[\\p{IsBasicLatin}\\p{IsLatin-1Supplement}]+'"
-     * @generated
-     */
-    EDataType getIec61850NameString();
-
-    /**
-     * Returns the meta object for data type '{@link java.lang.String <em>issues Type</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for data type '<em>issues Type</em>'.
-     * @see java.lang.String
-     * @model instanceClass="java.lang.String"
-     *        extendedMetaData="name='tissues_._type' baseType='http://www.eclipse.org/emf/2003/XMLType#normalizedString' minLength='1'"
-     * @generated
-     */
-    EDataType getissuesType();
-
     /**
      * Returns the meta object for data type '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.LicenseKind <em>License Kind Object</em>}'.
      * <!-- begin-user-doc -->
@@ -7538,51 +7167,6 @@ public interface NsdPackage extends EPackage {
      */
     EDataType getLicenseKindObject();
 
-    /**
-     * Returns the meta object for data type '{@link java.lang.String <em>Literal Name</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * <!-- begin-model-doc -->
-     * Name of an enumeration literal. Maybe the empty string.
-     * <!-- end-model-doc -->
-     * @return the meta object for data type '<em>Literal Name</em>'.
-     * @see java.lang.String
-     * @model instanceClass="java.lang.String"
-     *        extendedMetaData="name='tLiteralName' baseType='http://www.eclipse.org/emf/2003/XMLType#normalizedString' maxLength='127' pattern='[\\p{IsBasicLatin}\\p{IsLatin-1Supplement}]*'"
-     * @generated
-     */
-    EDataType getLiteralName();
-
-    /**
-     * Returns the meta object for data type '{@link java.lang.String <em>LN Class Name</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * <!-- begin-model-doc -->
-     * Name of a (non-abstract) logical node class.
-     * <!-- end-model-doc -->
-     * @return the meta object for data type '<em>LN Class Name</em>'.
-     * @see java.lang.String
-     * @model instanceClass="java.lang.String"
-     *        extendedMetaData="name='tLNClassName' baseType='http://www.eclipse.org/emf/2003/XMLType#Name' pattern='LLN0 [A-Z]{4}'"
-     * @generated
-     */
-    EDataType getLNClassName();
-
-    /**
-     * Returns the meta object for data type '{@link java.lang.String <em>NS Identifier</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * <!-- begin-model-doc -->
-     * Identifier of a namespace.
-     * <!-- end-model-doc -->
-     * @return the meta object for data type '<em>NS Identifier</em>'.
-     * @see java.lang.String
-     * @model instanceClass="java.lang.String"
-     *        extendedMetaData="name='tNSIdentifier' baseType='http://www.eclipse.org/emf/2003/XMLType#normalizedString' pattern='\\p{IsBasicLatin}+'"
-     * @generated
-     */
-    EDataType getNSIdentifier();
-
     /**
      * Returns the meta object for data type '<em>NS Release</em>'.
      * <!-- begin-user-doc -->
@@ -7609,21 +7193,6 @@ public interface NsdPackage extends EPackage {
      */
     EDataType getNSReleaseObject();
 
-    /**
-     * Returns the meta object for data type '{@link java.lang.String <em>NS Revision</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * <!-- begin-model-doc -->
-     * Revision of a namespace (a basic latin upper-case letter), distinguishing between revisions of a same namespace version.
-     * <!-- end-model-doc -->
-     * @return the meta object for data type '<em>NS Revision</em>'.
-     * @see java.lang.String
-     * @model instanceClass="java.lang.String"
-     *        extendedMetaData="name='tNSRevision' baseType='http://www.eclipse.org/emf/2003/XMLType#token' pattern='[A-Z]'"
-     * @generated
-     */
-    EDataType getNSRevision();
-
     /**
      * Returns the meta object for data type '<em>NS Version</em>'.
      * <!-- begin-user-doc -->
@@ -7650,36 +7219,6 @@ public interface NsdPackage extends EPackage {
      */
     EDataType getNSVersionObject();
 
-    /**
-     * Returns the meta object for data type '{@link java.lang.String <em>Presence Condition Argument</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * <!-- begin-model-doc -->
-     * Argument to (some) presence conditions.
-     * <!-- end-model-doc -->
-     * @return the meta object for data type '<em>Presence Condition Argument</em>'.
-     * @see java.lang.String
-     * @model instanceClass="java.lang.String"
-     *        extendedMetaData="name='tPresenceConditionArgument' baseType='http://www.eclipse.org/emf/2003/XMLType#normalizedString'"
-     * @generated
-     */
-    EDataType getPresenceConditionArgument();
-
-    /**
-     * Returns the meta object for data type '{@link java.lang.String <em>Presence Condition Name</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * <!-- begin-model-doc -->
-     * Name of a presence condition of a child.
-     * <!-- end-model-doc -->
-     * @return the meta object for data type '<em>Presence Condition Name</em>'.
-     * @see java.lang.String
-     * @model instanceClass="java.lang.String"
-     *        extendedMetaData="name='tPresenceConditionName' baseType='http://www.eclipse.org/emf/2003/XMLType#normalizedString'"
-     * @generated
-     */
-    EDataType getPresenceConditionName();
-
     /**
      * Returns the meta object for data type '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PubStage <em>Pub Stage Object</em>}'.
      * <!-- begin-user-doc -->
@@ -7692,36 +7231,6 @@ public interface NsdPackage extends EPackage {
      */
     EDataType getPubStageObject();
 
-    /**
-     * Returns the meta object for data type '{@link java.lang.String <em>Sub Data Object Name</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * <!-- begin-model-doc -->
-     * Name of a Sub-Data Object.
-     * <!-- end-model-doc -->
-     * @return the meta object for data type '<em>Sub Data Object Name</em>'.
-     * @see java.lang.String
-     * @model instanceClass="java.lang.String"
-     *        extendedMetaData="name='tSubDataObjectName' baseType='tIec61850Name'"
-     * @generated
-     */
-    EDataType getSubDataObjectName();
-
-    /**
-     * Returns the meta object for data type '{@link java.lang.String <em>UML Version</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * <!-- begin-model-doc -->
-     * Version of the UML model used to generate this NSD.
-     * <!-- end-model-doc -->
-     * @return the meta object for data type '<em>UML Version</em>'.
-     * @see java.lang.String
-     * @model instanceClass="java.lang.String"
-     *        extendedMetaData="name='tUMLVersion' baseType='http://www.eclipse.org/emf/2003/XMLType#Name' minLength='1'"
-     * @generated
-     */
-    EDataType getUMLVersion();
-
     /**
      * Returns the meta object for data type '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.UndefinedAttributeTypeKind <em>Undefined Attribute Type Kind Object</em>}'.
      * <!-- begin-user-doc -->
@@ -10059,26 +9568,6 @@ public interface NsdPackage extends EPackage {
          */
         EEnum UNDEFINED_ATTRIBUTE_TYPE_KIND = eINSTANCE.getUndefinedAttributeTypeKind();
 
-        /**
-         * The meta object literal for the '<em>Abbreviation Name</em>' data type.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see java.lang.String
-         * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getAbbreviationName()
-         * @generated
-         */
-        EDataType ABBREVIATION_NAME = eINSTANCE.getAbbreviationName();
-
-        /**
-         * The meta object literal for the '<em>Abstract LN Class Name</em>' data type.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see java.lang.String
-         * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getAbstractLNClassName()
-         * @generated
-         */
-        EDataType ABSTRACT_LN_CLASS_NAME = eINSTANCE.getAbstractLNClassName();
-
         /**
          * The meta object literal for the '<em>ACSI Services Kind Object</em>' data type.
          * <!-- begin-user-doc -->
@@ -10089,16 +9578,6 @@ public interface NsdPackage extends EPackage {
          */
         EDataType ACSI_SERVICES_KIND_OBJECT = eINSTANCE.getACSIServicesKindObject();
 
-        /**
-         * The meta object literal for the '<em>Attribute Name</em>' data type.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see java.lang.String
-         * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getAttributeName()
-         * @generated
-         */
-        EDataType ATTRIBUTE_NAME = eINSTANCE.getAttributeName();
-
         /**
          * The meta object literal for the '<em>Attribute Type Kind</em>' data type.
          * <!-- begin-user-doc -->
@@ -10109,16 +9588,6 @@ public interface NsdPackage extends EPackage {
          */
         EDataType ATTRIBUTE_TYPE_KIND = eINSTANCE.getAttributeTypeKind();
 
-        /**
-         * The meta object literal for the '<em>Basic Type Name</em>' data type.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see java.lang.String
-         * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getBasicTypeName()
-         * @generated
-         */
-        EDataType BASIC_TYPE_NAME = eINSTANCE.getBasicTypeName();
-
         /**
          * The meta object literal for the '<em>CB Kind Object</em>' data type.
          * <!-- begin-user-doc -->
@@ -10129,26 +9598,6 @@ public interface NsdPackage extends EPackage {
          */
         EDataType CB_KIND_OBJECT = eINSTANCE.getCBKindObject();
 
-        /**
-         * The meta object literal for the '<em>CDC Name</em>' data type.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see java.lang.String
-         * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getCDCName()
-         * @generated
-         */
-        EDataType CDC_NAME = eINSTANCE.getCDCName();
-
-        /**
-         * The meta object literal for the '<em>Data Object Name</em>' data type.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see java.lang.String
-         * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getDataObjectName()
-         * @generated
-         */
-        EDataType DATA_OBJECT_NAME = eINSTANCE.getDataObjectName();
-
         /**
          * The meta object literal for the '<em>Defined Attribute Type Kind Object</em>' data type.
          * <!-- begin-user-doc -->
@@ -10159,66 +9608,6 @@ public interface NsdPackage extends EPackage {
          */
         EDataType DEFINED_ATTRIBUTE_TYPE_KIND_OBJECT = eINSTANCE.getDefinedAttributeTypeKindObject();
 
-        /**
-         * The meta object literal for the '<em>Doc ID</em>' data type.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see java.lang.String
-         * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getDocID()
-         * @generated
-         */
-        EDataType DOC_ID = eINSTANCE.getDocID();
-
-        /**
-         * The meta object literal for the '<em>Empty String</em>' data type.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see java.lang.String
-         * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getEmptyString()
-         * @generated
-         */
-        EDataType EMPTY_STRING = eINSTANCE.getEmptyString();
-
-        /**
-         * The meta object literal for the '<em>FC Abbreviation</em>' data type.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see java.lang.String
-         * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getFCAbbreviation()
-         * @generated
-         */
-        EDataType FC_ABBREVIATION = eINSTANCE.getFCAbbreviation();
-
-        /**
-         * The meta object literal for the '<em>Iec61850 Name</em>' data type.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see java.lang.String
-         * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getIec61850Name()
-         * @generated
-         */
-        EDataType IEC61850_NAME = eINSTANCE.getIec61850Name();
-
-        /**
-         * The meta object literal for the '<em>Iec61850 Name String</em>' data type.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see java.lang.String
-         * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getIec61850NameString()
-         * @generated
-         */
-        EDataType IEC61850_NAME_STRING = eINSTANCE.getIec61850NameString();
-
-        /**
-         * The meta object literal for the '<em>issues Type</em>' data type.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see java.lang.String
-         * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getissuesType()
-         * @generated
-         */
-        EDataType ISSUES_TYPE = eINSTANCE.getissuesType();
-
         /**
          * The meta object literal for the '<em>License Kind Object</em>' data type.
          * <!-- begin-user-doc -->
@@ -10229,36 +9618,6 @@ public interface NsdPackage extends EPackage {
          */
         EDataType LICENSE_KIND_OBJECT = eINSTANCE.getLicenseKindObject();
 
-        /**
-         * The meta object literal for the '<em>Literal Name</em>' data type.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see java.lang.String
-         * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getLiteralName()
-         * @generated
-         */
-        EDataType LITERAL_NAME = eINSTANCE.getLiteralName();
-
-        /**
-         * The meta object literal for the '<em>LN Class Name</em>' data type.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see java.lang.String
-         * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getLNClassName()
-         * @generated
-         */
-        EDataType LN_CLASS_NAME = eINSTANCE.getLNClassName();
-
-        /**
-         * The meta object literal for the '<em>NS Identifier</em>' data type.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see java.lang.String
-         * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getNSIdentifier()
-         * @generated
-         */
-        EDataType NS_IDENTIFIER = eINSTANCE.getNSIdentifier();
-
         /**
          * The meta object literal for the '<em>NS Release</em>' data type.
          * <!-- begin-user-doc -->
@@ -10278,16 +9637,6 @@ public interface NsdPackage extends EPackage {
          */
         EDataType NS_RELEASE_OBJECT = eINSTANCE.getNSReleaseObject();
 
-        /**
-         * The meta object literal for the '<em>NS Revision</em>' data type.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see java.lang.String
-         * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getNSRevision()
-         * @generated
-         */
-        EDataType NS_REVISION = eINSTANCE.getNSRevision();
-
         /**
          * The meta object literal for the '<em>NS Version</em>' data type.
          * <!-- begin-user-doc -->
@@ -10307,26 +9656,6 @@ public interface NsdPackage extends EPackage {
          */
         EDataType NS_VERSION_OBJECT = eINSTANCE.getNSVersionObject();
 
-        /**
-         * The meta object literal for the '<em>Presence Condition Argument</em>' data type.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see java.lang.String
-         * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getPresenceConditionArgument()
-         * @generated
-         */
-        EDataType PRESENCE_CONDITION_ARGUMENT = eINSTANCE.getPresenceConditionArgument();
-
-        /**
-         * The meta object literal for the '<em>Presence Condition Name</em>' data type.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see java.lang.String
-         * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getPresenceConditionName()
-         * @generated
-         */
-        EDataType PRESENCE_CONDITION_NAME = eINSTANCE.getPresenceConditionName();
-
         /**
          * The meta object literal for the '<em>Pub Stage Object</em>' data type.
          * <!-- begin-user-doc -->
@@ -10337,26 +9666,6 @@ public interface NsdPackage extends EPackage {
          */
         EDataType PUB_STAGE_OBJECT = eINSTANCE.getPubStageObject();
 
-        /**
-         * The meta object literal for the '<em>Sub Data Object Name</em>' data type.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see java.lang.String
-         * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getSubDataObjectName()
-         * @generated
-         */
-        EDataType SUB_DATA_OBJECT_NAME = eINSTANCE.getSubDataObjectName();
-
-        /**
-         * The meta object literal for the '<em>UML Version</em>' data type.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see java.lang.String
-         * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NsdPackageImpl#getUMLVersion()
-         * @generated
-         */
-        EDataType UML_VERSION = eINSTANCE.getUMLVersion();
-
         /**
          * The meta object literal for the '<em>Undefined Attribute Type Kind Object</em>' data type.
          * <!-- begin-user-doc -->
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 66714d46888f7dbfb5cba0e90157496d960481e4..e68314eb6eeed8f65c348880f7b7db58113456ad 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
@@ -55,8 +55,7 @@ public interface PresenceCondition extends EObject {
      * @return the value of the '<em>Argument</em>' attribute.
      * @see #setArgument(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getPresenceCondition_Argument()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditionArgument"
-     *        extendedMetaData="kind='attribute' name='argument'"
+     * @model extendedMetaData="kind='attribute' name='argument'"
      * @generated
      */
     String getArgument();
@@ -81,8 +80,7 @@ public interface PresenceCondition extends EObject {
      * @return the value of the '<em>Desc ID</em>' attribute.
      * @see #setDescID(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getPresenceCondition_DescID()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocID"
-     *        extendedMetaData="kind='attribute' name='descID'"
+     * @model extendedMetaData="kind='attribute' name='descID'"
      * @generated
      */
     String getDescID();
@@ -107,7 +105,7 @@ public interface PresenceCondition extends EObject {
      * @return the value of the '<em>Name</em>' attribute.
      * @see #setName(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getPresenceCondition_Name()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditionName" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='name'"
      * @generated
      */
@@ -133,8 +131,7 @@ public interface PresenceCondition extends EObject {
      * @return the value of the '<em>Title ID</em>' attribute.
      * @see #setTitleID(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getPresenceCondition_TitleID()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocID"
-     *        extendedMetaData="kind='attribute' name='titleID'"
+     * @model extendedMetaData="kind='attribute' name='titleID'"
      * @generated
      */
     String getTitleID();
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 b049f5a75ef6b8607b28de9c21f2dadd87db5615..c65172fe14b8a8da46f32b792c811e5092626759 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
@@ -72,7 +72,7 @@ public interface ServiceCDC extends EObject {
      * @return the value of the '<em>Cdc</em>' attribute.
      * @see #setCdc(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceCDC_Cdc()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCName" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='cdc'"
      * @generated
      */
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 0f127092d987e43618aab2616ed6c58d7a18928f..5f14544c735872c13b331ff29894a5aa3546d90c 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
@@ -60,7 +60,7 @@ public interface ServiceDataAttribute extends DocumentedClass {
      * @return the value of the '<em>Fc</em>' attribute.
      * @see #setFc(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceDataAttribute_Fc()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.FCAbbreviation" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='fc'"
      * @generated
      */
@@ -86,7 +86,7 @@ public interface ServiceDataAttribute extends DocumentedClass {
      * @return the value of the '<em>Name</em>' attribute.
      * @see #setName(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceDataAttribute_Name()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.AttributeName" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='name'"
      * @generated
      */
@@ -115,7 +115,7 @@ public interface ServiceDataAttribute extends DocumentedClass {
      * @see #unsetPresCond()
      * @see #setPresCond(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceDataAttribute_PresCond()
-     * @model default="M" unsettable="true" dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditionName"
+     * @model default="M" unsettable="true"
      *        extendedMetaData="kind='attribute' name='presCond'"
      * @generated
      */
@@ -166,8 +166,7 @@ public interface ServiceDataAttribute extends DocumentedClass {
      * @return the value of the '<em>Pres Cond Args</em>' attribute.
      * @see #setPresCondArgs(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceDataAttribute_PresCondArgs()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditionArgument"
-     *        extendedMetaData="kind='attribute' name='presCondArgs'"
+     * @model extendedMetaData="kind='attribute' name='presCondArgs'"
      * @generated
      */
     String getPresCondArgs();
@@ -192,8 +191,7 @@ public interface ServiceDataAttribute extends DocumentedClass {
      * @return the value of the '<em>Pres Cond Args ID</em>' attribute.
      * @see #setPresCondArgsID(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceDataAttribute_PresCondArgsID()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocID"
-     *        extendedMetaData="kind='attribute' name='presCondArgsID'"
+     * @model extendedMetaData="kind='attribute' name='presCondArgsID'"
      * @generated
      */
     String getPresCondArgsID();
@@ -218,8 +216,7 @@ public interface ServiceDataAttribute extends DocumentedClass {
      * @return the value of the '<em>Type</em>' attribute.
      * @see #setType(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceDataAttribute_Type()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.Iec61850Name"
-     *        extendedMetaData="kind='attribute' name='type'"
+     * @model extendedMetaData="kind='attribute' name='type'"
      * @generated
      */
     String getType();
@@ -298,8 +295,7 @@ public interface ServiceDataAttribute extends DocumentedClass {
      * @return the value of the '<em>Underlying Type</em>' attribute.
      * @see #setUnderlyingType(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceDataAttribute_UnderlyingType()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.Iec61850Name"
-     *        extendedMetaData="kind='attribute' name='underlyingType'"
+     * @model extendedMetaData="kind='attribute' name='underlyingType'"
      * @generated
      */
     String getUnderlyingType();
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 f24da880cfbe0653e1b3dc8e5b0dc17d400f0029..e7c265ba84dfcc5b9cefa6a008ad35c46b825ba9 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
@@ -248,8 +248,7 @@ public interface ServiceNS extends Copyrighted {
      * @return the value of the '<em>Desc ID</em>' attribute.
      * @see #setDescID(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceNS_DescID()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocID"
-     *        extendedMetaData="kind='attribute' name='descID'"
+     * @model extendedMetaData="kind='attribute' name='descID'"
      * @generated
      */
     String getDescID();
@@ -274,7 +273,7 @@ public interface ServiceNS extends Copyrighted {
      * @return the value of the '<em>Id</em>' attribute.
      * @see #setId(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceNS_Id()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.NSIdentifier" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='id'"
      * @generated
      */
@@ -414,7 +413,7 @@ public interface ServiceNS extends Copyrighted {
      * @see #unsetRevision()
      * @see #setRevision(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceNS_Revision()
-     * @model default="A" unsettable="true" dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.NSRevision"
+     * @model default="A" unsettable="true"
      *        extendedMetaData="kind='attribute' name='revision'"
      * @generated
      */
@@ -492,8 +491,7 @@ public interface ServiceNS extends Copyrighted {
      * @return the value of the '<em>Uml Version</em>' attribute.
      * @see #setUmlVersion(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceNS_UmlVersion()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.UMLVersion"
-     *        extendedMetaData="kind='attribute' name='umlVersion'"
+     * @model extendedMetaData="kind='attribute' name='umlVersion'"
      * @generated
      */
     String getUmlVersion();
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 367667de1c6d5385a4469e9c59b0b0bef660be45..aeff502858f60db448ef697c9955c764e060ed87 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
@@ -75,7 +75,7 @@ public interface ServiceNsUsage extends EObject {
      * @return the value of the '<em>Id</em>' attribute.
      * @see #setId(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceNsUsage_Id()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.NSIdentifier" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='id'"
      * @generated
      */
@@ -215,7 +215,7 @@ public interface ServiceNsUsage extends EObject {
      * @see #unsetRevision()
      * @see #setRevision(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceNsUsage_Revision()
-     * @model default="A" unsettable="true" dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.NSRevision"
+     * @model default="A" unsettable="true"
      *        extendedMetaData="kind='attribute' name='revision'"
      * @generated
      */
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 1133a419fbdf6cb5c61d7ffcfecc2b254d57d42d..6e4a36a8884a2459216b2fcf0ff5a7411febcfce 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
@@ -137,7 +137,7 @@ public interface ServiceParameter extends DocumentedClass {
      * @return the value of the '<em>Name</em>' attribute.
      * @see #setName(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceParameter_Name()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.AttributeName" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='name'"
      * @generated
      */
@@ -163,8 +163,7 @@ public interface ServiceParameter extends DocumentedClass {
      * @return the value of the '<em>Type</em>' attribute.
      * @see #setType(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceParameter_Type()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.Iec61850Name"
-     *        extendedMetaData="kind='attribute' name='type'"
+     * @model extendedMetaData="kind='attribute' name='type'"
      * @generated
      */
     String getType();
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceTypeRealization.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceTypeRealization.java
index 18cc166023e1c97337e983c5cd32391ee0511ed2..59508a7457cb52a3ca7402313e6b129e06c209c8 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceTypeRealization.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceTypeRealization.java
@@ -60,7 +60,7 @@ public interface ServiceTypeRealization extends EObject {
      * @return the value of the '<em>Fc</em>' attribute.
      * @see #setFc(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceTypeRealization_Fc()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.FCAbbreviation" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='fc'"
      * @generated
      */
@@ -86,7 +86,7 @@ public interface ServiceTypeRealization extends EObject {
      * @return the value of the '<em>Name</em>' attribute.
      * @see #setName(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceTypeRealization_Name()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.AttributeName" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='name'"
      * @generated
      */
@@ -115,7 +115,7 @@ public interface ServiceTypeRealization extends EObject {
      * @see #unsetPresCond()
      * @see #setPresCond(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceTypeRealization_PresCond()
-     * @model default="M" unsettable="true" dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditionName"
+     * @model default="M" unsettable="true"
      *        extendedMetaData="kind='attribute' name='presCond'"
      * @generated
      */
@@ -166,8 +166,7 @@ public interface ServiceTypeRealization extends EObject {
      * @return the value of the '<em>Pres Cond Args</em>' attribute.
      * @see #setPresCondArgs(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceTypeRealization_PresCondArgs()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditionArgument"
-     *        extendedMetaData="kind='attribute' name='presCondArgs'"
+     * @model extendedMetaData="kind='attribute' name='presCondArgs'"
      * @generated
      */
     String getPresCondArgs();
@@ -192,8 +191,7 @@ public interface ServiceTypeRealization extends EObject {
      * @return the value of the '<em>Pres Cond Args ID</em>' attribute.
      * @see #setPresCondArgsID(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceTypeRealization_PresCondArgsID()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocID"
-     *        extendedMetaData="kind='attribute' name='presCondArgsID'"
+     * @model extendedMetaData="kind='attribute' name='presCondArgsID'"
      * @generated
      */
     String getPresCondArgsID();
@@ -218,8 +216,7 @@ public interface ServiceTypeRealization extends EObject {
      * @return the value of the '<em>Type</em>' attribute.
      * @see #setType(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceTypeRealization_Type()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.Iec61850Name"
-     *        extendedMetaData="kind='attribute' name='type'"
+     * @model extendedMetaData="kind='attribute' name='type'"
      * @generated
      */
     String getType();
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 0d061c9ea1603661403e416e6c902e2017628079..d52fa1db8ec7572183283d63be26340ca282588f 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
@@ -147,8 +147,7 @@ public interface SubDataAttribute extends DocumentedClass {
      * @return the value of the '<em>Max Index Attribute</em>' attribute.
      * @see #setMaxIndexAttribute(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataAttribute_MaxIndexAttribute()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.AttributeName"
-     *        extendedMetaData="kind='attribute' name='maxIndexAttribute'"
+     * @model extendedMetaData="kind='attribute' name='maxIndexAttribute'"
      * @generated
      */
     String getMaxIndexAttribute();
@@ -281,7 +280,7 @@ public interface SubDataAttribute extends DocumentedClass {
      * @return the value of the '<em>Name</em>' attribute.
      * @see #setName(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataAttribute_Name()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.AttributeName" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='name'"
      * @generated
      */
@@ -310,7 +309,7 @@ public interface SubDataAttribute extends DocumentedClass {
      * @see #unsetPresCond()
      * @see #setPresCond(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataAttribute_PresCond()
-     * @model default="M" unsettable="true" dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditionName"
+     * @model default="M" unsettable="true"
      *        extendedMetaData="kind='attribute' name='presCond'"
      * @generated
      */
@@ -361,8 +360,7 @@ public interface SubDataAttribute extends DocumentedClass {
      * @return the value of the '<em>Pres Cond Args</em>' attribute.
      * @see #setPresCondArgs(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataAttribute_PresCondArgs()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditionArgument"
-     *        extendedMetaData="kind='attribute' name='presCondArgs'"
+     * @model extendedMetaData="kind='attribute' name='presCondArgs'"
      * @generated
      */
     String getPresCondArgs();
@@ -387,8 +385,7 @@ public interface SubDataAttribute extends DocumentedClass {
      * @return the value of the '<em>Pres Cond Args ID</em>' attribute.
      * @see #setPresCondArgsID(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataAttribute_PresCondArgsID()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocID"
-     *        extendedMetaData="kind='attribute' name='presCondArgsID'"
+     * @model extendedMetaData="kind='attribute' name='presCondArgsID'"
      * @generated
      */
     String getPresCondArgsID();
@@ -414,8 +411,7 @@ public interface SubDataAttribute extends DocumentedClass {
      * @return the value of the '<em>Size Attribute</em>' attribute.
      * @see #setSizeAttribute(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataAttribute_SizeAttribute()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.AttributeName"
-     *        extendedMetaData="kind='attribute' name='sizeAttribute'"
+     * @model extendedMetaData="kind='attribute' name='sizeAttribute'"
      * @generated
      */
     String getSizeAttribute();
@@ -440,8 +436,7 @@ public interface SubDataAttribute extends DocumentedClass {
      * @return the value of the '<em>Type</em>' attribute.
      * @see #setType(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataAttribute_Type()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.Iec61850Name"
-     *        extendedMetaData="kind='attribute' name='type'"
+     * @model extendedMetaData="kind='attribute' name='type'"
      * @generated
      */
     String getType();
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 dc4cc6118e0a3256e90f91ccda79950aa64ed80e..b445a6820af52196e8c5af8211f799c355c99cfa 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
@@ -115,8 +115,7 @@ public interface SubDataObject extends DocumentedClass {
      * @return the value of the '<em>Max Index Attribute</em>' attribute.
      * @see #setMaxIndexAttribute(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataObject_MaxIndexAttribute()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.AttributeName"
-     *        extendedMetaData="kind='attribute' name='maxIndexAttribute'"
+     * @model extendedMetaData="kind='attribute' name='maxIndexAttribute'"
      * @generated
      */
     String getMaxIndexAttribute();
@@ -197,7 +196,7 @@ public interface SubDataObject extends DocumentedClass {
      * @return the value of the '<em>Name</em>' attribute.
      * @see #setName(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataObject_Name()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObjectName" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='name'"
      * @generated
      */
@@ -226,7 +225,7 @@ public interface SubDataObject extends DocumentedClass {
      * @see #unsetPresCond()
      * @see #setPresCond(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataObject_PresCond()
-     * @model default="M" unsettable="true" dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditionName"
+     * @model default="M" unsettable="true"
      *        extendedMetaData="kind='attribute' name='presCond'"
      * @generated
      */
@@ -277,8 +276,7 @@ public interface SubDataObject extends DocumentedClass {
      * @return the value of the '<em>Pres Cond Args</em>' attribute.
      * @see #setPresCondArgs(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataObject_PresCondArgs()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditionArgument"
-     *        extendedMetaData="kind='attribute' name='presCondArgs'"
+     * @model extendedMetaData="kind='attribute' name='presCondArgs'"
      * @generated
      */
     String getPresCondArgs();
@@ -303,8 +301,7 @@ public interface SubDataObject extends DocumentedClass {
      * @return the value of the '<em>Pres Cond Args ID</em>' attribute.
      * @see #setPresCondArgsID(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataObject_PresCondArgsID()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocID"
-     *        extendedMetaData="kind='attribute' name='presCondArgsID'"
+     * @model extendedMetaData="kind='attribute' name='presCondArgsID'"
      * @generated
      */
     String getPresCondArgsID();
@@ -330,8 +327,7 @@ public interface SubDataObject extends DocumentedClass {
      * @return the value of the '<em>Size Attribute</em>' attribute.
      * @see #setSizeAttribute(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataObject_SizeAttribute()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.AttributeName"
-     *        extendedMetaData="kind='attribute' name='sizeAttribute'"
+     * @model extendedMetaData="kind='attribute' name='sizeAttribute'"
      * @generated
      */
     String getSizeAttribute();
@@ -356,7 +352,7 @@ public interface SubDataObject extends DocumentedClass {
      * @return the value of the '<em>Type</em>' attribute.
      * @see #setType(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataObject_Type()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCName" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='type'"
      * @generated
      */
@@ -382,8 +378,7 @@ public interface SubDataObject extends DocumentedClass {
      * @return the value of the '<em>Underlying Type</em>' attribute.
      * @see #setUnderlyingType(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataObject_UnderlyingType()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.Iec61850Name"
-     *        extendedMetaData="kind='attribute' name='underlyingType'"
+     * @model extendedMetaData="kind='attribute' name='underlyingType'"
      * @generated
      */
     String getUnderlyingType();
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/TitledClass.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/TitledClass.java
index 9b28ce309e2d8dd4746669f4bb22dd70c541f3a1..bfa59105229f99e61b855f9b2e7f7c2b58101d71 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/TitledClass.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/TitledClass.java
@@ -50,7 +50,7 @@ public interface TitledClass extends DocumentedClass {
      * @return the value of the '<em>Title ID</em>' attribute.
      * @see #setTitleID(String)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getTitledClass_TitleID()
-     * @model dataType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocID" required="true"
+     * @model required="true"
      *        extendedMetaData="kind='attribute' name='titleID'"
      * @generated
      */
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdFactoryImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdFactoryImpl.java
index 1cd3e6c42f3108efc218cbbc79d70d96f31f2ea7..d4b8b75e8592934493fa1b8d41246d628d73e21e 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdFactoryImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdFactoryImpl.java
@@ -204,66 +204,26 @@ public class NsdFactoryImpl extends EFactoryImpl implements NsdFactory {
             return createPubStageFromString( eDataType, initialValue );
         case NsdPackage.UNDEFINED_ATTRIBUTE_TYPE_KIND:
             return createUndefinedAttributeTypeKindFromString( eDataType, initialValue );
-        case NsdPackage.ABBREVIATION_NAME:
-            return createAbbreviationNameFromString( eDataType, initialValue );
-        case NsdPackage.ABSTRACT_LN_CLASS_NAME:
-            return createAbstractLNClassNameFromString( eDataType, initialValue );
         case NsdPackage.ACSI_SERVICES_KIND_OBJECT:
             return createACSIServicesKindObjectFromString( eDataType, initialValue );
-        case NsdPackage.ATTRIBUTE_NAME:
-            return createAttributeNameFromString( eDataType, initialValue );
         case NsdPackage.ATTRIBUTE_TYPE_KIND:
             return createAttributeTypeKindFromString( eDataType, initialValue );
-        case NsdPackage.BASIC_TYPE_NAME:
-            return createBasicTypeNameFromString( eDataType, initialValue );
         case NsdPackage.CB_KIND_OBJECT:
             return createCBKindObjectFromString( eDataType, initialValue );
-        case NsdPackage.CDC_NAME:
-            return createCDCNameFromString( eDataType, initialValue );
-        case NsdPackage.DATA_OBJECT_NAME:
-            return createDataObjectNameFromString( eDataType, initialValue );
         case NsdPackage.DEFINED_ATTRIBUTE_TYPE_KIND_OBJECT:
             return createDefinedAttributeTypeKindObjectFromString( eDataType, initialValue );
-        case NsdPackage.DOC_ID:
-            return createDocIDFromString( eDataType, initialValue );
-        case NsdPackage.EMPTY_STRING:
-            return createEmptyStringFromString( eDataType, initialValue );
-        case NsdPackage.FC_ABBREVIATION:
-            return createFCAbbreviationFromString( eDataType, initialValue );
-        case NsdPackage.IEC61850_NAME:
-            return createIec61850NameFromString( eDataType, initialValue );
-        case NsdPackage.IEC61850_NAME_STRING:
-            return createIec61850NameStringFromString( eDataType, initialValue );
-        case NsdPackage.ISSUES_TYPE:
-            return createissuesTypeFromString( eDataType, initialValue );
         case NsdPackage.LICENSE_KIND_OBJECT:
             return createLicenseKindObjectFromString( eDataType, initialValue );
-        case NsdPackage.LITERAL_NAME:
-            return createLiteralNameFromString( eDataType, initialValue );
-        case NsdPackage.LN_CLASS_NAME:
-            return createLNClassNameFromString( eDataType, initialValue );
-        case NsdPackage.NS_IDENTIFIER:
-            return createNSIdentifierFromString( eDataType, initialValue );
         case NsdPackage.NS_RELEASE:
             return createNSReleaseFromString( eDataType, initialValue );
         case NsdPackage.NS_RELEASE_OBJECT:
             return createNSReleaseObjectFromString( eDataType, initialValue );
-        case NsdPackage.NS_REVISION:
-            return createNSRevisionFromString( eDataType, initialValue );
         case NsdPackage.NS_VERSION:
             return createNSVersionFromString( eDataType, initialValue );
         case NsdPackage.NS_VERSION_OBJECT:
             return createNSVersionObjectFromString( eDataType, initialValue );
-        case NsdPackage.PRESENCE_CONDITION_ARGUMENT:
-            return createPresenceConditionArgumentFromString( eDataType, initialValue );
-        case NsdPackage.PRESENCE_CONDITION_NAME:
-            return createPresenceConditionNameFromString( eDataType, initialValue );
         case NsdPackage.PUB_STAGE_OBJECT:
             return createPubStageObjectFromString( eDataType, initialValue );
-        case NsdPackage.SUB_DATA_OBJECT_NAME:
-            return createSubDataObjectNameFromString( eDataType, initialValue );
-        case NsdPackage.UML_VERSION:
-            return createUMLVersionFromString( eDataType, initialValue );
         case NsdPackage.UNDEFINED_ATTRIBUTE_TYPE_KIND_OBJECT:
             return createUndefinedAttributeTypeKindObjectFromString( eDataType, initialValue );
         default:
@@ -292,66 +252,26 @@ public class NsdFactoryImpl extends EFactoryImpl implements NsdFactory {
             return convertPubStageToString( eDataType, instanceValue );
         case NsdPackage.UNDEFINED_ATTRIBUTE_TYPE_KIND:
             return convertUndefinedAttributeTypeKindToString( eDataType, instanceValue );
-        case NsdPackage.ABBREVIATION_NAME:
-            return convertAbbreviationNameToString( eDataType, instanceValue );
-        case NsdPackage.ABSTRACT_LN_CLASS_NAME:
-            return convertAbstractLNClassNameToString( eDataType, instanceValue );
         case NsdPackage.ACSI_SERVICES_KIND_OBJECT:
             return convertACSIServicesKindObjectToString( eDataType, instanceValue );
-        case NsdPackage.ATTRIBUTE_NAME:
-            return convertAttributeNameToString( eDataType, instanceValue );
         case NsdPackage.ATTRIBUTE_TYPE_KIND:
             return convertAttributeTypeKindToString( eDataType, instanceValue );
-        case NsdPackage.BASIC_TYPE_NAME:
-            return convertBasicTypeNameToString( eDataType, instanceValue );
         case NsdPackage.CB_KIND_OBJECT:
             return convertCBKindObjectToString( eDataType, instanceValue );
-        case NsdPackage.CDC_NAME:
-            return convertCDCNameToString( eDataType, instanceValue );
-        case NsdPackage.DATA_OBJECT_NAME:
-            return convertDataObjectNameToString( eDataType, instanceValue );
         case NsdPackage.DEFINED_ATTRIBUTE_TYPE_KIND_OBJECT:
             return convertDefinedAttributeTypeKindObjectToString( eDataType, instanceValue );
-        case NsdPackage.DOC_ID:
-            return convertDocIDToString( eDataType, instanceValue );
-        case NsdPackage.EMPTY_STRING:
-            return convertEmptyStringToString( eDataType, instanceValue );
-        case NsdPackage.FC_ABBREVIATION:
-            return convertFCAbbreviationToString( eDataType, instanceValue );
-        case NsdPackage.IEC61850_NAME:
-            return convertIec61850NameToString( eDataType, instanceValue );
-        case NsdPackage.IEC61850_NAME_STRING:
-            return convertIec61850NameStringToString( eDataType, instanceValue );
-        case NsdPackage.ISSUES_TYPE:
-            return convertissuesTypeToString( eDataType, instanceValue );
         case NsdPackage.LICENSE_KIND_OBJECT:
             return convertLicenseKindObjectToString( eDataType, instanceValue );
-        case NsdPackage.LITERAL_NAME:
-            return convertLiteralNameToString( eDataType, instanceValue );
-        case NsdPackage.LN_CLASS_NAME:
-            return convertLNClassNameToString( eDataType, instanceValue );
-        case NsdPackage.NS_IDENTIFIER:
-            return convertNSIdentifierToString( eDataType, instanceValue );
         case NsdPackage.NS_RELEASE:
             return convertNSReleaseToString( eDataType, instanceValue );
         case NsdPackage.NS_RELEASE_OBJECT:
             return convertNSReleaseObjectToString( eDataType, instanceValue );
-        case NsdPackage.NS_REVISION:
-            return convertNSRevisionToString( eDataType, instanceValue );
         case NsdPackage.NS_VERSION:
             return convertNSVersionToString( eDataType, instanceValue );
         case NsdPackage.NS_VERSION_OBJECT:
             return convertNSVersionObjectToString( eDataType, instanceValue );
-        case NsdPackage.PRESENCE_CONDITION_ARGUMENT:
-            return convertPresenceConditionArgumentToString( eDataType, instanceValue );
-        case NsdPackage.PRESENCE_CONDITION_NAME:
-            return convertPresenceConditionNameToString( eDataType, instanceValue );
         case NsdPackage.PUB_STAGE_OBJECT:
             return convertPubStageObjectToString( eDataType, instanceValue );
-        case NsdPackage.SUB_DATA_OBJECT_NAME:
-            return convertSubDataObjectNameToString( eDataType, instanceValue );
-        case NsdPackage.UML_VERSION:
-            return convertUMLVersionToString( eDataType, instanceValue );
         case NsdPackage.UNDEFINED_ATTRIBUTE_TYPE_KIND_OBJECT:
             return convertUndefinedAttributeTypeKindObjectToString( eDataType, instanceValue );
         default:
@@ -1027,43 +947,6 @@ public class NsdFactoryImpl extends EFactoryImpl implements NsdFactory {
         return instanceValue == null ? null : instanceValue.toString();
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String createAbbreviationNameFromString( EDataType eDataType, String initialValue ) {
-        return ( String ) XMLTypeFactory.eINSTANCE.createFromString( XMLTypePackage.Literals.NORMALIZED_STRING,
-                initialValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertAbbreviationNameToString( EDataType eDataType, Object instanceValue ) {
-        return XMLTypeFactory.eINSTANCE.convertToString( XMLTypePackage.Literals.NORMALIZED_STRING, instanceValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String createAbstractLNClassNameFromString( EDataType eDataType, String initialValue ) {
-        return createIec61850NameFromString( NsdPackage.Literals.IEC61850_NAME, initialValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertAbstractLNClassNameToString( EDataType eDataType, Object instanceValue ) {
-        return convertIec61850NameToString( NsdPackage.Literals.IEC61850_NAME, instanceValue );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1082,24 +965,6 @@ public class NsdFactoryImpl extends EFactoryImpl implements NsdFactory {
         return convertACSIServicesKindToString( NsdPackage.Literals.ACSI_SERVICES_KIND, instanceValue );
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String createAttributeNameFromString( EDataType eDataType, String initialValue ) {
-        return createIec61850NameFromString( NsdPackage.Literals.IEC61850_NAME, initialValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertAttributeNameToString( EDataType eDataType, Object instanceValue ) {
-        return convertIec61850NameToString( NsdPackage.Literals.IEC61850_NAME, instanceValue );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1165,24 +1030,6 @@ public class NsdFactoryImpl extends EFactoryImpl implements NsdFactory {
                 "Invalid value: '" + instanceValue + "' for datatype :" + eDataType.getName() );
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String createBasicTypeNameFromString( EDataType eDataType, String initialValue ) {
-        return ( String ) XMLTypeFactory.eINSTANCE.createFromString( XMLTypePackage.Literals.TOKEN, initialValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertBasicTypeNameToString( EDataType eDataType, Object instanceValue ) {
-        return XMLTypeFactory.eINSTANCE.convertToString( XMLTypePackage.Literals.TOKEN, instanceValue );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1201,42 +1048,6 @@ public class NsdFactoryImpl extends EFactoryImpl implements NsdFactory {
         return convertCBKindToString( NsdPackage.Literals.CB_KIND, instanceValue );
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String createCDCNameFromString( EDataType eDataType, String initialValue ) {
-        return createIec61850NameFromString( NsdPackage.Literals.IEC61850_NAME, initialValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertCDCNameToString( EDataType eDataType, Object instanceValue ) {
-        return convertIec61850NameToString( NsdPackage.Literals.IEC61850_NAME, instanceValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String createDataObjectNameFromString( EDataType eDataType, String initialValue ) {
-        return createIec61850NameFromString( NsdPackage.Literals.IEC61850_NAME, initialValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertDataObjectNameToString( EDataType eDataType, Object instanceValue ) {
-        return convertIec61850NameToString( NsdPackage.Literals.IEC61850_NAME, instanceValue );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1258,118 +1069,6 @@ public class NsdFactoryImpl extends EFactoryImpl implements NsdFactory {
                 instanceValue );
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String createDocIDFromString( EDataType eDataType, String initialValue ) {
-        return ( String ) XMLTypeFactory.eINSTANCE.createFromString( XMLTypePackage.Literals.NORMALIZED_STRING,
-                initialValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertDocIDToString( EDataType eDataType, Object instanceValue ) {
-        return XMLTypeFactory.eINSTANCE.convertToString( XMLTypePackage.Literals.NORMALIZED_STRING, instanceValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String createEmptyStringFromString( EDataType eDataType, String initialValue ) {
-        return ( String ) XMLTypeFactory.eINSTANCE.createFromString( XMLTypePackage.Literals.NORMALIZED_STRING,
-                initialValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertEmptyStringToString( EDataType eDataType, Object instanceValue ) {
-        return XMLTypeFactory.eINSTANCE.convertToString( XMLTypePackage.Literals.NORMALIZED_STRING, instanceValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String createFCAbbreviationFromString( EDataType eDataType, String initialValue ) {
-        return ( String ) XMLTypeFactory.eINSTANCE.createFromString( XMLTypePackage.Literals.TOKEN, initialValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertFCAbbreviationToString( EDataType eDataType, Object instanceValue ) {
-        return XMLTypeFactory.eINSTANCE.convertToString( XMLTypePackage.Literals.TOKEN, instanceValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String createIec61850NameFromString( EDataType eDataType, String initialValue ) {
-        return ( String ) XMLTypeFactory.eINSTANCE.createFromString( XMLTypePackage.Literals.NAME, initialValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertIec61850NameToString( EDataType eDataType, Object instanceValue ) {
-        return XMLTypeFactory.eINSTANCE.convertToString( XMLTypePackage.Literals.NAME, instanceValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String createIec61850NameStringFromString( EDataType eDataType, String initialValue ) {
-        return ( String ) XMLTypeFactory.eINSTANCE.createFromString( XMLTypePackage.Literals.NORMALIZED_STRING,
-                initialValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertIec61850NameStringToString( EDataType eDataType, Object instanceValue ) {
-        return XMLTypeFactory.eINSTANCE.convertToString( XMLTypePackage.Literals.NORMALIZED_STRING, instanceValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String createissuesTypeFromString( EDataType eDataType, String initialValue ) {
-        return ( String ) XMLTypeFactory.eINSTANCE.createFromString( XMLTypePackage.Literals.NORMALIZED_STRING,
-                initialValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertissuesTypeToString( EDataType eDataType, Object instanceValue ) {
-        return XMLTypeFactory.eINSTANCE.convertToString( XMLTypePackage.Literals.NORMALIZED_STRING, instanceValue );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1388,62 +1087,6 @@ public class NsdFactoryImpl extends EFactoryImpl implements NsdFactory {
         return convertLicenseKindToString( NsdPackage.Literals.LICENSE_KIND, instanceValue );
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String createLiteralNameFromString( EDataType eDataType, String initialValue ) {
-        return ( String ) XMLTypeFactory.eINSTANCE.createFromString( XMLTypePackage.Literals.NORMALIZED_STRING,
-                initialValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertLiteralNameToString( EDataType eDataType, Object instanceValue ) {
-        return XMLTypeFactory.eINSTANCE.convertToString( XMLTypePackage.Literals.NORMALIZED_STRING, instanceValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String createLNClassNameFromString( EDataType eDataType, String initialValue ) {
-        return ( String ) XMLTypeFactory.eINSTANCE.createFromString( XMLTypePackage.Literals.NAME, initialValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertLNClassNameToString( EDataType eDataType, Object instanceValue ) {
-        return XMLTypeFactory.eINSTANCE.convertToString( XMLTypePackage.Literals.NAME, instanceValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String createNSIdentifierFromString( EDataType eDataType, String initialValue ) {
-        return ( String ) XMLTypeFactory.eINSTANCE.createFromString( XMLTypePackage.Literals.NORMALIZED_STRING,
-                initialValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertNSIdentifierToString( EDataType eDataType, Object instanceValue ) {
-        return XMLTypeFactory.eINSTANCE.convertToString( XMLTypePackage.Literals.NORMALIZED_STRING, instanceValue );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1481,24 +1124,6 @@ public class NsdFactoryImpl extends EFactoryImpl implements NsdFactory {
         return convertNSReleaseToString( NsdPackage.Literals.NS_RELEASE, instanceValue );
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String createNSRevisionFromString( EDataType eDataType, String initialValue ) {
-        return ( String ) XMLTypeFactory.eINSTANCE.createFromString( XMLTypePackage.Literals.TOKEN, initialValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertNSRevisionToString( EDataType eDataType, Object instanceValue ) {
-        return XMLTypeFactory.eINSTANCE.convertToString( XMLTypePackage.Literals.TOKEN, instanceValue );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1536,44 +1161,6 @@ public class NsdFactoryImpl extends EFactoryImpl implements NsdFactory {
         return convertNSVersionToString( NsdPackage.Literals.NS_VERSION, instanceValue );
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String createPresenceConditionArgumentFromString( EDataType eDataType, String initialValue ) {
-        return ( String ) XMLTypeFactory.eINSTANCE.createFromString( XMLTypePackage.Literals.NORMALIZED_STRING,
-                initialValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertPresenceConditionArgumentToString( EDataType eDataType, Object instanceValue ) {
-        return XMLTypeFactory.eINSTANCE.convertToString( XMLTypePackage.Literals.NORMALIZED_STRING, instanceValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String createPresenceConditionNameFromString( EDataType eDataType, String initialValue ) {
-        return ( String ) XMLTypeFactory.eINSTANCE.createFromString( XMLTypePackage.Literals.NORMALIZED_STRING,
-                initialValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertPresenceConditionNameToString( EDataType eDataType, Object instanceValue ) {
-        return XMLTypeFactory.eINSTANCE.convertToString( XMLTypePackage.Literals.NORMALIZED_STRING, instanceValue );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1592,42 +1179,6 @@ public class NsdFactoryImpl extends EFactoryImpl implements NsdFactory {
         return convertPubStageToString( NsdPackage.Literals.PUB_STAGE, instanceValue );
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String createSubDataObjectNameFromString( EDataType eDataType, String initialValue ) {
-        return createIec61850NameFromString( NsdPackage.Literals.IEC61850_NAME, initialValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertSubDataObjectNameToString( EDataType eDataType, Object instanceValue ) {
-        return convertIec61850NameToString( NsdPackage.Literals.IEC61850_NAME, instanceValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String createUMLVersionFromString( EDataType eDataType, String initialValue ) {
-        return ( String ) XMLTypeFactory.eINSTANCE.createFromString( XMLTypePackage.Literals.NAME, initialValue );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertUMLVersionToString( EDataType eDataType, Object instanceValue ) {
-        return XMLTypeFactory.eINSTANCE.convertToString( XMLTypePackage.Literals.NAME, instanceValue );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
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 d6801bffba933d5cad8782c30ae2763c5ec1b5ea..7f101494688a8f2db34734571e3fe455505ddedf 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
@@ -491,20 +491,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      */
     private EEnum undefinedAttributeTypeKindEEnum = null;
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EDataType abbreviationNameEDataType = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EDataType abstractLNClassNameEDataType = null;
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -512,13 +498,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      */
     private EDataType acsiServicesKindObjectEDataType = null;
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EDataType attributeNameEDataType = null;
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -526,13 +505,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      */
     private EDataType attributeTypeKindEDataType = null;
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EDataType basicTypeNameEDataType = null;
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -540,20 +512,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      */
     private EDataType cbKindObjectEDataType = null;
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EDataType cdcNameEDataType = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EDataType dataObjectNameEDataType = null;
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -561,48 +519,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      */
     private EDataType definedAttributeTypeKindObjectEDataType = null;
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EDataType docIDEDataType = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EDataType emptyStringEDataType = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EDataType fcAbbreviationEDataType = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EDataType iec61850NameEDataType = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EDataType iec61850NameStringEDataType = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EDataType issuesTypeEDataType = null;
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -610,27 +526,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      */
     private EDataType licenseKindObjectEDataType = null;
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EDataType literalNameEDataType = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EDataType lnClassNameEDataType = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EDataType nsIdentifierEDataType = null;
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -645,13 +540,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      */
     private EDataType nsReleaseObjectEDataType = null;
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EDataType nsRevisionEDataType = null;
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -666,20 +554,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      */
     private EDataType nsVersionObjectEDataType = null;
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EDataType presenceConditionArgumentEDataType = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EDataType presenceConditionNameEDataType = null;
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -687,20 +561,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
      */
     private EDataType pubStageObjectEDataType = null;
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EDataType subDataObjectNameEDataType = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EDataType umlVersionEDataType = null;
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -3512,26 +3372,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         return undefinedAttributeTypeKindEEnum;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EDataType getAbbreviationName() {
-        return abbreviationNameEDataType;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EDataType getAbstractLNClassName() {
-        return abstractLNClassNameEDataType;
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -3542,16 +3382,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         return acsiServicesKindObjectEDataType;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EDataType getAttributeName() {
-        return attributeNameEDataType;
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -3562,16 +3392,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         return attributeTypeKindEDataType;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EDataType getBasicTypeName() {
-        return basicTypeNameEDataType;
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -3582,26 +3402,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         return cbKindObjectEDataType;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EDataType getCDCName() {
-        return cdcNameEDataType;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EDataType getDataObjectName() {
-        return dataObjectNameEDataType;
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -3612,66 +3412,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         return definedAttributeTypeKindObjectEDataType;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EDataType getDocID() {
-        return docIDEDataType;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EDataType getEmptyString() {
-        return emptyStringEDataType;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EDataType getFCAbbreviation() {
-        return fcAbbreviationEDataType;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EDataType getIec61850Name() {
-        return iec61850NameEDataType;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EDataType getIec61850NameString() {
-        return iec61850NameStringEDataType;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EDataType getissuesType() {
-        return issuesTypeEDataType;
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -3682,36 +3422,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         return licenseKindObjectEDataType;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EDataType getLiteralName() {
-        return literalNameEDataType;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EDataType getLNClassName() {
-        return lnClassNameEDataType;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EDataType getNSIdentifier() {
-        return nsIdentifierEDataType;
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -3732,16 +3442,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         return nsReleaseObjectEDataType;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EDataType getNSRevision() {
-        return nsRevisionEDataType;
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -3762,26 +3462,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         return nsVersionObjectEDataType;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EDataType getPresenceConditionArgument() {
-        return presenceConditionArgumentEDataType;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EDataType getPresenceConditionName() {
-        return presenceConditionNameEDataType;
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -3792,26 +3472,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         return pubStageObjectEDataType;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EDataType getSubDataObjectName() {
-        return subDataObjectNameEDataType;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EDataType getUMLVersion() {
-        return umlVersionEDataType;
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -4178,36 +3838,16 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         undefinedAttributeTypeKindEEnum = createEEnum( UNDEFINED_ATTRIBUTE_TYPE_KIND );
 
         // Create data types
-        abbreviationNameEDataType = createEDataType( ABBREVIATION_NAME );
-        abstractLNClassNameEDataType = createEDataType( ABSTRACT_LN_CLASS_NAME );
         acsiServicesKindObjectEDataType = createEDataType( ACSI_SERVICES_KIND_OBJECT );
-        attributeNameEDataType = createEDataType( ATTRIBUTE_NAME );
         attributeTypeKindEDataType = createEDataType( ATTRIBUTE_TYPE_KIND );
-        basicTypeNameEDataType = createEDataType( BASIC_TYPE_NAME );
         cbKindObjectEDataType = createEDataType( CB_KIND_OBJECT );
-        cdcNameEDataType = createEDataType( CDC_NAME );
-        dataObjectNameEDataType = createEDataType( DATA_OBJECT_NAME );
         definedAttributeTypeKindObjectEDataType = createEDataType( DEFINED_ATTRIBUTE_TYPE_KIND_OBJECT );
-        docIDEDataType = createEDataType( DOC_ID );
-        emptyStringEDataType = createEDataType( EMPTY_STRING );
-        fcAbbreviationEDataType = createEDataType( FC_ABBREVIATION );
-        iec61850NameEDataType = createEDataType( IEC61850_NAME );
-        iec61850NameStringEDataType = createEDataType( IEC61850_NAME_STRING );
-        issuesTypeEDataType = createEDataType( ISSUES_TYPE );
         licenseKindObjectEDataType = createEDataType( LICENSE_KIND_OBJECT );
-        literalNameEDataType = createEDataType( LITERAL_NAME );
-        lnClassNameEDataType = createEDataType( LN_CLASS_NAME );
-        nsIdentifierEDataType = createEDataType( NS_IDENTIFIER );
         nsReleaseEDataType = createEDataType( NS_RELEASE );
         nsReleaseObjectEDataType = createEDataType( NS_RELEASE_OBJECT );
-        nsRevisionEDataType = createEDataType( NS_REVISION );
         nsVersionEDataType = createEDataType( NS_VERSION );
         nsVersionObjectEDataType = createEDataType( NS_VERSION_OBJECT );
-        presenceConditionArgumentEDataType = createEDataType( PRESENCE_CONDITION_ARGUMENT );
-        presenceConditionNameEDataType = createEDataType( PRESENCE_CONDITION_NAME );
         pubStageObjectEDataType = createEDataType( PUB_STAGE_OBJECT );
-        subDataObjectNameEDataType = createEDataType( SUB_DATA_OBJECT_NAME );
-        umlVersionEDataType = createEDataType( UML_VERSION );
         undefinedAttributeTypeKindObjectEDataType = createEDataType( UNDEFINED_ATTRIBUTE_TYPE_KIND_OBJECT );
     }
 
@@ -4266,7 +3906,7 @@ 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 );
-        initEAttribute( getAppliesToType_Id(), this.getNSIdentifier(), "id", null, 1, 1, AppliesToType.class,
+        initEAttribute( getAppliesToType_Id(), ecorePackage.getEString(), "id", null, 1, 1, AppliesToType.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
         initEAttribute( getAppliesToType_PublicationStage(), this.getPubStage(), "publicationStage", "IS", 0, 1,
@@ -4274,14 +3914,15 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 !IS_DERIVED, IS_ORDERED );
         initEAttribute( getAppliesToType_Release(), this.getNSRelease(), "release", "1", 0, 1, AppliesToType.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getAppliesToType_Revision(), this.getNSRevision(), "revision", "A", 0, 1, AppliesToType.class,
-                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
+        initEAttribute( getAppliesToType_Revision(), ecorePackage.getEString(), "revision", "A", 0, 1,
+                AppliesToType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+                !IS_DERIVED, IS_ORDERED );
         initEAttribute( getAppliesToType_Version(), this.getNSVersion(), "version", null, 1, 1, AppliesToType.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
 
         initEClass( dependsOnTypeEClass, DependsOnType.class, "DependsOnType", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEAttribute( getDependsOnType_Id(), this.getNSIdentifier(), "id", null, 1, 1, DependsOnType.class,
+        initEAttribute( getDependsOnType_Id(), ecorePackage.getEString(), "id", null, 1, 1, DependsOnType.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
         initEAttribute( getDependsOnType_PublicationStage(), this.getPubStage(), "publicationStage", "IS", 0, 1,
@@ -4289,8 +3930,9 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 !IS_DERIVED, IS_ORDERED );
         initEAttribute( getDependsOnType_Release(), this.getNSRelease(), "release", "1", 0, 1, DependsOnType.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getDependsOnType_Revision(), this.getNSRevision(), "revision", "A", 0, 1, DependsOnType.class,
-                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
+        initEAttribute( getDependsOnType_Revision(), ecorePackage.getEString(), "revision", "A", 0, 1,
+                DependsOnType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+                !IS_DERIVED, IS_ORDERED );
         initEAttribute( getDependsOnType_Version(), this.getNSVersion(), "version", null, 1, 1, DependsOnType.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
 
@@ -4327,10 +3969,10 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
 
         initEClass( abbreviationEClass, Abbreviation.class, "Abbreviation", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEAttribute( getAbbreviation_DescID(), this.getDocID(), "descID", null, 0, 1, Abbreviation.class,
+        initEAttribute( getAbbreviation_DescID(), ecorePackage.getEString(), "descID", null, 0, 1, Abbreviation.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
-        initEAttribute( getAbbreviation_Name(), this.getAbbreviationName(), "name", null, 1, 1, Abbreviation.class,
+        initEAttribute( getAbbreviation_Name(), ecorePackage.getEString(), "name", null, 1, 1, Abbreviation.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
 
@@ -4342,16 +3984,16 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
 
         initEClass( abstractLNClassEClass, AbstractLNClass.class, "AbstractLNClass", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEAttribute( getAbstractLNClass_Name(), this.getAbstractLNClassName(), "name", null, 1, 1,
-                AbstractLNClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
-                !IS_DERIVED, IS_ORDERED );
+        initEAttribute( getAbstractLNClass_Name(), ecorePackage.getEString(), "name", null, 1, 1, AbstractLNClass.class,
+                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+                IS_ORDERED );
 
         initEClass( anyLNClassEClass, AnyLNClass.class, "AnyLNClass", IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
         initEReference( getAnyLNClass_DataObject(), this.getDataObject(), null, "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(), this.getAbstractLNClassName(), "base", null, 0, 1, AnyLNClass.class,
+        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 );
 
@@ -4378,9 +4020,10 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
 
         initEClass( basicTypeEClass, BasicType.class, "BasicType", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEAttribute( getBasicType_DescID(), this.getDocID(), "descID", null, 0, 1, BasicType.class, !IS_TRANSIENT,
-                !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getBasicType_Name(), this.getBasicTypeName(), "name", null, 1, 1, BasicType.class,
+        initEAttribute( getBasicType_DescID(), ecorePackage.getEString(), "descID", null, 0, 1, BasicType.class,
+                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+                IS_ORDERED );
+        initEAttribute( getBasicType_Name(), ecorePackage.getEString(), "name", null, 1, 1, BasicType.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
 
@@ -4404,7 +4047,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEAttribute( getCDC_EnumParameterized(), theXMLTypePackage.getBoolean(), "enumParameterized", "false", 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 );
-        initEAttribute( getCDC_Name(), this.getCDCName(), "name", null, 1, 1,
+        initEAttribute( getCDC_Name(), ecorePackage.getEString(), "name", null, 1, 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 );
         initEAttribute( getCDC_Statistics(), theXMLTypePackage.getBoolean(), "statistics", "false", 0, 1,
@@ -4422,17 +4065,19 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 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(), this.getDocID(), "changesID", null, 0, 1, Changes.class, !IS_TRANSIENT,
-                !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
+        initEAttribute( getChanges_ChangesID(), ecorePackage.getEString(), "changesID", null, 0, 1, Changes.class,
+                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+                IS_ORDERED );
         initEAttribute( getChanges_Date(), theXMLTypePackage.getDate(), "date", null, 0, 1, Changes.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
         initEAttribute( getChanges_Release(), this.getNSRelease(), "release", "1", 0, 1, Changes.class, !IS_TRANSIENT,
                 !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getChanges_Revision(), this.getNSRevision(), "revision", "A", 0, 1, Changes.class,
+        initEAttribute( getChanges_Revision(), ecorePackage.getEString(), "revision", "A", 0, 1, Changes.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getChanges_Tissues(), this.getissuesType(), "tissues", null, 0, 1, Changes.class, !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 );
         initEAttribute( getChanges_Version(), this.getNSVersion(), "version", null, 1, 1, Changes.class, !IS_TRANSIENT,
                 !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
 
@@ -4441,7 +4086,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEReference( getConstructedAttribute_SubDataAttribute(), this.getSubDataAttribute(), null,
                 "subDataAttribute", null, 1, -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(), this.getIec61850Name(), "name", null, 1, 1,
+        initEAttribute( getConstructedAttribute_Name(), ecorePackage.getEString(), "name", null, 1, 1,
                 ConstructedAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
                 IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
 
@@ -4477,14 +4122,14 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEAttribute( getDataAttribute_Dupd(), theXMLTypePackage.getBoolean(), "dupd", "false", 0, 1,
                 DataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getDataAttribute_Fc(), this.getFCAbbreviation(), "fc", null, 1, 1, DataAttribute.class,
+        initEAttribute( getDataAttribute_Fc(), ecorePackage.getEString(), "fc", null, 1, 1, DataAttribute.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
         initEAttribute( getDataAttribute_IsArray(), theXMLTypePackage.getBoolean(), "isArray", "false", 0, 1,
                 DataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getDataAttribute_MaxIndexAttribute(), this.getAttributeName(), "maxIndexAttribute", null, 0, 1,
-                DataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+        initEAttribute( getDataAttribute_MaxIndexAttribute(), ecorePackage.getEString(), "maxIndexAttribute", null, 0,
+                1, DataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
         initEAttribute( getDataAttribute_MaxValue(), theXMLTypePackage.getDecimal(), "maxValue", null, 0, 1,
                 DataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
@@ -4495,25 +4140,25 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEAttribute( getDataAttribute_MinValue(), theXMLTypePackage.getDecimal(), "minValue", null, 0, 1,
                 DataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getDataAttribute_Name(), this.getAttributeName(), "name", null, 1, 1, DataAttribute.class,
+        initEAttribute( getDataAttribute_Name(), ecorePackage.getEString(), "name", null, 1, 1, DataAttribute.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
-        initEAttribute( getDataAttribute_PresCond(), this.getPresenceConditionName(), "presCond", "M", 0, 1,
+        initEAttribute( getDataAttribute_PresCond(), ecorePackage.getEString(), "presCond", "M", 0, 1,
                 DataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getDataAttribute_PresCondArgs(), this.getPresenceConditionArgument(), "presCondArgs", null, 0,
-                1, DataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+        initEAttribute( getDataAttribute_PresCondArgs(), ecorePackage.getEString(), "presCondArgs", null, 0, 1,
+                DataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getDataAttribute_PresCondArgsID(), this.getDocID(), "presCondArgsID", null, 0, 1,
+        initEAttribute( getDataAttribute_PresCondArgsID(), ecorePackage.getEString(), "presCondArgsID", null, 0, 1,
                 DataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
         initEAttribute( getDataAttribute_Qchg(), theXMLTypePackage.getBoolean(), "qchg", "false", 0, 1,
                 DataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getDataAttribute_SizeAttribute(), this.getAttributeName(), "sizeAttribute", null, 0, 1,
+        initEAttribute( getDataAttribute_SizeAttribute(), ecorePackage.getEString(), "sizeAttribute", null, 0, 1,
                 DataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getDataAttribute_Type(), this.getIec61850Name(), "type", null, 0, 1, DataAttribute.class,
+        initEAttribute( getDataAttribute_Type(), ecorePackage.getEString(), "type", null, 0, 1, DataAttribute.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
         initEAttribute( getDataAttribute_TypeKind(), this.getAttributeTypeKind(), "typeKind", "BASIC", 0, 1,
@@ -4522,33 +4167,33 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
 
         initEClass( dataObjectEClass, DataObject.class, "DataObject", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEAttribute( getDataObject_DsPresCond(), this.getPresenceConditionName(), "dsPresCond", "M", 0, 1,
+        initEAttribute( getDataObject_DsPresCond(), ecorePackage.getEString(), "dsPresCond", "M", 0, 1,
                 DataObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getDataObject_DsPresCondArgs(), this.getPresenceConditionArgument(), "dsPresCondArgs", null, 0,
-                1, DataObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+        initEAttribute( getDataObject_DsPresCondArgs(), ecorePackage.getEString(), "dsPresCondArgs", null, 0, 1,
+                DataObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getDataObject_DsPresCondArgsID(), this.getDocID(), "dsPresCondArgsID", null, 0, 1,
+        initEAttribute( getDataObject_DsPresCondArgsID(), ecorePackage.getEString(), "dsPresCondArgsID", null, 0, 1,
                 DataObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getDataObject_Name(), this.getDataObjectName(), "name", null, 1, 1, DataObject.class,
+        initEAttribute( getDataObject_Name(), ecorePackage.getEString(), "name", null, 1, 1, DataObject.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
-        initEAttribute( getDataObject_PresCond(), this.getPresenceConditionName(), "presCond", "M", 0, 1,
-                DataObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+        initEAttribute( getDataObject_PresCond(), ecorePackage.getEString(), "presCond", "M", 0, 1, DataObject.class,
+                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
+        initEAttribute( getDataObject_PresCondArgs(), ecorePackage.getEString(), "presCondArgs", null, 0, 1,
+                DataObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getDataObject_PresCondArgs(), this.getPresenceConditionArgument(), "presCondArgs", null, 0, 1,
+        initEAttribute( getDataObject_PresCondArgsID(), ecorePackage.getEString(), "presCondArgsID", null, 0, 1,
                 DataObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getDataObject_PresCondArgsID(), this.getDocID(), "presCondArgsID", null, 0, 1, DataObject.class,
-                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
-                IS_ORDERED );
         initEAttribute( getDataObject_Transient(), theXMLTypePackage.getBoolean(), "transient", "false", 0, 1,
                 DataObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getDataObject_Type(), this.getCDCName(), "type", null, 1, 1, DataObject.class, !IS_TRANSIENT,
-                !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getDataObject_UnderlyingType(), this.getIec61850Name(), "underlyingType", null, 0, 1,
+        initEAttribute( getDataObject_Type(), ecorePackage.getEString(), "type", null, 1, 1, DataObject.class,
+                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+                IS_ORDERED );
+        initEAttribute( getDataObject_UnderlyingType(), ecorePackage.getEString(), "underlyingType", null, 0, 1,
                 DataObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
         initEAttribute( getDataObject_UnderlyingTypeKind(), this.getDefinedAttributeTypeKind(), "underlyingTypeKind",
@@ -4568,17 +4213,17 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED );
         initEAttribute( getDoc_Any(), ecorePackage.getEFeatureMapEntry(), "any", null, 0, -1, Doc.class, IS_TRANSIENT,
                 IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED );
-        initEAttribute( getDoc_Id(), this.getDocID(), "id", null, 1, 1, Doc.class, !IS_TRANSIENT, !IS_VOLATILE,
-                IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
+        initEAttribute( getDoc_Id(), ecorePackage.getEString(), "id", null, 1, 1, Doc.class, !IS_TRANSIENT,
+                !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
 
         initEClass( documentedClassEClass, DocumentedClass.class, "DocumentedClass", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
         initEAttribute( getDocumentedClass_Deprecated(), theXMLTypePackage.getBoolean(), "deprecated", "false", 0, 1,
                 DocumentedClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getDocumentedClass_DescID(), this.getDocID(), "descID", null, 0, 1, DocumentedClass.class,
-                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
-                IS_ORDERED );
+        initEAttribute( getDocumentedClass_DescID(), ecorePackage.getEString(), "descID", null, 0, 1,
+                DocumentedClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+                !IS_DERIVED, IS_ORDERED );
         initEAttribute( getDocumentedClass_Informative(), theXMLTypePackage.getBoolean(), "informative", "false", 0, 1,
                 DocumentedClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
@@ -4588,10 +4233,10 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEReference( getEnumeration_Literal(), this.getLiteral(), null, "literal", null, 1, -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(), this.getIec61850Name(), "inheritedFrom", null, 0, 1,
+        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(), this.getIec61850Name(), "name", null, 1, 1, Enumeration.class,
+        initEAttribute( getEnumeration_Name(), ecorePackage.getEString(), "name", null, 1, 1, Enumeration.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
 
@@ -4606,13 +4251,13 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEReference( getFunctionalConstraint_ApplicableServices(), this.getApplicableServices(), null,
                 "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(), this.getFCAbbreviation(), "abbreviation", null, 1, 1,
+        initEAttribute( getFunctionalConstraint_Abbreviation(), ecorePackage.getEString(), "abbreviation", null, 1, 1,
                 FunctionalConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
                 IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getFunctionalConstraint_DescID(), this.getDocID(), "descID", null, 0, 1,
+        initEAttribute( getFunctionalConstraint_DescID(), ecorePackage.getEString(), "descID", null, 0, 1,
                 FunctionalConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
                 IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getFunctionalConstraint_TitleID(), this.getDocID(), "titleID", null, 0, 1,
+        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 );
 
@@ -4635,7 +4280,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEClass( literalEClass, Literal.class, "Literal", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
         initEAttribute( getLiteral_LiteralVal(), theXMLTypePackage.getInt(), "literalVal", null, 1, 1, Literal.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getLiteral_Name(), this.getLiteralName(), "name", null, 1, 1, Literal.class, !IS_TRANSIENT,
+        initEAttribute( getLiteral_Name(), ecorePackage.getEString(), "name", null, 1, 1, Literal.class, !IS_TRANSIENT,
                 !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
 
         initEClass( lnClassEClass, LNClass.class, "LNClass", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
@@ -4645,7 +4290,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEAttribute( getLNClass_IsExtension(), theXMLTypePackage.getBoolean(), "isExtension", "false", 0, 1,
                 LNClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getLNClass_Name(), this.getLNClassName(), "name", null, 1, 1, LNClass.class, !IS_TRANSIENT,
+        initEAttribute( getLNClass_Name(), ecorePackage.getEString(), "name", null, 1, 1, LNClass.class, !IS_TRANSIENT,
                 !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
 
         initEClass( lnClassesEClass, LNClasses.class, "LNClasses", !IS_ABSTRACT, !IS_INTERFACE,
@@ -4694,10 +4339,10 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEReference( getNS_LNClasses(), this.getLNClasses(), null, "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 );
-        initEAttribute( getNS_DescID(), this.getDocID(), "descID", null, 0, 1,
+        initEAttribute( getNS_DescID(), ecorePackage.getEString(), "descID", null, 0, 1,
                 fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
                 !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getNS_Id(), this.getNSIdentifier(), "id", null, 1, 1,
+        initEAttribute( getNS_Id(), ecorePackage.getEString(), "id", null, 1, 1,
                 fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
                 !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
         initEAttribute( getNS_PublicationStage(), this.getPubStage(), "publicationStage", "IS", 0, 1,
@@ -4706,13 +4351,13 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEAttribute( getNS_Release(), this.getNSRelease(), "release", "1", 0, 1,
                 fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
                 IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getNS_Revision(), this.getNSRevision(), "revision", "A", 0, 1,
+        initEAttribute( getNS_Revision(), ecorePackage.getEString(), "revision", "A", 0, 1,
                 fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
                 IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
         initEAttribute( getNS_UmlDate(), theXMLTypePackage.getDateTime(), "umlDate", null, 0, 1,
                 fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
                 !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getNS_UmlVersion(), this.getUMLVersion(), "umlVersion", null, 0, 1,
+        initEAttribute( getNS_UmlVersion(), ecorePackage.getEString(), "umlVersion", null, 0, 1,
                 fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
                 !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
         initEAttribute( getNS_Version(), this.getNSVersion(), "version", null, 1, 1,
@@ -4723,7 +4368,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEReference( getNSDoc_Doc(), this.getDoc(), null, "doc", null, 1, -1, NSDoc.class, !IS_TRANSIENT,
                 !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
-        initEAttribute( getNSDoc_Id(), this.getNSIdentifier(), "id", null, 1, 1, NSDoc.class, !IS_TRANSIENT,
+        initEAttribute( getNSDoc_Id(), ecorePackage.getEString(), "id", null, 1, 1, NSDoc.class, !IS_TRANSIENT,
                 !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
         initEAttribute( getNSDoc_Lang(), theXMLTypePackage.getLanguage(), "lang", null, 1, 1, NSDoc.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
@@ -4732,12 +4377,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( getNSDoc_Release(), this.getNSRelease(), "release", "1", 0, 1, NSDoc.class, !IS_TRANSIENT,
                 !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getNSDoc_Revision(), this.getNSRevision(), "revision", "A", 0, 1, NSDoc.class, !IS_TRANSIENT,
-                !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
+        initEAttribute( getNSDoc_Revision(), ecorePackage.getEString(), "revision", "A", 0, 1, NSDoc.class,
+                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
         initEAttribute( getNSDoc_UmlDate(), theXMLTypePackage.getDateTime(), "umlDate", null, 0, 1, NSDoc.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
-        initEAttribute( getNSDoc_UmlVersion(), this.getUMLVersion(), "umlVersion", null, 0, 1, NSDoc.class,
+        initEAttribute( getNSDoc_UmlVersion(), ecorePackage.getEString(), "umlVersion", null, 0, 1, NSDoc.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
         initEAttribute( getNSDoc_Version(), this.getNSVersion(), "version", null, 1, 1, NSDoc.class, !IS_TRANSIENT,
@@ -4745,18 +4390,18 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
 
         initEClass( presenceConditionEClass, PresenceCondition.class, "PresenceCondition", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEAttribute( getPresenceCondition_Argument(), this.getPresenceConditionArgument(), "argument", null, 0, 1,
+        initEAttribute( getPresenceCondition_Argument(), ecorePackage.getEString(), "argument", null, 0, 1,
                 PresenceCondition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getPresenceCondition_DescID(), this.getDocID(), "descID", null, 0, 1, PresenceCondition.class,
-                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
-                IS_ORDERED );
-        initEAttribute( getPresenceCondition_Name(), this.getPresenceConditionName(), "name", null, 1, 1,
+        initEAttribute( getPresenceCondition_DescID(), ecorePackage.getEString(), "descID", null, 0, 1,
+                PresenceCondition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+                !IS_DERIVED, IS_ORDERED );
+        initEAttribute( getPresenceCondition_Name(), ecorePackage.getEString(), "name", null, 1, 1,
+                PresenceCondition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+                !IS_DERIVED, IS_ORDERED );
+        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 );
-        initEAttribute( getPresenceCondition_TitleID(), this.getDocID(), "titleID", null, 0, 1, PresenceCondition.class,
-                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
-                IS_ORDERED );
 
         initEClass( presenceConditionsEClass, PresenceConditions.class, "PresenceConditions", !IS_ABSTRACT,
                 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
@@ -4769,8 +4414,9 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEReference( getServiceCDC_ServiceDataAttribute(), this.getServiceDataAttribute(), null,
                 "serviceDataAttribute", null, 1, -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(), this.getCDCName(), "cdc", null, 1, 1, ServiceCDC.class, !IS_TRANSIENT,
-                !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, 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 );
@@ -4796,29 +4442,29 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
 
         initEClass( serviceDataAttributeEClass, ServiceDataAttribute.class, "ServiceDataAttribute", !IS_ABSTRACT,
                 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
-        initEAttribute( getServiceDataAttribute_Fc(), this.getFCAbbreviation(), "fc", null, 1, 1,
+        initEAttribute( getServiceDataAttribute_Fc(), ecorePackage.getEString(), "fc", null, 1, 1,
                 ServiceDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
                 IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getServiceDataAttribute_Name(), this.getAttributeName(), "name", null, 1, 1,
+        initEAttribute( getServiceDataAttribute_Name(), ecorePackage.getEString(), "name", null, 1, 1,
                 ServiceDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
                 IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getServiceDataAttribute_PresCond(), this.getPresenceConditionName(), "presCond", "M", 0, 1,
+        initEAttribute( getServiceDataAttribute_PresCond(), ecorePackage.getEString(), "presCond", "M", 0, 1,
                 ServiceDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID,
                 IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getServiceDataAttribute_PresCondArgs(), this.getPresenceConditionArgument(), "presCondArgs",
-                null, 0, 1, ServiceDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
-                !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getServiceDataAttribute_PresCondArgsID(), this.getDocID(), "presCondArgsID", null, 0, 1,
+        initEAttribute( getServiceDataAttribute_PresCondArgs(), ecorePackage.getEString(), "presCondArgs", null, 0, 1,
                 ServiceDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
                 IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getServiceDataAttribute_Type(), this.getIec61850Name(), "type", null, 0, 1,
+        initEAttribute( getServiceDataAttribute_PresCondArgsID(), ecorePackage.getEString(), "presCondArgsID", null, 0,
+                1, ServiceDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+                IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
+        initEAttribute( getServiceDataAttribute_Type(), ecorePackage.getEString(), "type", null, 0, 1,
                 ServiceDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
                 IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
         initEAttribute( getServiceDataAttribute_TypeKind(), this.getAttributeTypeKind(), "typeKind", "BASIC", 0, 1,
                 ServiceDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID,
                 IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getServiceDataAttribute_UnderlyingType(), this.getIec61850Name(), "underlyingType", null, 0, 1,
-                ServiceDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+        initEAttribute( getServiceDataAttribute_UnderlyingType(), ecorePackage.getEString(), "underlyingType", null, 0,
+                1, ServiceDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
                 IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
         initEAttribute( getServiceDataAttribute_UnderlyingTypeKind(), this.getDefinedAttributeTypeKind(),
                 "underlyingTypeKind", null, 0, 1, ServiceDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE,
@@ -4847,21 +4493,22 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEReference( getServiceNS_ServiceCDCs(), this.getServiceCDCs(), null, "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 );
-        initEAttribute( getServiceNS_DescID(), this.getDocID(), "descID", null, 0, 1, ServiceNS.class, !IS_TRANSIENT,
-                !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getServiceNS_Id(), this.getNSIdentifier(), "id", null, 1, 1, ServiceNS.class, !IS_TRANSIENT,
+        initEAttribute( getServiceNS_DescID(), ecorePackage.getEString(), "descID", null, 0, 1, ServiceNS.class,
+                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+                IS_ORDERED );
+        initEAttribute( getServiceNS_Id(), ecorePackage.getEString(), "id", null, 1, 1, ServiceNS.class, !IS_TRANSIENT,
                 !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
         initEAttribute( getServiceNS_PublicationStage(), this.getPubStage(), "publicationStage", "IS", 0, 1,
                 ServiceNS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
         initEAttribute( getServiceNS_Release(), this.getNSRelease(), "release", "1", 0, 1, ServiceNS.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getServiceNS_Revision(), this.getNSRevision(), "revision", "A", 0, 1, ServiceNS.class,
+        initEAttribute( getServiceNS_Revision(), ecorePackage.getEString(), "revision", "A", 0, 1, ServiceNS.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
         initEAttribute( getServiceNS_UmlDate(), theXMLTypePackage.getDateTime(), "umlDate", null, 0, 1, ServiceNS.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
-        initEAttribute( getServiceNS_UmlVersion(), this.getUMLVersion(), "umlVersion", null, 0, 1, ServiceNS.class,
+        initEAttribute( getServiceNS_UmlVersion(), ecorePackage.getEString(), "umlVersion", null, 0, 1, ServiceNS.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
         initEAttribute( getServiceNS_Version(), this.getNSVersion(), "version", null, 1, 1, ServiceNS.class,
@@ -4872,7 +4519,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEReference( getServiceNsUsage_AppliesTo(), this.getAppliesToType(), null, "appliesTo", null, 1, -1,
                 ServiceNsUsage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
                 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getServiceNsUsage_Id(), this.getNSIdentifier(), "id", null, 1, 1, ServiceNsUsage.class,
+        initEAttribute( getServiceNsUsage_Id(), ecorePackage.getEString(), "id", null, 1, 1, ServiceNsUsage.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
         initEAttribute( getServiceNsUsage_PublicationStage(), this.getPubStage(), "publicationStage", "IS", 0, 1,
@@ -4880,8 +4527,9 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 !IS_DERIVED, IS_ORDERED );
         initEAttribute( getServiceNsUsage_Release(), this.getNSRelease(), "release", "1", 0, 1, ServiceNsUsage.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getServiceNsUsage_Revision(), this.getNSRevision(), "revision", "A", 0, 1, ServiceNsUsage.class,
-                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
+        initEAttribute( getServiceNsUsage_Revision(), ecorePackage.getEString(), "revision", "A", 0, 1,
+                ServiceNsUsage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+                !IS_DERIVED, IS_ORDERED );
         initEAttribute( getServiceNsUsage_Version(), this.getNSVersion(), "version", null, 1, 1, ServiceNsUsage.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
 
@@ -4896,34 +4544,34 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEAttribute( getServiceParameter_MinValue(), theXMLTypePackage.getDecimal(), "minValue", null, 0, 1,
                 ServiceParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getServiceParameter_Name(), this.getAttributeName(), "name", null, 1, 1, ServiceParameter.class,
-                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
-                IS_ORDERED );
-        initEAttribute( getServiceParameter_Type(), this.getIec61850Name(), "type", null, 0, 1, ServiceParameter.class,
-                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
-                IS_ORDERED );
+        initEAttribute( getServiceParameter_Name(), ecorePackage.getEString(), "name", null, 1, 1,
+                ServiceParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+                !IS_DERIVED, IS_ORDERED );
+        initEAttribute( getServiceParameter_Type(), ecorePackage.getEString(), "type", null, 0, 1,
+                ServiceParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+                !IS_DERIVED, IS_ORDERED );
         initEAttribute( getServiceParameter_TypeKind(), this.getAttributeTypeKind(), "typeKind", "BASIC", 0, 1,
                 ServiceParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
 
         initEClass( serviceTypeRealizationEClass, ServiceTypeRealization.class, "ServiceTypeRealization", !IS_ABSTRACT,
                 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS );
-        initEAttribute( getServiceTypeRealization_Fc(), this.getFCAbbreviation(), "fc", null, 1, 1,
+        initEAttribute( getServiceTypeRealization_Fc(), ecorePackage.getEString(), "fc", null, 1, 1,
                 ServiceTypeRealization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
                 IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getServiceTypeRealization_Name(), this.getAttributeName(), "name", null, 1, 1,
+        initEAttribute( getServiceTypeRealization_Name(), ecorePackage.getEString(), "name", null, 1, 1,
                 ServiceTypeRealization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
                 IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getServiceTypeRealization_PresCond(), this.getPresenceConditionName(), "presCond", "M", 0, 1,
+        initEAttribute( getServiceTypeRealization_PresCond(), ecorePackage.getEString(), "presCond", "M", 0, 1,
                 ServiceTypeRealization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID,
                 IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getServiceTypeRealization_PresCondArgs(), this.getPresenceConditionArgument(), "presCondArgs",
-                null, 0, 1, ServiceTypeRealization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
-                !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getServiceTypeRealization_PresCondArgsID(), this.getDocID(), "presCondArgsID", null, 0, 1,
+        initEAttribute( getServiceTypeRealization_PresCondArgs(), ecorePackage.getEString(), "presCondArgs", null, 0, 1,
                 ServiceTypeRealization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
                 IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getServiceTypeRealization_Type(), this.getIec61850Name(), "type", null, 0, 1,
+        initEAttribute( getServiceTypeRealization_PresCondArgsID(), ecorePackage.getEString(), "presCondArgsID", null,
+                0, 1, ServiceTypeRealization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+                IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
+        initEAttribute( getServiceTypeRealization_Type(), ecorePackage.getEString(), "type", null, 0, 1,
                 ServiceTypeRealization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
                 IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
         initEAttribute( getServiceTypeRealization_TypeKind(), this.getAttributeTypeKind(), "typeKind", "BASIC", 0, 1,
@@ -4944,8 +4592,8 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEAttribute( getSubDataAttribute_IsArray(), theXMLTypePackage.getBoolean(), "isArray", "false", 0, 1,
                 SubDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getSubDataAttribute_MaxIndexAttribute(), this.getAttributeName(), "maxIndexAttribute", null, 0,
-                1, SubDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+        initEAttribute( getSubDataAttribute_MaxIndexAttribute(), ecorePackage.getEString(), "maxIndexAttribute", null,
+                0, 1, SubDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
                 IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
         initEAttribute( getSubDataAttribute_MaxValue(), theXMLTypePackage.getDecimal(), "maxValue", null, 0, 1,
                 SubDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
@@ -4956,24 +4604,24 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEAttribute( getSubDataAttribute_MinValue(), theXMLTypePackage.getDecimal(), "minValue", null, 0, 1,
                 SubDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getSubDataAttribute_Name(), this.getAttributeName(), "name", null, 1, 1, SubDataAttribute.class,
-                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
-                IS_ORDERED );
-        initEAttribute( getSubDataAttribute_PresCond(), this.getPresenceConditionName(), "presCond", "M", 0, 1,
+        initEAttribute( getSubDataAttribute_Name(), ecorePackage.getEString(), "name", null, 1, 1,
+                SubDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+                !IS_DERIVED, IS_ORDERED );
+        initEAttribute( getSubDataAttribute_PresCond(), ecorePackage.getEString(), "presCond", "M", 0, 1,
                 SubDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getSubDataAttribute_PresCondArgs(), this.getPresenceConditionArgument(), "presCondArgs", null,
-                0, 1, SubDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
-                IS_UNIQUE, !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getSubDataAttribute_PresCondArgsID(), this.getDocID(), "presCondArgsID", null, 0, 1,
+        initEAttribute( getSubDataAttribute_PresCondArgs(), ecorePackage.getEString(), "presCondArgs", null, 0, 1,
                 SubDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getSubDataAttribute_SizeAttribute(), this.getAttributeName(), "sizeAttribute", null, 0, 1,
+        initEAttribute( getSubDataAttribute_PresCondArgsID(), ecorePackage.getEString(), "presCondArgsID", null, 0, 1,
+                SubDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+                !IS_DERIVED, IS_ORDERED );
+        initEAttribute( getSubDataAttribute_SizeAttribute(), ecorePackage.getEString(), "sizeAttribute", null, 0, 1,
+                SubDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+                !IS_DERIVED, IS_ORDERED );
+        initEAttribute( getSubDataAttribute_Type(), ecorePackage.getEString(), "type", null, 0, 1,
                 SubDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getSubDataAttribute_Type(), this.getIec61850Name(), "type", null, 0, 1, SubDataAttribute.class,
-                !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
-                IS_ORDERED );
         initEAttribute( getSubDataAttribute_TypeKind(), this.getAttributeTypeKind(), "typeKind", "BASIC", 0, 1,
                 SubDataAttribute.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
@@ -4983,31 +4631,31 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         initEAttribute( getSubDataObject_IsArray(), theXMLTypePackage.getBoolean(), "isArray", "false", 0, 1,
                 SubDataObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getSubDataObject_MaxIndexAttribute(), this.getAttributeName(), "maxIndexAttribute", null, 0, 1,
-                SubDataObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+        initEAttribute( getSubDataObject_MaxIndexAttribute(), ecorePackage.getEString(), "maxIndexAttribute", null, 0,
+                1, SubDataObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
         initEAttribute( getSubDataObject_MinIndex(), theXMLTypePackage.getUnsignedInt(), "minIndex", "0", 0, 1,
                 SubDataObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getSubDataObject_Name(), this.getSubDataObjectName(), "name", null, 1, 1, SubDataObject.class,
+        initEAttribute( getSubDataObject_Name(), ecorePackage.getEString(), "name", null, 1, 1, SubDataObject.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
-        initEAttribute( getSubDataObject_PresCond(), this.getPresenceConditionName(), "presCond", "M", 0, 1,
+        initEAttribute( getSubDataObject_PresCond(), ecorePackage.getEString(), "presCond", "M", 0, 1,
                 SubDataObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getSubDataObject_PresCondArgs(), this.getPresenceConditionArgument(), "presCondArgs", null, 0,
-                1, SubDataObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+        initEAttribute( getSubDataObject_PresCondArgs(), ecorePackage.getEString(), "presCondArgs", null, 0, 1,
+                SubDataObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getSubDataObject_PresCondArgsID(), this.getDocID(), "presCondArgsID", null, 0, 1,
+        initEAttribute( getSubDataObject_PresCondArgsID(), ecorePackage.getEString(), "presCondArgsID", null, 0, 1,
                 SubDataObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getSubDataObject_SizeAttribute(), this.getAttributeName(), "sizeAttribute", null, 0, 1,
+        initEAttribute( getSubDataObject_SizeAttribute(), ecorePackage.getEString(), "sizeAttribute", null, 0, 1,
                 SubDataObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
-        initEAttribute( getSubDataObject_Type(), this.getCDCName(), "type", null, 1, 1, SubDataObject.class,
+        initEAttribute( getSubDataObject_Type(), ecorePackage.getEString(), "type", null, 1, 1, SubDataObject.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
-        initEAttribute( getSubDataObject_UnderlyingType(), this.getIec61850Name(), "underlyingType", null, 0, 1,
+        initEAttribute( getSubDataObject_UnderlyingType(), ecorePackage.getEString(), "underlyingType", null, 0, 1,
                 SubDataObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
                 !IS_DERIVED, IS_ORDERED );
         initEAttribute( getSubDataObject_UnderlyingTypeKind(), this.getDefinedAttributeTypeKind(), "underlyingTypeKind",
@@ -5016,7 +4664,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
 
         initEClass( titledClassEClass, TitledClass.class, "TitledClass", !IS_ABSTRACT, !IS_INTERFACE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEAttribute( getTitledClass_TitleID(), this.getDocID(), "titleID", null, 1, 1, TitledClass.class,
+        initEAttribute( getTitledClass_TitleID(), ecorePackage.getEString(), "titleID", null, 1, 1, TitledClass.class,
                 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
                 IS_ORDERED );
 
@@ -5113,59 +4761,24 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         addEEnumLiteral( undefinedAttributeTypeKindEEnum, UndefinedAttributeTypeKind.UNDEFINED );
 
         // Initialize data types
-        initEDataType( abbreviationNameEDataType, String.class, "AbbreviationName", IS_SERIALIZABLE,
-                !IS_GENERATED_INSTANCE_CLASS );
-        initEDataType( abstractLNClassNameEDataType, String.class, "AbstractLNClassName", IS_SERIALIZABLE,
-                !IS_GENERATED_INSTANCE_CLASS );
         initEDataType( acsiServicesKindObjectEDataType, ACSIServicesKind.class, "ACSIServicesKindObject",
                 IS_SERIALIZABLE, IS_GENERATED_INSTANCE_CLASS );
-        initEDataType( attributeNameEDataType, String.class, "AttributeName", IS_SERIALIZABLE,
-                !IS_GENERATED_INSTANCE_CLASS );
         initEDataType( attributeTypeKindEDataType, Enumerator.class, "AttributeTypeKind", IS_SERIALIZABLE,
                 !IS_GENERATED_INSTANCE_CLASS );
-        initEDataType( basicTypeNameEDataType, String.class, "BasicTypeName", IS_SERIALIZABLE,
-                !IS_GENERATED_INSTANCE_CLASS );
         initEDataType( cbKindObjectEDataType, CBKind.class, "CBKindObject", IS_SERIALIZABLE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEDataType( cdcNameEDataType, String.class, "CDCName", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS );
-        initEDataType( dataObjectNameEDataType, String.class, "DataObjectName", IS_SERIALIZABLE,
-                !IS_GENERATED_INSTANCE_CLASS );
         initEDataType( definedAttributeTypeKindObjectEDataType, DefinedAttributeTypeKind.class,
                 "DefinedAttributeTypeKindObject", IS_SERIALIZABLE, IS_GENERATED_INSTANCE_CLASS );
-        initEDataType( docIDEDataType, String.class, "DocID", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS );
-        initEDataType( emptyStringEDataType, String.class, "EmptyString", IS_SERIALIZABLE,
-                !IS_GENERATED_INSTANCE_CLASS );
-        initEDataType( fcAbbreviationEDataType, String.class, "FCAbbreviation", IS_SERIALIZABLE,
-                !IS_GENERATED_INSTANCE_CLASS );
-        initEDataType( iec61850NameEDataType, String.class, "Iec61850Name", IS_SERIALIZABLE,
-                !IS_GENERATED_INSTANCE_CLASS );
-        initEDataType( iec61850NameStringEDataType, String.class, "Iec61850NameString", IS_SERIALIZABLE,
-                !IS_GENERATED_INSTANCE_CLASS );
-        initEDataType( issuesTypeEDataType, String.class, "issuesType", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS );
         initEDataType( licenseKindObjectEDataType, LicenseKind.class, "LicenseKindObject", IS_SERIALIZABLE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEDataType( literalNameEDataType, String.class, "LiteralName", IS_SERIALIZABLE,
-                !IS_GENERATED_INSTANCE_CLASS );
-        initEDataType( lnClassNameEDataType, String.class, "LNClassName", IS_SERIALIZABLE,
-                !IS_GENERATED_INSTANCE_CLASS );
-        initEDataType( nsIdentifierEDataType, String.class, "NSIdentifier", IS_SERIALIZABLE,
-                !IS_GENERATED_INSTANCE_CLASS );
         initEDataType( nsReleaseEDataType, short.class, "NSRelease", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS );
         initEDataType( nsReleaseObjectEDataType, Short.class, "NSReleaseObject", IS_SERIALIZABLE,
                 !IS_GENERATED_INSTANCE_CLASS );
-        initEDataType( nsRevisionEDataType, String.class, "NSRevision", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS );
         initEDataType( nsVersionEDataType, int.class, "NSVersion", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS );
         initEDataType( nsVersionObjectEDataType, Integer.class, "NSVersionObject", IS_SERIALIZABLE,
                 !IS_GENERATED_INSTANCE_CLASS );
-        initEDataType( presenceConditionArgumentEDataType, String.class, "PresenceConditionArgument", IS_SERIALIZABLE,
-                !IS_GENERATED_INSTANCE_CLASS );
-        initEDataType( presenceConditionNameEDataType, String.class, "PresenceConditionName", IS_SERIALIZABLE,
-                !IS_GENERATED_INSTANCE_CLASS );
         initEDataType( pubStageObjectEDataType, PubStage.class, "PubStageObject", IS_SERIALIZABLE,
                 IS_GENERATED_INSTANCE_CLASS );
-        initEDataType( subDataObjectNameEDataType, String.class, "SubDataObjectName", IS_SERIALIZABLE,
-                !IS_GENERATED_INSTANCE_CLASS );
-        initEDataType( umlVersionEDataType, String.class, "UMLVersion", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS );
         initEDataType( undefinedAttributeTypeKindObjectEDataType, UndefinedAttributeTypeKind.class,
                 "UndefinedAttributeTypeKindObject", IS_SERIALIZABLE, IS_GENERATED_INSTANCE_CLASS );
 
@@ -5220,16 +4833,12 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         addAnnotation( abbreviationEClass, source, new String[] { "name", "tAbbreviation", "kind", "empty" } );
         addAnnotation( getAbbreviation_DescID(), source, new String[] { "kind", "attribute", "name", "descID" } );
         addAnnotation( getAbbreviation_Name(), source, new String[] { "kind", "attribute", "name", "name" } );
-        addAnnotation( abbreviationNameEDataType, source, new String[] { "name", "tAbbreviationName", "baseType",
-                "http://www.eclipse.org/emf/2003/XMLType#normalizedString" } );
         addAnnotation( abbreviationsEClass, source, new String[] { "name", "tAbbreviations", "kind", "elementOnly" } );
         addAnnotation( getAbbreviations_Abbreviation(), source,
                 new String[] { "kind", "element", "name", "Abbreviation", "namespace", "##targetNamespace" } );
         addAnnotation( abstractLNClassEClass, source,
                 new String[] { "name", "tAbstractLNClass", "kind", "elementOnly" } );
         addAnnotation( getAbstractLNClass_Name(), source, new String[] { "kind", "attribute", "name", "name" } );
-        addAnnotation( abstractLNClassNameEDataType, source,
-                new String[] { "name", "tAbstractLNClassName", "baseType", "tIec61850Name" } );
         addAnnotation( acsiServicesKindEEnum, source, new String[] { "name", "tACSIServicesKind" } );
         addAnnotation( acsiServicesKindObjectEDataType, source,
                 new String[] { "name", "tACSIServicesKind:Object", "baseType", "tACSIServicesKind" } );
@@ -5250,15 +4859,11 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 new String[] { "kind", "element", "name", "Service", "namespace", "##targetNamespace" } );
         addAnnotation( getApplicableServices_DataSetMemberOf(), source,
                 new String[] { "kind", "element", "name", "DataSetMemberOf", "namespace", "##targetNamespace" } );
-        addAnnotation( attributeNameEDataType, source,
-                new String[] { "name", "tAttributeName", "baseType", "tIec61850Name" } );
         addAnnotation( attributeTypeKindEDataType, source, new String[] { "name", "tAttributeTypeKind", "memberTypes",
                 "tDefinedAttributeTypeKind tUndefinedAttributeTypeKind" } );
         addAnnotation( basicTypeEClass, source, new String[] { "name", "tBasicType", "kind", "empty" } );
         addAnnotation( getBasicType_DescID(), source, new String[] { "kind", "attribute", "name", "descID" } );
         addAnnotation( getBasicType_Name(), source, new String[] { "kind", "attribute", "name", "name" } );
-        addAnnotation( basicTypeNameEDataType, source, new String[] { "name", "tBasicTypeName", "baseType",
-                "http://www.eclipse.org/emf/2003/XMLType#token", "minLength", "1" } );
         addAnnotation( basicTypesEClass, source, new String[] { "name", "tBasicTypes", "kind", "elementOnly" } );
         addAnnotation( getBasicTypes_BasicType(), source,
                 new String[] { "kind", "element", "name", "BasicType", "namespace", "##targetNamespace" } );
@@ -5279,8 +4884,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         addAnnotation( getCDC_TypeKindParameterized(), source,
                 new String[] { "kind", "attribute", "name", "typeKindParameterized" } );
         addAnnotation( getCDC_Variant(), source, new String[] { "kind", "attribute", "name", "variant" } );
-        addAnnotation( cdcNameEDataType, source,
-                new String[] { "name", "tCDCName", "baseType", "tIec61850Name", "minLength", "1" } );
         addAnnotation( cdCsEClass, source, new String[] { "name", "tCDCs", "kind", "elementOnly" } );
         addAnnotation( getCDCs_CDC(), source,
                 new String[] { "kind", "element", "name", "CDC", "namespace", "##targetNamespace" } );
@@ -5350,8 +4953,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 new String[] { "kind", "attribute", "name", "underlyingType" } );
         addAnnotation( getDataObject_UnderlyingTypeKind(), source,
                 new String[] { "kind", "attribute", "name", "underlyingTypeKind" } );
-        addAnnotation( dataObjectNameEDataType, source,
-                new String[] { "name", "tDataObjectName", "baseType", "tIec61850Name", "maxLength", "12" } );
         addAnnotation( dataSetMemberOfEClass, source, new String[] { "name", "tDataSetMemberOf", "kind", "empty" } );
         addAnnotation( getDataSetMemberOf_Cb(), source, new String[] { "kind", "attribute", "name", "cb" } );
         addAnnotation( definedAttributeTypeKindEEnum, source, new String[] { "name", "tDefinedAttributeTypeKind" } );
@@ -5363,16 +4964,12 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         addAnnotation( getDoc_Any(), source, new String[] { "kind", "elementWildcard", "wildcards", "##any", "name",
                 ":2", "processing", "lax", "group", "#group:1" } );
         addAnnotation( getDoc_Id(), source, new String[] { "kind", "attribute", "name", "id" } );
-        addAnnotation( docIDEDataType, source, new String[] { "name", "tDocID", "baseType",
-                "http://www.eclipse.org/emf/2003/XMLType#normalizedString", "minLength", "1" } );
         addAnnotation( documentedClassEClass, source, new String[] { "name", "tDocumentedClass", "kind", "empty" } );
         addAnnotation( getDocumentedClass_Deprecated(), source,
                 new String[] { "kind", "attribute", "name", "deprecated" } );
         addAnnotation( getDocumentedClass_DescID(), source, new String[] { "kind", "attribute", "name", "descID" } );
         addAnnotation( getDocumentedClass_Informative(), source,
                 new String[] { "kind", "attribute", "name", "informative" } );
-        addAnnotation( emptyStringEDataType, source, new String[] { "name", "tEmptyString", "baseType",
-                "http://www.eclipse.org/emf/2003/XMLType#normalizedString", "maxLength", "0" } );
         addAnnotation( enumerationEClass, source, new String[] { "name", "tEnumeration", "kind", "elementOnly" } );
         addAnnotation( getEnumeration_Literal(), source,
                 new String[] { "kind", "element", "name", "Literal", "namespace", "##targetNamespace" } );
@@ -5382,9 +4979,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         addAnnotation( enumerationsEClass, source, new String[] { "name", "tEnumerations", "kind", "elementOnly" } );
         addAnnotation( getEnumerations_Enumeration(), source,
                 new String[] { "kind", "element", "name", "Enumeration", "namespace", "##targetNamespace" } );
-        addAnnotation( fcAbbreviationEDataType, source,
-                new String[] { "name", "tFCAbbreviation", "baseType", "http://www.eclipse.org/emf/2003/XMLType#token",
-                        "minLength", "1", "pattern", "[\\p{IsBasicLatin}]+" } );
         addAnnotation( functionalConstraintEClass, source,
                 new String[] { "name", "tFunctionalConstraint", "kind", "elementOnly" } );
         addAnnotation( getFunctionalConstraint_ApplicableServices(), source,
@@ -5399,15 +4993,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 new String[] { "name", "tFunctionalConstraints", "kind", "elementOnly" } );
         addAnnotation( getFunctionalConstraints_FunctionalConstraint(), source,
                 new String[] { "kind", "element", "name", "FunctionalConstraint", "namespace", "##targetNamespace" } );
-        addAnnotation( iec61850NameEDataType, source,
-                new String[] { "name", "tIec61850Name", "baseType", "http://www.eclipse.org/emf/2003/XMLType#Name",
-                        "minLength", "1", "pattern", "[\\p{IsBasicLatin}\\p{IsLatin-1Supplement}]+" } );
-        addAnnotation( iec61850NameStringEDataType, source,
-                new String[] { "name", "tIec61850NameString", "baseType",
-                        "http://www.eclipse.org/emf/2003/XMLType#normalizedString", "pattern",
-                        "[\\p{IsBasicLatin}\\p{IsLatin-1Supplement}]+" } );
-        addAnnotation( issuesTypeEDataType, source, new String[] { "name", "tissues_._type", "baseType",
-                "http://www.eclipse.org/emf/2003/XMLType#normalizedString", "minLength", "1" } );
         addAnnotation( licenseEClass, source, new String[] { "name", "tLicense", "kind", "mixed" } );
         addAnnotation( getLicense_Mixed(), source, new String[] { "kind", "elementWildcard", "name", ":mixed" } );
         addAnnotation( getLicense_Kind(), source, new String[] { "kind", "attribute", "name", "kind" } );
@@ -5418,10 +5003,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         addAnnotation( literalEClass, source, new String[] { "name", "tLiteral", "kind", "empty" } );
         addAnnotation( getLiteral_LiteralVal(), source, new String[] { "kind", "attribute", "name", "literalVal" } );
         addAnnotation( getLiteral_Name(), source, new String[] { "kind", "attribute", "name", "name" } );
-        addAnnotation( literalNameEDataType, source,
-                new String[] { "name", "tLiteralName", "baseType",
-                        "http://www.eclipse.org/emf/2003/XMLType#normalizedString", "maxLength", "127", "pattern",
-                        "[\\p{IsBasicLatin}\\p{IsLatin-1Supplement}]*" } );
         addAnnotation( lnClassEClass, source, new String[] { "name", "tLNClass", "kind", "elementOnly" } );
         addAnnotation( getLNClass_CanHaveLOG(), source, new String[] { "kind", "attribute", "name", "canHaveLOG" } );
         addAnnotation( getLNClass_IsExtension(), source, new String[] { "kind", "attribute", "name", "isExtension" } );
@@ -5431,8 +5012,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 new String[] { "kind", "element", "name", "AbstractLNClass", "namespace", "##targetNamespace" } );
         addAnnotation( getLNClasses_LNClass(), source,
                 new String[] { "kind", "element", "name", "LNClass", "namespace", "##targetNamespace" } );
-        addAnnotation( lnClassNameEDataType, source, new String[] { "name", "tLNClassName", "baseType",
-                "http://www.eclipse.org/emf/2003/XMLType#Name", "pattern", "LLN0 [A-Z]{4}" } );
         addAnnotation( noticeEClass, source, new String[] { "name", "tNotice", "kind", "mixed" } );
         addAnnotation( getNotice_Mixed(), source, new String[] { "kind", "elementWildcard", "name", ":mixed" } );
         addAnnotation( nsEClass, source, new String[] { "name", "tNS", "kind", "elementOnly" } );
@@ -5477,14 +5056,10 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         addAnnotation( getNSDoc_UmlDate(), source, new String[] { "kind", "attribute", "name", "umlDate" } );
         addAnnotation( getNSDoc_UmlVersion(), source, new String[] { "kind", "attribute", "name", "umlVersion" } );
         addAnnotation( getNSDoc_Version(), source, new String[] { "kind", "attribute", "name", "version" } );
-        addAnnotation( nsIdentifierEDataType, source, new String[] { "name", "tNSIdentifier", "baseType",
-                "http://www.eclipse.org/emf/2003/XMLType#normalizedString", "pattern", "\\p{IsBasicLatin}+" } );
         addAnnotation( nsReleaseEDataType, source, new String[] { "name", "tNSRelease", "baseType",
                 "http://www.eclipse.org/emf/2003/XMLType#unsignedByte", "minExclusive", "0" } );
         addAnnotation( nsReleaseObjectEDataType, source,
                 new String[] { "name", "tNSRelease:Object", "baseType", "tNSRelease" } );
-        addAnnotation( nsRevisionEDataType, source, new String[] { "name", "tNSRevision", "baseType",
-                "http://www.eclipse.org/emf/2003/XMLType#token", "pattern", "[A-Z]" } );
         addAnnotation( nsVersionEDataType, source,
                 new String[] { "name", "tNSVersion", "baseType",
                         "http://www.eclipse.org/emf/2003/XMLType#unsignedShort", "minInclusive", "2002", "maxInclusive",
@@ -5499,10 +5074,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
         addAnnotation( getPresenceCondition_Name(), source, new String[] { "kind", "attribute", "name", "name" } );
         addAnnotation( getPresenceCondition_TitleID(), source,
                 new String[] { "kind", "attribute", "name", "titleID" } );
-        addAnnotation( presenceConditionArgumentEDataType, source, new String[] { "name", "tPresenceConditionArgument",
-                "baseType", "http://www.eclipse.org/emf/2003/XMLType#normalizedString" } );
-        addAnnotation( presenceConditionNameEDataType, source, new String[] { "name", "tPresenceConditionName",
-                "baseType", "http://www.eclipse.org/emf/2003/XMLType#normalizedString" } );
         addAnnotation( presenceConditionsEClass, source,
                 new String[] { "name", "tPresenceConditions", "kind", "elementOnly" } );
         addAnnotation( getPresenceConditions_PresenceCondition(), source,
@@ -5647,12 +5218,8 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage {
                 new String[] { "kind", "attribute", "name", "underlyingType" } );
         addAnnotation( getSubDataObject_UnderlyingTypeKind(), source,
                 new String[] { "kind", "attribute", "name", "underlyingTypeKind" } );
-        addAnnotation( subDataObjectNameEDataType, source,
-                new String[] { "name", "tSubDataObjectName", "baseType", "tIec61850Name" } );
         addAnnotation( titledClassEClass, source, new String[] { "name", "tTitledClass", "kind", "empty" } );
         addAnnotation( getTitledClass_TitleID(), source, new String[] { "kind", "attribute", "name", "titleID" } );
-        addAnnotation( umlVersionEDataType, source, new String[] { "name", "tUMLVersion", "baseType",
-                "http://www.eclipse.org/emf/2003/XMLType#Name", "minLength", "1" } );
         addAnnotation( undefinedAttributeTypeKindEEnum, source,
                 new String[] { "name", "tUndefinedAttributeTypeKind" } );
         addAnnotation( undefinedAttributeTypeKindObjectEDataType, source, new String[] { "name",
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdValidator.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdValidator.java
index 50fb1ec6128b65fb5ec88c09a7c92041157eb224..3f144960c63a79869b797e3b81539530fe34a148 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdValidator.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdValidator.java
@@ -32,8 +32,6 @@ import org.eclipse.emf.common.util.ResourceLocator;
 import org.eclipse.emf.ecore.EPackage;
 
 import org.eclipse.emf.ecore.util.EObjectValidator;
-
-import org.eclipse.emf.ecore.xml.type.util.XMLTypeUtil;
 import org.eclipse.emf.ecore.xml.type.util.XMLTypeValidator;
 
 /**
@@ -230,66 +228,26 @@ public class NsdValidator extends EObjectValidator {
             return validatePubStage( ( PubStage ) value, diagnostics, context );
         case NsdPackage.UNDEFINED_ATTRIBUTE_TYPE_KIND:
             return validateUndefinedAttributeTypeKind( ( UndefinedAttributeTypeKind ) value, diagnostics, context );
-        case NsdPackage.ABBREVIATION_NAME:
-            return validateAbbreviationName( ( String ) value, diagnostics, context );
-        case NsdPackage.ABSTRACT_LN_CLASS_NAME:
-            return validateAbstractLNClassName( ( String ) value, diagnostics, context );
         case NsdPackage.ACSI_SERVICES_KIND_OBJECT:
             return validateACSIServicesKindObject( ( ACSIServicesKind ) value, diagnostics, context );
-        case NsdPackage.ATTRIBUTE_NAME:
-            return validateAttributeName( ( String ) value, diagnostics, context );
         case NsdPackage.ATTRIBUTE_TYPE_KIND:
             return validateAttributeTypeKind( ( Enumerator ) value, diagnostics, context );
-        case NsdPackage.BASIC_TYPE_NAME:
-            return validateBasicTypeName( ( String ) value, diagnostics, context );
         case NsdPackage.CB_KIND_OBJECT:
             return validateCBKindObject( ( CBKind ) value, diagnostics, context );
-        case NsdPackage.CDC_NAME:
-            return validateCDCName( ( String ) value, diagnostics, context );
-        case NsdPackage.DATA_OBJECT_NAME:
-            return validateDataObjectName( ( String ) value, diagnostics, context );
         case NsdPackage.DEFINED_ATTRIBUTE_TYPE_KIND_OBJECT:
             return validateDefinedAttributeTypeKindObject( ( DefinedAttributeTypeKind ) value, diagnostics, context );
-        case NsdPackage.DOC_ID:
-            return validateDocID( ( String ) value, diagnostics, context );
-        case NsdPackage.EMPTY_STRING:
-            return validateEmptyString( ( String ) value, diagnostics, context );
-        case NsdPackage.FC_ABBREVIATION:
-            return validateFCAbbreviation( ( String ) value, diagnostics, context );
-        case NsdPackage.IEC61850_NAME:
-            return validateIec61850Name( ( String ) value, diagnostics, context );
-        case NsdPackage.IEC61850_NAME_STRING:
-            return validateIec61850NameString( ( String ) value, diagnostics, context );
-        case NsdPackage.ISSUES_TYPE:
-            return validateissuesType( ( String ) value, diagnostics, context );
         case NsdPackage.LICENSE_KIND_OBJECT:
             return validateLicenseKindObject( ( LicenseKind ) value, diagnostics, context );
-        case NsdPackage.LITERAL_NAME:
-            return validateLiteralName( ( String ) value, diagnostics, context );
-        case NsdPackage.LN_CLASS_NAME:
-            return validateLNClassName( ( String ) value, diagnostics, context );
-        case NsdPackage.NS_IDENTIFIER:
-            return validateNSIdentifier( ( String ) value, diagnostics, context );
         case NsdPackage.NS_RELEASE:
             return validateNSRelease( ( Short ) value, diagnostics, context );
         case NsdPackage.NS_RELEASE_OBJECT:
             return validateNSReleaseObject( ( Short ) value, diagnostics, context );
-        case NsdPackage.NS_REVISION:
-            return validateNSRevision( ( String ) value, diagnostics, context );
         case NsdPackage.NS_VERSION:
             return validateNSVersion( ( Integer ) value, diagnostics, context );
         case NsdPackage.NS_VERSION_OBJECT:
             return validateNSVersionObject( ( Integer ) value, diagnostics, context );
-        case NsdPackage.PRESENCE_CONDITION_ARGUMENT:
-            return validatePresenceConditionArgument( ( String ) value, diagnostics, context );
-        case NsdPackage.PRESENCE_CONDITION_NAME:
-            return validatePresenceConditionName( ( String ) value, diagnostics, context );
         case NsdPackage.PUB_STAGE_OBJECT:
             return validatePubStageObject( ( PubStage ) value, diagnostics, context );
-        case NsdPackage.SUB_DATA_OBJECT_NAME:
-            return validateSubDataObjectName( ( String ) value, diagnostics, context );
-        case NsdPackage.UML_VERSION:
-            return validateUMLVersion( ( String ) value, diagnostics, context );
         case NsdPackage.UNDEFINED_ATTRIBUTE_TYPE_KIND_OBJECT:
             return validateUndefinedAttributeTypeKindObject( ( UndefinedAttributeTypeKind ) value, diagnostics,
                     context );
@@ -846,29 +804,6 @@ public class NsdValidator extends EObjectValidator {
         return true;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateAbbreviationName( String abbreviationName, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        return true;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateAbstractLNClassName( String abstractLNClassName, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        boolean result = validateIec61850Name_Pattern( abstractLNClassName, diagnostics, context );
-        if( result || diagnostics != null )
-            result &= validateIec61850Name_MinLength( abstractLNClassName, diagnostics, context );
-        return result;
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -879,19 +814,6 @@ public class NsdValidator extends EObjectValidator {
         return true;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateAttributeName( String attributeName, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        boolean result = validateIec61850Name_Pattern( attributeName, diagnostics, context );
-        if( result || diagnostics != null )
-            result &= validateIec61850Name_MinLength( attributeName, diagnostics, context );
-        return result;
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -941,32 +863,6 @@ public class NsdValidator extends EObjectValidator {
         return false;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateBasicTypeName( String basicTypeName, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        boolean result = validateBasicTypeName_MinLength( basicTypeName, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * Validates the MinLength constraint of '<em>Basic Type Name</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateBasicTypeName_MinLength( String basicTypeName, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        int length = basicTypeName.length();
-        boolean result = length >= 1;
-        if( !result && diagnostics != null ) reportMinLengthViolation( NsdPackage.Literals.BASIC_TYPE_NAME,
-                basicTypeName, length, 1, diagnostics, context );
-        return result;
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -977,62 +873,6 @@ public class NsdValidator extends EObjectValidator {
         return true;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateCDCName( String cdcName, DiagnosticChain diagnostics, Map< Object, Object > context ) {
-        boolean result = validateIec61850Name_Pattern( cdcName, diagnostics, context );
-        if( result || diagnostics != null ) result &= validateCDCName_MinLength( cdcName, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * Validates the MinLength constraint of '<em>CDC Name</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateCDCName_MinLength( String cdcName, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        int length = cdcName.length();
-        boolean result = length >= 1;
-        if( !result && diagnostics != null )
-            reportMinLengthViolation( NsdPackage.Literals.CDC_NAME, cdcName, length, 1, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateDataObjectName( String dataObjectName, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        boolean result = validateIec61850Name_Pattern( dataObjectName, diagnostics, context );
-        if( result || diagnostics != null )
-            result &= validateIec61850Name_MinLength( dataObjectName, diagnostics, context );
-        if( result || diagnostics != null )
-            result &= validateDataObjectName_MaxLength( dataObjectName, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * Validates the MaxLength constraint of '<em>Data Object Name</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateDataObjectName_MaxLength( String dataObjectName, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        int length = dataObjectName.length();
-        boolean result = length <= 12;
-        if( !result && diagnostics != null ) reportMaxLengthViolation( NsdPackage.Literals.DATA_OBJECT_NAME,
-                dataObjectName, length, 12, diagnostics, context );
-        return result;
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1043,213 +883,6 @@ public class NsdValidator extends EObjectValidator {
         return true;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateDocID( String docID, DiagnosticChain diagnostics, Map< Object, Object > context ) {
-        boolean result = validateDocID_MinLength( docID, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * Validates the MinLength constraint of '<em>Doc ID</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateDocID_MinLength( String docID, DiagnosticChain diagnostics, Map< Object, Object > context ) {
-        int length = docID.length();
-        boolean result = length >= 1;
-        if( !result && diagnostics != null )
-            reportMinLengthViolation( NsdPackage.Literals.DOC_ID, docID, length, 1, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateEmptyString( String emptyString, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        boolean result = validateEmptyString_MaxLength( emptyString, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * Validates the MaxLength constraint of '<em>Empty String</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateEmptyString_MaxLength( String emptyString, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        int length = emptyString.length();
-        boolean result = length <= 0;
-        if( !result && diagnostics != null )
-            reportMaxLengthViolation( NsdPackage.Literals.EMPTY_STRING, emptyString, length, 0, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateFCAbbreviation( String fcAbbreviation, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        boolean result = validateFCAbbreviation_Pattern( fcAbbreviation, diagnostics, context );
-        if( result || diagnostics != null )
-            result &= validateFCAbbreviation_MinLength( fcAbbreviation, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @see #validateFCAbbreviation_Pattern
-     */
-    public static final PatternMatcher[][] FC_ABBREVIATION__PATTERN__VALUES = new PatternMatcher[][] {
-            new PatternMatcher[] { XMLTypeUtil.createPatternMatcher( "[\\p{IsBasicLatin}]+" ) } };
-
-    /**
-     * Validates the Pattern constraint of '<em>FC Abbreviation</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateFCAbbreviation_Pattern( String fcAbbreviation, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        return validatePattern( NsdPackage.Literals.FC_ABBREVIATION, fcAbbreviation, FC_ABBREVIATION__PATTERN__VALUES,
-                diagnostics, context );
-    }
-
-    /**
-     * Validates the MinLength constraint of '<em>FC Abbreviation</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateFCAbbreviation_MinLength( String fcAbbreviation, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        int length = fcAbbreviation.length();
-        boolean result = length >= 1;
-        if( !result && diagnostics != null ) reportMinLengthViolation( NsdPackage.Literals.FC_ABBREVIATION,
-                fcAbbreviation, length, 1, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateIec61850Name( String iec61850Name, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        boolean result = validateIec61850Name_Pattern( iec61850Name, diagnostics, context );
-        if( result || diagnostics != null )
-            result &= validateIec61850Name_MinLength( iec61850Name, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @see #validateIec61850Name_Pattern
-     */
-    public static final PatternMatcher[][] IEC61850_NAME__PATTERN__VALUES = new PatternMatcher[][] {
-            new PatternMatcher[] { XMLTypeUtil.createPatternMatcher( "[\\p{IsBasicLatin}\\p{IsLatin-1Supplement}]+" ) },
-            new PatternMatcher[] { XMLTypeUtil.createPatternMatcher( "\\i\\c*" ) } };
-
-    /**
-     * Validates the Pattern constraint of '<em>Iec61850 Name</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateIec61850Name_Pattern( String iec61850Name, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        return validatePattern( NsdPackage.Literals.IEC61850_NAME, iec61850Name, IEC61850_NAME__PATTERN__VALUES,
-                diagnostics, context );
-    }
-
-    /**
-     * Validates the MinLength constraint of '<em>Iec61850 Name</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateIec61850Name_MinLength( String iec61850Name, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        int length = iec61850Name.length();
-        boolean result = length >= 1;
-        if( !result && diagnostics != null ) reportMinLengthViolation( NsdPackage.Literals.IEC61850_NAME, iec61850Name,
-                length, 1, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateIec61850NameString( String iec61850NameString, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        boolean result = validateIec61850NameString_Pattern( iec61850NameString, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @see #validateIec61850NameString_Pattern
-     */
-    public static final PatternMatcher[][] IEC61850_NAME_STRING__PATTERN__VALUES = new PatternMatcher[][] {
-            new PatternMatcher[] {
-                    XMLTypeUtil.createPatternMatcher( "[\\p{IsBasicLatin}\\p{IsLatin-1Supplement}]+" ) } };
-
-    /**
-     * Validates the Pattern constraint of '<em>Iec61850 Name String</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateIec61850NameString_Pattern( String iec61850NameString, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        return validatePattern( NsdPackage.Literals.IEC61850_NAME_STRING, iec61850NameString,
-                IEC61850_NAME_STRING__PATTERN__VALUES, diagnostics, context );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateissuesType( String issuesType, DiagnosticChain diagnostics, Map< Object, Object > context ) {
-        boolean result = validateissuesType_MinLength( issuesType, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * Validates the MinLength constraint of '<em>issues Type</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateissuesType_MinLength( String issuesType, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        int length = issuesType.length();
-        boolean result = length >= 1;
-        if( !result && diagnostics != null )
-            reportMinLengthViolation( NsdPackage.Literals.ISSUES_TYPE, issuesType, length, 1, diagnostics, context );
-        return result;
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1260,122 +893,6 @@ public class NsdValidator extends EObjectValidator {
         return true;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateLiteralName( String literalName, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        boolean result = validateLiteralName_Pattern( literalName, diagnostics, context );
-        if( result || diagnostics != null )
-            result &= validateLiteralName_MaxLength( literalName, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @see #validateLiteralName_Pattern
-     */
-    public static final PatternMatcher[][] LITERAL_NAME__PATTERN__VALUES = new PatternMatcher[][] {
-            new PatternMatcher[] {
-                    XMLTypeUtil.createPatternMatcher( "[\\p{IsBasicLatin}\\p{IsLatin-1Supplement}]*" ) } };
-
-    /**
-     * Validates the Pattern constraint of '<em>Literal Name</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateLiteralName_Pattern( String literalName, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        return validatePattern( NsdPackage.Literals.LITERAL_NAME, literalName, LITERAL_NAME__PATTERN__VALUES,
-                diagnostics, context );
-    }
-
-    /**
-     * Validates the MaxLength constraint of '<em>Literal Name</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateLiteralName_MaxLength( String literalName, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        int length = literalName.length();
-        boolean result = length <= 127;
-        if( !result && diagnostics != null ) reportMaxLengthViolation( NsdPackage.Literals.LITERAL_NAME, literalName,
-                length, 127, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateLNClassName( String lnClassName, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        boolean result = validateLNClassName_Pattern( lnClassName, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @see #validateLNClassName_Pattern
-     */
-    public static final PatternMatcher[][] LN_CLASS_NAME__PATTERN__VALUES = new PatternMatcher[][] {
-            new PatternMatcher[] { XMLTypeUtil.createPatternMatcher( "LLN0" ),
-                    XMLTypeUtil.createPatternMatcher( "[A-Z]{4}" ) },
-            new PatternMatcher[] { XMLTypeUtil.createPatternMatcher( "\\i\\c*" ) } };
-
-    /**
-     * Validates the Pattern constraint of '<em>LN Class Name</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateLNClassName_Pattern( String lnClassName, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        return validatePattern( NsdPackage.Literals.LN_CLASS_NAME, lnClassName, LN_CLASS_NAME__PATTERN__VALUES,
-                diagnostics, context );
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateNSIdentifier( String nsIdentifier, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        boolean result = validateNSIdentifier_Pattern( nsIdentifier, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @see #validateNSIdentifier_Pattern
-     */
-    public static final PatternMatcher[][] NS_IDENTIFIER__PATTERN__VALUES = new PatternMatcher[][] {
-            new PatternMatcher[] { XMLTypeUtil.createPatternMatcher( "\\p{IsBasicLatin}+" ) } };
-
-    /**
-     * Validates the Pattern constraint of '<em>NS Identifier</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateNSIdentifier_Pattern( String nsIdentifier, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        return validatePattern( NsdPackage.Literals.NS_IDENTIFIER, nsIdentifier, NS_IDENTIFIER__PATTERN__VALUES,
-                diagnostics, context );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1423,37 +940,6 @@ public class NsdValidator extends EObjectValidator {
         return result;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateNSRevision( String nsRevision, DiagnosticChain diagnostics, Map< Object, Object > context ) {
-        boolean result = validateNSRevision_Pattern( nsRevision, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @see #validateNSRevision_Pattern
-     */
-    public static final PatternMatcher[][] NS_REVISION__PATTERN__VALUES = new PatternMatcher[][] {
-            new PatternMatcher[] { XMLTypeUtil.createPatternMatcher( "[A-Z]" ) } };
-
-    /**
-     * Validates the Pattern constraint of '<em>NS Revision</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateNSRevision_Pattern( String nsRevision, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        return validatePattern( NsdPackage.Literals.NS_REVISION, nsRevision, NS_REVISION__PATTERN__VALUES, diagnostics,
-                context );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1519,26 +1005,6 @@ public class NsdValidator extends EObjectValidator {
         return result;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validatePresenceConditionArgument( String presenceConditionArgument, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        return true;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validatePresenceConditionName( String presenceConditionName, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        return true;
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1549,45 +1015,6 @@ public class NsdValidator extends EObjectValidator {
         return true;
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateSubDataObjectName( String subDataObjectName, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        boolean result = validateIec61850Name_Pattern( subDataObjectName, diagnostics, context );
-        if( result || diagnostics != null )
-            result &= validateIec61850Name_MinLength( subDataObjectName, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateUMLVersion( String umlVersion, DiagnosticChain diagnostics, Map< Object, Object > context ) {
-        boolean result = xmlTypeValidator.validateName_Pattern( umlVersion, diagnostics, context );
-        if( result || diagnostics != null ) result &= validateUMLVersion_MinLength( umlVersion, diagnostics, context );
-        return result;
-    }
-
-    /**
-     * Validates the MinLength constraint of '<em>UML Version</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public boolean validateUMLVersion_MinLength( String umlVersion, DiagnosticChain diagnostics,
-            Map< Object, Object > context ) {
-        int length = umlVersion.length();
-        boolean result = length >= 1;
-        if( !result && diagnostics != null )
-            reportMinLengthViolation( NsdPackage.Literals.UML_VERSION, umlVersion, length, 1, diagnostics, context );
-        return result;
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->