diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/AnyLNImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/AnyLNImpl.java
index f917e8eef4fcb2592218d54570cd904fa5f699dc..d2ec31bfdf5507e8d2ee60b022a96c98c04abc8d 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/AnyLNImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/AnyLNImpl.java
@@ -23,6 +23,9 @@ package fr.centralesupelec.edf.riseclipse.iec61850.scl.impl;
 import fr.centralesupelec.edf.riseclipse.iec61850.scl.AnyLN;
 import fr.centralesupelec.edf.riseclipse.iec61850.scl.Association;
 import fr.centralesupelec.edf.riseclipse.iec61850.scl.ClientLN;
+import fr.centralesupelec.edf.riseclipse.iec61850.scl.DA;
+import fr.centralesupelec.edf.riseclipse.iec61850.scl.DAI;
+import fr.centralesupelec.edf.riseclipse.iec61850.scl.DO;
 import fr.centralesupelec.edf.riseclipse.iec61850.scl.DOI;
 import fr.centralesupelec.edf.riseclipse.iec61850.scl.DataSet;
 import fr.centralesupelec.edf.riseclipse.iec61850.scl.DataTypeTemplates;
@@ -1113,13 +1116,86 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
+     * @generated NOT
      */
     @Override
     public String getNamespace() {
-        // TODO: implement this method
-        // Ensure that you remove @generated or mark it @generated NOT
-        throw new UnsupportedOperationException();
+        List< DOI > namPltDoi =
+                getDOI()
+                .stream()
+                .filter( doi -> "NamPlt".equals( doi.getName() ))
+                .collect( Collectors.toList() );
+        if( namPltDoi.size() == 1 ) {
+            List< DAI > lnNsDai =
+                    namPltDoi
+                    .get( 0 )
+                    .getDAI()
+                    .stream()
+                    .filter( dai -> "lnNs".equals(  dai.getName() ))
+                    .collect( Collectors.toList() );
+            if( lnNsDai.size() == 1 ) {
+                if((         lnNsDai.get( 0 ).getVal().size() == 1 )
+                        && ( lnNsDai.get( 0 ).getVal().get( 0 ).getValue() != null )
+                        && ( lnNsDai.get( 0 ).getVal().get( 0 ).getValue().length() != 0 )) {
+                    return lnNsDai.get( 0 ).getVal().get( 0 ).getValue();
+                }
+                if((         lnNsDai.get( 0 ).getRefersToAbstractDataAttribute() != null )
+                        && ( lnNsDai.get( 0 ).getRefersToAbstractDataAttribute().getVal().size() == 1 )
+                        && ( lnNsDai.get( 0 ).getRefersToAbstractDataAttribute().getVal().get( 0 ).getValue() != null )
+                        && ( lnNsDai.get( 0 ).getRefersToAbstractDataAttribute().getVal().get( 0 ).getValue().length() != 0 )) {
+                    return lnNsDai.get( 0 ).getRefersToAbstractDataAttribute().getVal().get( 0 ).getValue();
+                }
+            }
+            if( namPltDoi.get( 0 ).getRefersToDO() != null ) {
+                List< DA > lnNsDa =
+                        namPltDoi
+                        .get( 0 )
+                        .getRefersToDO()
+                        .getRefersToDOType()
+                        .getDA()
+                        .stream()
+                        .filter( da -> "lnNs".equals(  da.getName() ))
+                        .collect( Collectors.toList() );
+                if( lnNsDa.size() == 1 ) {
+                    if((         lnNsDa.get( 0 ).getVal().size() == 1 )
+                            && ( lnNsDa.get( 0 ).getVal().get( 0 ).getValue() != null )
+                            && ( lnNsDa.get( 0 ).getVal().get( 0 ).getValue().length() != 0 )) {
+                        return lnNsDa.get( 0 ).getVal().get( 0 ).getValue();
+                    }
+                }
+            }
+        }
+
+        if( getRefersToLNodeType() != null ) {
+            List< DO > namPltDo =
+                    getRefersToLNodeType()
+                    .getDO()
+                    .stream()
+                    .filter( doi -> "NamPlt".equals( doi.getName() ))
+                    .collect( Collectors.toList() );
+            if( namPltDo.size() == 1 ) {
+                if( namPltDo.get( 0 ).getRefersToDOType() != null ) {
+                    List< DA > lnNsDa =
+                            namPltDo
+                            .get( 0 )
+                            .getRefersToDOType()
+                            .getDA()
+                            .stream()
+                            .filter( da -> "lnNs".equals(  da.getName() ))
+                            .collect( Collectors.toList() );
+                    if( lnNsDa.size() == 1 ) {
+                        if((         lnNsDa.get( 0 ).getVal().size() == 1 )
+                                && ( lnNsDa.get( 0 ).getVal().get( 0 ).getValue() != null )
+                                && ( lnNsDa.get( 0 ).getVal().get( 0 ).getValue().length() != 0 )) {
+                            return lnNsDa.get( 0 ).getVal().get( 0 ).getValue();
+                        }
+                    }
+                }
+            }
+        }
+
+        if( getParentLDevice() == null ) return null;
+        return getParentLDevice().getNamespace();
     }
 
     /**