[144713] DOM seems to be out of sync with text file after using XSD refactoring
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/XMLSearchDocument.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/XMLSearchDocument.java
index 55e6256..7908adf 100644
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/XMLSearchDocument.java
+++ b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/XMLSearchDocument.java
@@ -43,7 +43,7 @@
 			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(new Path(getPath()));
 			if(file != null){
 				try {
-					model = (IDOMModel)StructuredModelManager.getModelManager().getModelForRead(file);
+					model = (IDOMModel)StructuredModelManager.getModelManager().getModelForEdit(file);
 				} catch (IOException e) {
 					e.printStackTrace();
 				} catch (CoreException e) {
@@ -95,4 +95,11 @@
 		
 	}
 
+    public void dispose()
+    {     
+      if (model != null)
+      {  
+        model.releaseFromEdit();        
+      }  
+    }
 }
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScan.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScan.java
index 3ba70ec..f966606 100644
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScan.java
+++ b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScan.java
@@ -18,7 +18,10 @@
 import org.eclipse.wst.common.core.search.document.SearchDocument;
 import org.eclipse.wst.common.core.search.pattern.SearchPattern;
 import org.eclipse.wst.xml.core.internal.search.matching.PatternMatcher;
+import org.xml.sax.ErrorHandler;
 import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
 import org.xml.sax.XMLReader;
 
 /**
@@ -62,6 +65,7 @@
           SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
           reader = parser.getXMLReader();  
           reader.setFeature("http://xml.org/sax/features/namespaces", true); //$NON-NLS-1$
+          reader.setErrorHandler(new InternalErrorHandler());          
          }
          catch (Exception e)
          {           
@@ -70,6 +74,19 @@
        return reader;
     }
     
+    static class InternalErrorHandler implements ErrorHandler
+    {
+      public void error(SAXParseException exception) throws SAXException
+      {          
+      }
+      
+      public void fatalError(SAXParseException exception) throws SAXException
+      {
+      }
+      public void warning(SAXParseException exception) throws SAXException
+      {        
+      }
+    }
     
 	private synchronized static void parseFile(String fullFilePath,
 			XMLQuickScanContentHandler handler)
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/text/XSDModelAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/text/XSDModelAdapter.java
index ff56f6c..bb30a05 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/text/XSDModelAdapter.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/text/XSDModelAdapter.java
@@ -130,31 +130,23 @@
       adapter = (XSDModelAdapter)notifier.getAdapterFor(XSDModelAdapter.class);
       if (adapter == null)
       {
-        adapter = new XSDModelAdapter();       
+        adapter = new XSDModelAdapter();
         notifier.addAdapter(adapter);        
       } 
     }   
     return adapter;
   }
   
-  //addDocumentChangeListener()
-  //removeDocumentChangeListener()
   
   public static XSDSchema lookupOrCreateSchema(Document document)
   {    
-    XSDSchema result = null;
-    if (document instanceof INodeNotifier)
-    {
-      INodeNotifier notifier = (INodeNotifier)document;
-      XSDModelAdapter adapter = (XSDModelAdapter)notifier.getAdapterFor(XSDModelAdapter.class);
-      if (adapter == null)
-      {
-        adapter = new XSDModelAdapter();       
-        notifier.addAdapter(adapter);        
-        adapter.createSchema(document); 
-      } 
-      result = adapter.getSchema();
-    }    
+    XSDSchema result = null;    
+    XSDModelAdapter adapter = lookupOrCreateModelAdapter(document);      
+    if (adapter.getSchema() == null)
+    {  
+      adapter.createSchema(document); 
+    }   
+    result = adapter.getSchema();    
     return result;    
   }  
 }
\ No newline at end of file