[390826]
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/ValidatorHelper.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/ValidatorHelper.java
index cd4631d..2161dd6 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/ValidatorHelper.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/ValidatorHelper.java
@@ -68,7 +68,15 @@
   protected XMLReader createXMLReader(String uri) throws SAXNotRecognizedException, SAXNotSupportedException {     
     XMLReader reader = null;
     
-    reader = new org.apache.xerces.parsers.SAXParser();     
+    ClassLoader originalClzLoader = Thread.currentThread().getContextClassLoader();
+	Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
+	
+	try{
+		reader = new org.apache.xerces.parsers.SAXParser();
+	}finally{
+		Thread.currentThread().setContextClassLoader(originalClzLoader);
+	}
+         
     reader.setFeature("http://apache.org/xml/features/continue-after-fatal-error", false); //$NON-NLS-1$
     reader.setFeature("http://xml.org/sax/features/namespace-prefixes", true); //$NON-NLS-1$
     reader.setFeature("http://xml.org/sax/features/namespaces", false); //$NON-NLS-1$
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidator.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidator.java
index 4277255..1606eb7 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidator.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidator.java
@@ -359,7 +359,16 @@
         
         InputSource inputSource = new InputSource(uri);
         inputSource.setCharacterStream(reader2);
-        reader.parse(inputSource);   
+        
+        ClassLoader originalClzLoader = Thread.currentThread().getContextClassLoader();
+    	Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
+    	
+    	try{
+    		reader.parse(inputSource);
+    	}finally{
+    		Thread.currentThread().setContextClassLoader(originalClzLoader);
+    	}
+           
         if(configuration.getIntFeature(XMLValidationConfiguration.INDICATE_NO_GRAMMAR) > 0 && 
         		valinfo.isValid() && !isGrammarEncountered)
         {