diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/.gitignore b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..ae3c1726048cd06b9a143e0376ed46dd9b9a8d53
--- /dev/null
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/NSDEObjectValidator.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/NSDEObjectValidator.java
index f959c74e0d446bc0c3c9829482e3a06884026dd8..470704b9ba346aeb662aaf2ce2279cbc466a6b49 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/NSDEObjectValidator.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl.tools/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/validator/NSDEObjectValidator.java
@@ -21,6 +21,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.scl.validator;
 import java.util.Map;
 
 import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EDataType;
 import org.eclipse.emf.ecore.EObject;
@@ -28,9 +29,18 @@ import org.eclipse.emf.ecore.EValidator;
 import org.eclipse.emf.ecore.resource.Resource;
 
 import fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentRoot;
+import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TBasicType;
+import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TBasicTypes;
+import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TCDC;
+import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TDataAttribute;
+import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TDataObject;
 import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TFunctionalConstraint;
 import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TFunctionalConstraints;
+import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TLNClass;
+import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TLNClasses;
 import fr.centralesupelec.edf.riseclipse.iec61850.nsd.TNS;
+import fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.DAIImpl;
+import fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.DAImpl;
 import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseConsole;
 
 public class NSDEObjectValidator implements EValidator {
@@ -51,6 +61,8 @@ public class NSDEObjectValidator implements EValidator {
             TFunctionalConstraint fc0 = fcs.getFunctionalConstraint().get( 0 );
             AbstractRiseClipseConsole.getConsole().info( "    FunctionalConstraint.titleID: " + fc0.getTitleID() );
         }
+   
+        
     }
 
     @Override
@@ -61,8 +73,27 @@ public class NSDEObjectValidator implements EValidator {
     @Override
     public boolean validate( EClass eClass, EObject eObject, DiagnosticChain diagnostics,
             Map< Object, Object > context ) {
-        AbstractRiseClipseConsole.getConsole().info( "NSDEObjectValidator.validate( EClass ): " + eClass.getName() );
+        AbstractRiseClipseConsole.getConsole().info( "NSDEObjectValidator.validate( EClass ): " + eClass.getName());
+        
         // TODO: use nsdResource to validate eObject
+
+        DocumentRoot root = (DocumentRoot) nsdResource.getContents().get( 0 );
+        TNS tns = (TNS) root.getNS();
+        
+        if(eClass.getName().equals("DA")) {
+        	log("\nClass " + eClass.getName());
+        	EList<TBasicType> tda = tns.getBasicTypes().getBasicType();
+        	DAImpl da = (DAImpl) eObject;
+        	log("DA " + da.getBType());
+        	for(int i = 0; i < tda.size(); i++) {
+        		if(da.getBType().equals(tda.get(i).getName())) {
+        			log("tda " + tda.get(i).getName());
+        			log("true");
+        			return true;
+        		}
+        	}
+        }
+        
         return true;
     }
 
@@ -70,8 +101,15 @@ public class NSDEObjectValidator implements EValidator {
     public boolean validate( EDataType eDataType, Object value, DiagnosticChain diagnostics,
             Map< Object, Object > context ) {
         AbstractRiseClipseConsole.getConsole().info( "NSDEObjectValidator.validate( EDataType ): " + eDataType.getName() );
+        
         // TODO: use nsdResource to validate value
+        
+
         return true;
     }
+    
+    public void log(String message) {
+        AbstractRiseClipseConsole.getConsole().info(message);
+    }
 
 }