diff --git a/java/org/slub/rosetta/dps/repository/plugin/Validation/SLUBValidateSchema.java b/java/org/slub/rosetta/dps/repository/plugin/Validation/SLUBValidateSchema.java
index 926fdab74f1bc56c648ae7e0a4be5f8423eb4910..c690173ce4eadf2760e536a2503f187e147aa24b 100644
--- a/java/org/slub/rosetta/dps/repository/plugin/Validation/SLUBValidateSchema.java
+++ b/java/org/slub/rosetta/dps/repository/plugin/Validation/SLUBValidateSchema.java
@@ -2,8 +2,10 @@ package org.slub.rosetta.dps.repository.plugin.Validation;
 
 import org.apache.xerces.jaxp.validation.XMLSchemaFactory;
 import org.slub.rosetta.dps.repository.plugin.ValidationResourceResolver;
-import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.xml.sax.ErrorHandler;
 import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
 
 import javax.xml.XMLConstants;
 import javax.xml.transform.dom.DOMSource;
@@ -16,6 +18,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 public class SLUBValidateSchema {
+    private boolean is_valid = true;
     private final List<String> errors = new ArrayList<>();
     public List<String> get_errors() {
         return errors;
@@ -24,14 +27,33 @@ public class SLUBValidateSchema {
     public SLUBValidateSchema(ValidationResourceResolver validationResourceResolver) {
         this.validationResourceResolver = validationResourceResolver;
     }
-    public  boolean validateAgainst(Document docvalidate, URI xsdUri) throws IOException {
+    private final ErrorHandler validationErrorHandler = new ErrorHandler() {
+        @Override
+        public void warning(SAXParseException e) {
+            errors.add("[WW] "+ e.getMessage());
+        }
+        @Override
+        public void error(SAXParseException e) {
+            is_valid = false;
+            errors.add("[EE] "+e.getMessage() + "  line=" + e.getLineNumber() + " col=" + e.getColumnNumber());
+        }
+        @Override
+        public void fatalError(SAXParseException e) {
+            is_valid = false;
+            errors.add("[EE] Fatal, "+e.getMessage() + "  line=" + e.getLineNumber() + " col=" + e.getColumnNumber());
+        }
+    };
+    public  boolean validateAgainst(Node docvalidate, URI xsdUri) throws IOException {
         boolean isValidXml = false;
         try {
             SchemaFactory sf = XMLSchemaFactory.newInstance("http://www.w3.org/XML/XMLSchema/v1.1");
             sf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
             sf.setFeature("http://apache.org/xml/features/validation/schema-full-checking", true);
+            sf.setFeature("http://apache.org/xml/features/honour-all-schemaLocations", true);
+
             sf.setResourceResolver( validationResourceResolver );
             Schema s = sf.newSchema( xsdUri.toURL());
+
             Validator v = s.newValidator();
             DOMSource src = new DOMSource(docvalidate);
             v.validate(src);
@@ -48,4 +70,5 @@ public class SLUBValidateSchema {
         }
         return isValidXml;
     }
+
 }