diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.ecore b/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.ecore
index dc71da6ff2c922c95f09df08634794422b0c72a9..6bd1b09974a4da399d9429de6248c69a973e49de 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.ecore
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.ecore
@@ -1154,25 +1154,11 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="ParentServer" ordered="false"
         eType="#//Server" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//Server/LDevice"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="AnyLN" ordered="false"
-        upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"
-        transient="true">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="kind" value="group"/>
-      </eAnnotations>
-    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="LN0" ordered="false" eType="#//LN0"
-        volatile="true" unsettable="true" containment="true" eOpposite="#//LN0/ParentLDevice">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#AnyLN"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        unsettable="true" containment="true" resolveProxies="false" eOpposite="#//LN0/ParentLDevice"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="LN" ordered="false" upperBound="-1"
-        eType="#//LN" volatile="true" unsettable="true" containment="true" eOpposite="#//LN/ParentLDevice">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#AnyLN"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        eType="#//LN" unsettable="true" containment="true" resolveProxies="false"
+        eOpposite="#//LN/ParentLDevice"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ReferredByIEDName" ordered="false"
         eType="#//IEDName" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//IEDName/RefersToLDevice"/>
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.genmodel b/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.genmodel
index 261da447ea05d10aad9dbe5dd81e92f5e5bedbb0..d8d7b9b5548b51dda0f4c60cd04072ee43e27da4 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.genmodel
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.genmodel
@@ -630,7 +630,6 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SCL.ecore#//LDevice/ldName"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SCL.ecore#//LDevice/AccessControl"/>
       <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference SCL.ecore#//LDevice/ParentServer"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EAttribute SCL.ecore#//LDevice/AnyLN"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SCL.ecore#//LDevice/LN0"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SCL.ecore#//LDevice/LN"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SCL.ecore#//LDevice/ReferredByIEDName"/>
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/LDevice.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/LDevice.java
index 4aafd189c0ea9b29afecb4efddaa87731fa3d1de..54de597c6374b724f1ef7a70ee4c46bb5374550f 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/LDevice.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/LDevice.java
@@ -21,8 +21,6 @@
 package fr.centralesupelec.edf.riseclipse.iec61850.scl;
 
 import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.util.FeatureMap;
 import fr.centralesupelec.edf.riseclipse.iec61850.scl.IED;
 
 /**
@@ -38,7 +36,6 @@ import fr.centralesupelec.edf.riseclipse.iec61850.scl.IED;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LDevice#getLdName <em>Ld Name</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LDevice#getAccessControl <em>Access Control</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LDevice#getParentServer <em>Parent Server</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LDevice#getAnyLN <em>Any LN</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LDevice#getLN0 <em>LN0</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LDevice#getLN <em>LN</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LDevice#getReferredByIEDName <em>Referred By IED Name</em>}</li>
@@ -236,19 +233,6 @@ public interface LDevice extends UnNaming {
      */
     void setParentServer( Server value );
 
-    /**
-     * Returns the value of the '<em><b>Any LN</b></em>' attribute list.
-     * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Any LN</em>' attribute list.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getLDevice_AnyLN()
-     * @model dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true" transient="true" ordered="false"
-     *        extendedMetaData="kind='group'"
-     * @generated
-     */
-    FeatureMap getAnyLN();
-
     /**
      * Returns the value of the '<em><b>LN</b></em>' containment reference list.
      * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LN}.
@@ -264,8 +248,7 @@ public interface LDevice extends UnNaming {
      * @see #unsetLN()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getLDevice_LN()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.LN#getParentLDevice
-     * @model opposite="ParentLDevice" containment="true" unsettable="true" volatile="true" ordered="false"
-     *        extendedMetaData="group='#AnyLN'"
+     * @model opposite="ParentLDevice" containment="true" unsettable="true" ordered="false"
      * @generated
      */
     EList< LN > getLN();
@@ -453,8 +436,7 @@ public interface LDevice extends UnNaming {
      * @see #setLN0(LN0)
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getLDevice_LN0()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.LN0#getParentLDevice
-     * @model opposite="ParentLDevice" containment="true" unsettable="true" volatile="true" ordered="false"
-     *        extendedMetaData="group='#AnyLN'"
+     * @model opposite="ParentLDevice" containment="true" unsettable="true" ordered="false"
      * @generated
      */
     LN0 getLN0();
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/SclPackage.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/SclPackage.java
index cd70cd55d8a5819936568aa0811371bf9806bc30..bd57fb014f63c453b0337a848e292715cbfe58bf 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/SclPackage.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/SclPackage.java
@@ -12415,15 +12415,6 @@ public interface SclPackage extends EPackage {
      */
     int LDEVICE__PARENT_SERVER = UN_NAMING_FEATURE_COUNT + 3;
 
-    /**
-     * The feature id for the '<em><b>Any LN</b></em>' attribute list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LDEVICE__ANY_LN = UN_NAMING_FEATURE_COUNT + 4;
-
     /**
      * The feature id for the '<em><b>LN0</b></em>' containment reference.
      * <!-- begin-user-doc -->
@@ -12431,7 +12422,7 @@ public interface SclPackage extends EPackage {
      * @generated
      * @ordered
      */
-    int LDEVICE__LN0 = UN_NAMING_FEATURE_COUNT + 5;
+    int LDEVICE__LN0 = UN_NAMING_FEATURE_COUNT + 4;
 
     /**
      * The feature id for the '<em><b>LN</b></em>' containment reference list.
@@ -12440,7 +12431,7 @@ public interface SclPackage extends EPackage {
      * @generated
      * @ordered
      */
-    int LDEVICE__LN = UN_NAMING_FEATURE_COUNT + 6;
+    int LDEVICE__LN = UN_NAMING_FEATURE_COUNT + 5;
 
     /**
      * The feature id for the '<em><b>Referred By IED Name</b></em>' reference.
@@ -12449,7 +12440,7 @@ public interface SclPackage extends EPackage {
      * @generated
      * @ordered
      */
-    int LDEVICE__REFERRED_BY_IED_NAME = UN_NAMING_FEATURE_COUNT + 7;
+    int LDEVICE__REFERRED_BY_IED_NAME = UN_NAMING_FEATURE_COUNT + 6;
 
     /**
      * The feature id for the '<em><b>Refers To Higher Level LDevice</b></em>' reference.
@@ -12458,7 +12449,7 @@ public interface SclPackage extends EPackage {
      * @generated
      * @ordered
      */
-    int LDEVICE__REFERS_TO_HIGHER_LEVEL_LDEVICE = UN_NAMING_FEATURE_COUNT + 8;
+    int LDEVICE__REFERS_TO_HIGHER_LEVEL_LDEVICE = UN_NAMING_FEATURE_COUNT + 7;
 
     /**
      * The feature id for the '<em><b>Refers To Lower Level LDevices</b></em>' reference list.
@@ -12467,7 +12458,7 @@ public interface SclPackage extends EPackage {
      * @generated
      * @ordered
      */
-    int LDEVICE__REFERS_TO_LOWER_LEVEL_LDEVICES = UN_NAMING_FEATURE_COUNT + 9;
+    int LDEVICE__REFERS_TO_LOWER_LEVEL_LDEVICES = UN_NAMING_FEATURE_COUNT + 8;
 
     /**
      * The number of structural features of the '<em>LDevice</em>' class.
@@ -12476,7 +12467,7 @@ public interface SclPackage extends EPackage {
      * @generated
      * @ordered
      */
-    int LDEVICE_FEATURE_COUNT = UN_NAMING_FEATURE_COUNT + 10;
+    int LDEVICE_FEATURE_COUNT = UN_NAMING_FEATURE_COUNT + 9;
 
     /**
      * The operation id for the '<em>Build Explicit Links</em>' operation.
@@ -27322,17 +27313,6 @@ public interface SclPackage extends EPackage {
      */
     EReference getLDevice_ParentServer();
 
-    /**
-     * Returns the meta object for the attribute list '{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LDevice#getAnyLN <em>Any LN</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute list '<em>Any LN</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.LDevice#getAnyLN()
-     * @see #getLDevice()
-     * @generated
-     */
-    EAttribute getLDevice_AnyLN();
-
     /**
      * Returns the meta object for the containment reference list '{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.LDevice#getLN <em>LN</em>}'.
      * <!-- begin-user-doc -->
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/LDeviceImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/LDeviceImpl.java
index 3a4a2792460b8e30bfa5ae69b6c643b7344f6327..297028a397d79a407573dd26e4e11a5b079435dd 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/LDeviceImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/LDeviceImpl.java
@@ -30,10 +30,9 @@ import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.BasicFeatureMap;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
 import org.eclipse.emf.ecore.util.EObjectWithInverseEList;
 import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.FeatureMap;
 import org.eclipse.emf.ecore.util.InternalEList;
 
 import fr.centralesupelec.edf.riseclipse.iec61850.scl.AccessControl;
@@ -64,7 +63,6 @@ import java.lang.reflect.InvocationTargetException;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.LDeviceImpl#getLdName <em>Ld Name</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.LDeviceImpl#getAccessControl <em>Access Control</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.LDeviceImpl#getParentServer <em>Parent Server</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.LDeviceImpl#getAnyLN <em>Any LN</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.LDeviceImpl#getLN0 <em>LN0</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.LDeviceImpl#getLN <em>LN</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.LDeviceImpl#getReferredByIEDName <em>Referred By IED Name</em>}</li>
@@ -153,14 +151,33 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
     protected boolean accessControlESet;
 
     /**
-     * The cached value of the '{@link #getAnyLN() <em>Any LN</em>}' attribute list.
+     * The cached value of the '{@link #getLN0() <em>LN0</em>}' containment reference.
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @see #getAnyLN()
+     * @see #getLN0()
      * @generated
      * @ordered
      */
-    protected FeatureMap anyLN;
+    protected LN0 ln0;
+
+    /**
+     * This is true if the LN0 containment reference has been set.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     * @ordered
+     */
+    protected boolean ln0ESet;
+
+    /**
+     * The cached value of the '{@link #getLN() <em>LN</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getLN()
+     * @generated
+     * @ordered
+     */
+    protected EList< LN > ln;
 
     /**
      * The cached value of the '{@link #getReferredByIEDName() <em>Referred By IED Name</em>}' reference.
@@ -495,19 +512,6 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
                     newParentServer ) );
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public FeatureMap getAnyLN() {
-        if( anyLN == null ) {
-            anyLN = new BasicFeatureMap( this, SclPackage.LDEVICE__ANY_LN );
-        }
-        return anyLN;
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -515,7 +519,11 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
      */
     @Override
     public EList< LN > getLN() {
-        return getAnyLN().list( SclPackage.eINSTANCE.getLDevice_LN() );
+        if( ln == null ) {
+            ln = new EObjectContainmentWithInverseEList.Unsettable< LN >( LN.class, this, SclPackage.LDEVICE__LN,
+                    SclPackage.LN__PARENT_LDEVICE );
+        }
+        return ln;
     }
 
     /**
@@ -525,7 +533,7 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
      */
     @Override
     public void unsetLN() {
-        ( ( FeatureMap.Internal ) getAnyLN() ).clear( SclPackage.eINSTANCE.getLDevice_LN() );
+        if( ln != null ) ( ( InternalEList.Unsettable< ? > ) ln ).unset();
     }
 
     /**
@@ -535,7 +543,7 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
      */
     @Override
     public boolean isSetLN() {
-        return !( ( FeatureMap.Internal ) getAnyLN() ).isEmpty( SclPackage.eINSTANCE.getLDevice_LN() );
+        return ln != null && ( ( InternalEList.Unsettable< ? > ) ln ).isSet();
     }
 
     /**
@@ -893,7 +901,7 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
      */
     @Override
     public LN0 getLN0() {
-        return ( LN0 ) getAnyLN().get( SclPackage.eINSTANCE.getLDevice_LN0(), true );
+        return ln0;
     }
 
     /**
@@ -902,7 +910,19 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
      * @generated
      */
     public NotificationChain basicSetLN0( LN0 newLN0, NotificationChain msgs ) {
-        return ( ( FeatureMap.Internal ) getAnyLN() ).basicAdd( SclPackage.eINSTANCE.getLDevice_LN0(), newLN0, msgs );
+        LN0 oldLN0 = ln0;
+        ln0 = newLN0;
+        boolean oldLN0ESet = ln0ESet;
+        ln0ESet = true;
+        if( eNotificationRequired() ) {
+            ENotificationImpl notification = new ENotificationImpl( this, Notification.SET, SclPackage.LDEVICE__LN0,
+                    oldLN0, newLN0, !oldLN0ESet );
+            if( msgs == null )
+                msgs = notification;
+            else
+                msgs.add( notification );
+        }
+        return msgs;
     }
 
     /**
@@ -912,18 +932,36 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
      */
     @Override
     public void setLN0( LN0 newLN0 ) {
-        ( ( FeatureMap.Internal ) getAnyLN() ).set( SclPackage.eINSTANCE.getLDevice_LN0(), newLN0 );
+        if( newLN0 != ln0 ) {
+            NotificationChain msgs = null;
+            if( ln0 != null )
+                msgs = ( ( InternalEObject ) ln0 ).eInverseRemove( this, SclPackage.LN0__PARENT_LDEVICE, LN0.class,
+                        msgs );
+            if( newLN0 != null )
+                msgs = ( ( InternalEObject ) newLN0 ).eInverseAdd( this, SclPackage.LN0__PARENT_LDEVICE, LN0.class,
+                        msgs );
+            msgs = basicSetLN0( newLN0, msgs );
+            if( msgs != null ) msgs.dispatch();
+        }
+        else {
+            boolean oldLN0ESet = ln0ESet;
+            ln0ESet = true;
+            if( eNotificationRequired() )
+                eNotify( new ENotificationImpl( this, Notification.SET, SclPackage.LDEVICE__LN0, newLN0, newLN0,
+                        !oldLN0ESet ) );
+        }
     }
 
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated NOT
+     * @generated
      */
     public NotificationChain basicUnsetLN0( NotificationChain msgs ) {
-        LN0 oldLN0 = getLN0();
-        getAnyLN().remove( oldLN0 );
-        boolean oldLN0ESet = isSetLN0();
+        LN0 oldLN0 = ln0;
+        ln0 = null;
+        boolean oldLN0ESet = ln0ESet;
+        ln0ESet = false;
         if( eNotificationRequired() ) {
             ENotificationImpl notification = new ENotificationImpl( this, Notification.UNSET, SclPackage.LDEVICE__LN0,
                     oldLN0, null, oldLN0ESet );
@@ -942,7 +980,19 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
      */
     @Override
     public void unsetLN0() {
-        ( ( FeatureMap.Internal ) getAnyLN() ).clear( SclPackage.eINSTANCE.getLDevice_LN0() );
+        if( ln0 != null ) {
+            NotificationChain msgs = null;
+            msgs = ( ( InternalEObject ) ln0 ).eInverseRemove( this, SclPackage.LN0__PARENT_LDEVICE, LN0.class, msgs );
+            msgs = basicUnsetLN0( msgs );
+            if( msgs != null ) msgs.dispatch();
+        }
+        else {
+            boolean oldLN0ESet = ln0ESet;
+            ln0ESet = false;
+            if( eNotificationRequired() )
+                eNotify( new ENotificationImpl( this, Notification.UNSET, SclPackage.LDEVICE__LN0, null, null,
+                        oldLN0ESet ) );
+        }
     }
 
     /**
@@ -952,7 +1002,7 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
      */
     @Override
     public boolean isSetLN0() {
-        return !( ( FeatureMap.Internal ) getAnyLN() ).isEmpty( SclPackage.eINSTANCE.getLDevice_LN0() );
+        return ln0ESet;
     }
 
     /**
@@ -974,7 +1024,6 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
                 msgs = eBasicRemoveFromContainer( msgs );
             return basicSetParentServer( ( Server ) otherEnd, msgs );
         case SclPackage.LDEVICE__LN0:
-            LN0 ln0 = getLN0();
             if( ln0 != null )
                 msgs = ( ( InternalEObject ) ln0 ).eInverseRemove( this,
                         EOPPOSITE_FEATURE_BASE - SclPackage.LDEVICE__LN0, null, msgs );
@@ -1010,8 +1059,6 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
             return basicUnsetAccessControl( msgs );
         case SclPackage.LDEVICE__PARENT_SERVER:
             return basicSetParentServer( null, msgs );
-        case SclPackage.LDEVICE__ANY_LN:
-            return ( ( InternalEList< ? > ) getAnyLN() ).basicRemove( otherEnd, msgs );
         case SclPackage.LDEVICE__LN0:
             return basicUnsetLN0( msgs );
         case SclPackage.LDEVICE__LN:
@@ -1056,9 +1103,6 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
             return getAccessControl();
         case SclPackage.LDEVICE__PARENT_SERVER:
             return getParentServer();
-        case SclPackage.LDEVICE__ANY_LN:
-            if( coreType ) return getAnyLN();
-            return ( ( FeatureMap.Internal ) getAnyLN() ).getWrapper();
         case SclPackage.LDEVICE__LN0:
             return getLN0();
         case SclPackage.LDEVICE__LN:
@@ -1094,9 +1138,6 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
         case SclPackage.LDEVICE__PARENT_SERVER:
             setParentServer( ( Server ) newValue );
             return;
-        case SclPackage.LDEVICE__ANY_LN:
-            ( ( FeatureMap.Internal ) getAnyLN() ).set( newValue );
-            return;
         case SclPackage.LDEVICE__LN0:
             setLN0( ( LN0 ) newValue );
             return;
@@ -1138,9 +1179,6 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
         case SclPackage.LDEVICE__PARENT_SERVER:
             setParentServer( ( Server ) null );
             return;
-        case SclPackage.LDEVICE__ANY_LN:
-            getAnyLN().clear();
-            return;
         case SclPackage.LDEVICE__LN0:
             unsetLN0();
             return;
@@ -1176,8 +1214,6 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
             return isSetAccessControl();
         case SclPackage.LDEVICE__PARENT_SERVER:
             return getParentServer() != null;
-        case SclPackage.LDEVICE__ANY_LN:
-            return anyLN != null && !anyLN.isEmpty();
         case SclPackage.LDEVICE__LN0:
             return isSetLN0();
         case SclPackage.LDEVICE__LN:
@@ -1226,8 +1262,6 @@ public class LDeviceImpl extends UnNamingImpl implements LDevice {
             result.append( ldName );
         else
             result.append( "<unset>" );
-        result.append( ", AnyLN: " );
-        result.append( anyLN );
         result.append( ')' );
         return result.toString();
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/SclPackageImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/SclPackageImpl.java
index d8e6402d5250b142464aa270025739c3628494ac..5962bc3f5027129ddef891840ae7ad415e0af5d4 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/SclPackageImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/SclPackageImpl.java
@@ -6850,16 +6850,6 @@ public class SclPackageImpl extends EPackageImpl implements SclPackage {
         return ( EReference ) getLDevice().getEStructuralFeatures().get( 3 );
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EAttribute getLDevice_AnyLN() {
-        return ( EAttribute ) getLDevice().getEStructuralFeatures().get( 4 );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -6867,7 +6857,7 @@ public class SclPackageImpl extends EPackageImpl implements SclPackage {
      */
     @Override
     public EReference getLDevice_LN() {
-        return ( EReference ) getLDevice().getEStructuralFeatures().get( 6 );
+        return ( EReference ) getLDevice().getEStructuralFeatures().get( 5 );
     }
 
     /**
@@ -6877,7 +6867,7 @@ public class SclPackageImpl extends EPackageImpl implements SclPackage {
      */
     @Override
     public EReference getLDevice_ReferredByIEDName() {
-        return ( EReference ) getLDevice().getEStructuralFeatures().get( 7 );
+        return ( EReference ) getLDevice().getEStructuralFeatures().get( 6 );
     }
 
     /**
@@ -6887,7 +6877,7 @@ public class SclPackageImpl extends EPackageImpl implements SclPackage {
      */
     @Override
     public EReference getLDevice_RefersToHigherLevelLDevice() {
-        return ( EReference ) getLDevice().getEStructuralFeatures().get( 8 );
+        return ( EReference ) getLDevice().getEStructuralFeatures().get( 7 );
     }
 
     /**
@@ -6897,7 +6887,7 @@ public class SclPackageImpl extends EPackageImpl implements SclPackage {
      */
     @Override
     public EReference getLDevice_RefersToLowerLevelLDevices() {
-        return ( EReference ) getLDevice().getEStructuralFeatures().get( 9 );
+        return ( EReference ) getLDevice().getEStructuralFeatures().get( 8 );
     }
 
     /**
@@ -6917,7 +6907,7 @@ public class SclPackageImpl extends EPackageImpl implements SclPackage {
      */
     @Override
     public EReference getLDevice_LN0() {
-        return ( EReference ) getLDevice().getEStructuralFeatures().get( 5 );
+        return ( EReference ) getLDevice().getEStructuralFeatures().get( 4 );
     }
 
     /**
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/scl.ecore b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/scl.ecore
index dc71da6ff2c922c95f09df08634794422b0c72a9..6bd1b09974a4da399d9429de6248c69a973e49de 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/scl.ecore
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/scl.ecore
@@ -1154,25 +1154,11 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="ParentServer" ordered="false"
         eType="#//Server" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//Server/LDevice"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="AnyLN" ordered="false"
-        upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"
-        transient="true">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="kind" value="group"/>
-      </eAnnotations>
-    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="LN0" ordered="false" eType="#//LN0"
-        volatile="true" unsettable="true" containment="true" eOpposite="#//LN0/ParentLDevice">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#AnyLN"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        unsettable="true" containment="true" resolveProxies="false" eOpposite="#//LN0/ParentLDevice"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="LN" ordered="false" upperBound="-1"
-        eType="#//LN" volatile="true" unsettable="true" containment="true" eOpposite="#//LN/ParentLDevice">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#AnyLN"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        eType="#//LN" unsettable="true" containment="true" resolveProxies="false"
+        eOpposite="#//LN/ParentLDevice"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ReferredByIEDName" ordered="false"
         eType="#//IEDName" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//IEDName/RefersToLDevice"/>