[129953] Updated XSD validator to use validator jobs API.
Removed Validate XSD File action.
Added XSD validation unit tests.
diff --git a/bundles/org.eclipse.wst.xsd.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.xsd.core/META-INF/MANIFEST.MF
index dae7fcd..50a9ebb 100644
--- a/bundles/org.eclipse.wst.xsd.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.xsd.core/META-INF/MANIFEST.MF
@@ -9,7 +9,8 @@
 Export-Package: org.eclipse.wst.xsd.contentmodel.internal;x-internal:=true,
  org.eclipse.wst.xsd.contentmodel.internal.util;x-internal:=true,
  org.eclipse.wst.xsd.core.internal;x-internal:=true,
- org.eclipse.wst.xsd.core.internal.validation;x-internal:=true
+ org.eclipse.wst.xsd.core.internal.validation,
+ org.eclipse.wst.xsd.core.internal.validation.eclipse
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.emf.ecore,
  org.eclipse.wst.common.uriresolver,
diff --git a/bundles/org.eclipse.wst.xsd.core/plugin.xml b/bundles/org.eclipse.wst.xsd.core/plugin.xml
index d0e75f7..8706531 100644
--- a/bundles/org.eclipse.wst.xsd.core/plugin.xml
+++ b/bundles/org.eclipse.wst.xsd.core/plugin.xml
@@ -18,5 +18,30 @@
 			class="org.eclipse.wst.xsd.contentmodel.internal.CMDocumentFactoryXSD">
 		</factory>
 	</extension>
+	
+	<!-- ====================================================== -->
+	<!-- Register the XSD validator with the validation 		-->
+	<!-- framework. 										    -->
+	<!-- ====================================================== -->
+	<extension
+		id="xsdValidator"
+		name="%_UI_XML_SCHEMA_VALIDATOR"
+		point="org.eclipse.wst.validation.validator">
+		<validator>
+			<filter
+				objectClass="org.eclipse.core.resources.IFile"
+				caseSensitive="false"
+				nameFilter="*.xsd">
+			</filter>
+			
+			<helper
+				class="org.eclipse.wst.xml.core.internal.validation.core.Helper">
+			</helper>
+			
+			<run
+				class="org.eclipse.wst.xsd.core.internal.validation.eclipse.Validator">
+			</run>
+		</validator>
+	</extension>
 
 </plugin>
diff --git a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/XSDValidationMessages.java b/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/XSDValidationMessages.java
new file mode 100644
index 0000000..701f2bc
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/XSDValidationMessages.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ * 
+ * Contributors:
+ *   IBM - Initial API and implementation
+ * 
+ */
+package org.eclipse.wst.xsd.core.internal.validation;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * Strings used by XSD Validation
+ */
+public class XSDValidationMessages extends NLS {
+	private static final String BUNDLE_NAME = "org.eclipse.wst.xsd.core.internal.validation.xsdvalidation";//$NON-NLS-1$
+
+	public static String Message_XSD_validation_message_ui;
+
+	static {
+		// load message values from bundle file
+		NLS.initializeMessages(BUNDLE_NAME, XSDValidationMessages.class);
+	}
+
+	private XSDValidationMessages() {
+		// cannot create new instance
+	}
+}
diff --git a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/XSDValidator.java b/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/XSDValidator.java
index f16d9c0..2d528ed 100644
--- a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/XSDValidator.java
+++ b/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/XSDValidator.java
@@ -34,7 +34,7 @@
  */
 public class XSDValidator
 {
-  private URIResolver uriresolver = null;
+  protected URIResolver uriresolver = null;
 
   public ValidationReport validate(String uri)
   {
diff --git a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/Validator.java b/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/Validator.java
new file mode 100644
index 0000000..13acc4d
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/Validator.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.wst.xsd.core.internal.validation.eclipse;
+
+import java.io.InputStream;
+
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
+import org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator;
+import org.eclipse.wst.xml.core.internal.validation.core.NestedValidatorContext;
+import org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage;
+import org.eclipse.wst.xml.core.internal.validation.core.ValidationReport;
+import org.eclipse.wst.xsd.core.internal.validation.XSDValidationMessages;
+
+public class Validator extends AbstractNestedValidator
+{
+	 
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator#getValidatorName()
+   */
+  protected String getValidatorName() 
+  {
+	return XSDValidationMessages.Message_XSD_validation_message_ui;
+  }
+
+  /* (non-Javadoc)
+   * @see org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator#validate(java.lang.String, java.io.InputStream, org.eclipse.wst.xml.core.internal.validation.core.NestedValidatorContext)
+   */
+  public ValidationReport validate(String uri, InputStream inputstream, NestedValidatorContext context)
+  {  
+	XSDValidator validator = XSDValidator.getInstance();
+
+	ValidationReport valreport = null;
+	if (inputstream != null)
+	{
+	  valreport = validator.validate(uri, inputstream);
+	}
+	else
+	{
+	  valreport = validator.validate(uri);
+	}
+		        
+	return valreport;
+  }
+	  
+  /**
+   * Store additional information in the message parameters. For XSD validation there
+   * are three additional pieces of information to store:
+   * param[0] = the column number of the error
+   * param[1] = the 'squiggle selection strategy' for which DOM part to squiggle
+   * param[2] = the name or value of what is to be squiggled
+   * 
+   * @see org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator#addInfoToMessage(org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage, org.eclipse.wst.validation.internal.provisional.core.IMessage)
+   */
+  protected void addInfoToMessage(ValidationMessage validationMessage, IMessage message)
+  { 
+	String key = validationMessage.getKey();
+	if(key != null)
+	{
+	  XSDMessageInfoHelper messageInfoHelper = new XSDMessageInfoHelper();
+	  String[] messageInfo = messageInfoHelper.createMessageInfo(key, validationMessage.getMessage());
+
+	  message.setAttribute(COLUMN_NUMBER_ATTRIBUTE, new Integer(validationMessage.getColumnNumber()));
+	  message.setAttribute(SQUIGGLE_SELECTION_STRATEGY_ATTRIBUTE, messageInfo[0]);
+	  message.setAttribute(SQUIGGLE_NAME_OR_VALUE_ATTRIBUTE, messageInfo[1]);
+	}
+  }
+}
diff --git a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/XSDMessageInfoHelper.java b/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/XSDMessageInfoHelper.java
new file mode 100644
index 0000000..1016583
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/XSDMessageInfoHelper.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xsd.core.internal.validation.eclipse;
+
+
+/**
+ * The XSDMessageInfoHelper creates a string with the
+ */
+public class XSDMessageInfoHelper
+{
+  public XSDMessageInfoHelper()
+  { super();
+  }
+
+  public String[] createMessageInfo(String errorKey, String errorMessage)
+  { 
+    //Now map the error key to what we would want to underline:
+    String nameOrValue = "";
+    String selectionStrategy = "";
+    if(errorKey != null)
+    {
+      if (errorKey.equals("s4s-elt-invalid-content.1") || errorKey.equals("s4s-elt-must-match.1") || 
+    		  errorKey.equals("s4s-att-must-appear") || errorKey.equals("s4s-elt-invalid-content.2"))
+      { 
+    	selectionStrategy = "START_TAG";
+      }
+      else if (errorKey.equals("s4s-att-not-allowed"))
+      { 
+    	selectionStrategy = "ATTRIBUTE_NAME";
+        nameOrValue = getFirstStringBetweenSingleQuotes(errorMessage);
+      }
+      else if (errorKey.equals("s4s-att-invalid-value"))
+      { 
+    	selectionStrategy = "ATTRIBUTE_VALUE";
+        nameOrValue = getFirstStringBetweenSingleQuotes(errorMessage);
+      }
+      else if (errorKey.equals("s4s-elt-character"))
+      { 
+    	selectionStrategy = "TEXT";
+      }
+      else if (errorKey.equals("src-resolve.4.2") || errorKey.equals("src-resolve"))
+      { 
+    	selectionStrategy = "VALUE_OF_ATTRIBUTE_WITH_GIVEN_VALUE";
+        nameOrValue = getFirstStringBetweenSingleQuotes(errorMessage);
+      }
+    }
+    String messageInfo[] = new String[2];
+    messageInfo[0] = selectionStrategy;
+    messageInfo[1] = nameOrValue;
+    return messageInfo;    
+  }
+
+  /**
+   * This method is used to get the value between the first pair of single quotes
+   * It is used to extract information from the error Message (for example
+   * an attribute name)
+   * 
+   * @param s
+   * 		The string to extract the value from.
+   */
+  protected String getFirstStringBetweenSingleQuotes(String s)
+  {
+    int first = s.indexOf("'");
+    int second = s.indexOf("'", first + 1);
+    String betweenQuotes = null;
+    if (first != -1 && second != -1)
+    { betweenQuotes = s.substring(first + 1, second);
+    }
+    return betweenQuotes;
+  }
+}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/XSDValidator.java b/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/XSDValidator.java
similarity index 62%
rename from bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/XSDValidator.java
rename to bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/XSDValidator.java
index 899f21d..7eb1ba6 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/XSDValidator.java
+++ b/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/XSDValidator.java
@@ -9,24 +9,20 @@
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 
-package org.eclipse.wst.xsd.ui.internal.validation;
-
-import java.io.InputStream;
+package org.eclipse.wst.xsd.core.internal.validation.eclipse;
 
 import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationReport;
 
 
 /**
  * An XSD validator specific to Eclipse. This validator will wrap the internal
- * XSD validator an provide automatic URI resolver support.
+ * XSD validator an provide automatic URI resolution support.
  * Using this class is equivalent to using the internal XSD validator and registering
- * the URI resolver.
+ * the URI resolver from the URI resolution framework.
  */
-public class XSDValidator
+public class XSDValidator extends org.eclipse.wst.xsd.core.internal.validation.XSDValidator
 {
   private static XSDValidator instance = null;
-  private org.eclipse.wst.xsd.core.internal.validation.XSDValidator validator = null;
   
   /**
    * Return the one and only instance of the XSD validator. The validator
@@ -47,20 +43,6 @@
    */
   protected XSDValidator()
   {
-    validator = new org.eclipse.wst.xsd.core.internal.validation.XSDValidator();
-    validator.setURIResolver(URIResolverPlugin.createResolver());
-  }
-  /**
-   * Validate the file at the given URI.
-   * 
-   * @param uri The URI of the file to validate.
-   */
-  /*public ValidationReport validate(String uri)
-  {
-    return validator.validate(uri);
-  }*/
-  public ValidationReport validate(String uri, InputStream inputStream)
-  {
-    return validator.validate(uri, inputStream);
+    this.setURIResolver(URIResolverPlugin.createResolver());
   }
 }
diff --git a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/xsdvalidation.properties b/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/xsdvalidation.properties
new file mode 100644
index 0000000..83c032e
--- /dev/null
+++ b/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/xsdvalidation.properties
@@ -0,0 +1,52 @@
+###############################################################################
+# Copyright (c) 2001, 2004 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+### Constants for strings  
+providerName=Eclipse.org
+pluginName=XML Validator
+nlFeatureName=XML Validator NL Support
+
+# validation strings
+Message_XSD_validation_message_ui=XML Schema Validator validating {0}
+    
+_UI_VALIDATION_INTERNAL_ERROR                    = Internal Error 
+_UI_VALIDATION_FAILED                            = Validation Failed
+_UI_VALIDATION_SUCEEDED                          = Validation Succeeded
+_UI_THE_XML_FILE_IS_NOT_VALID                    = The XML file is not valid.  See the Problems view for a list of the validation errors.
+_UI_THE_XML_FILE_IS_VALID                        = The XML file is valid. 
+_UI_THE_XML_FILE_IS_VALID_WITH_WARNINGS          = The XML file is valid however warnings have been issued. See the Problems view for the warning messages. 
+_UI_THE_XML_FILE_IS_WELL_FORMED                  = The XML file is well formed. 
+_UI_THE_XML_FILE_IS_WELL_FORMED_WITH_WARNINGS    = The XML file is well formed however warnings have been issued. See the Problems view for the warning messages. 
+_UI_NO_GRAMMAR_WARNING                           = Warning : No grammar constraints detected for the document.
+_UI_MESSAGE_LIMITE_EXCEEDED                      = The XML file is not valid.  The message limit for the Problems view has been exceeded.  To see all the messages increase the limit and validate again.
+
+#
+# Referenced File Dialog Related Message
+#
+_UI_REF_FILE_ERROR_DESCRIPTION      = The errors below were detected when validating the file "{0}" via the file "{1}".  In most cases these errors can be detected by validating "{2}" directly.  However it is possible that errors will only occur when {2} is validated in the context of {3}.
+_UI_REF_FILE_ERROR_MESSAGE          = Referenced file contains errors ({0}).  For more information, right click on the message and select "Show Details..."
+_UI_REF_FILE_ERROR_DETAILS          = Referenced File Error Details
+
+_UI_DETAILS_INFORMATION_UNAVAILABLE       = Details Information Unavailable
+_UI_DETAILS_INFO_REVALIDATE_TO_REGENERATE = Details information currently unavailable.  Please revalidate the file to regenerate the error details.
+
+#
+# Dirty File Dialog Related Messages
+#
+_UI_SAVE_DIRTY_FILE_MESSAGE         = An open editor contains changes to this file that have not been saved. Do you want to save the file before running validation? (If you do not save the file the previously saved version will be validated.)
+_UI_SAVE_DIRTY_FILE_TITLE           = Save file?
+ValidateXMLFileActionDelegate_2=Required files xercesImpl.jar and xmlParserAPIs.jar cannot be found.\n\n
+ValidateXMLFileActionDelegate_3=Download Xerces 2.6.2 and place xercesImpl.jar and xmlParserAPIs.jar in a folder entitled jars in the org.eclipse.wst.xml.validation plugin.\n\n
+ValidateXMLFileActionDelegate_4=For more information see www.eclipse.org/webtools/wst/components/xml/xercesInfo.xml.
+ValidateXMLFileActionDelegate_5=Missing Xerces
+TaskListTableViewer_0=Description
+TaskListTableViewer_1=Resource
+TaskListTableViewer_2=Location
+TaskListTableViewer_3=line 
diff --git a/bundles/org.eclipse.wst.xsd.ui/.classpath b/bundles/org.eclipse.wst.xsd.ui/.classpath
index b3381db..d36ddbe 100644
--- a/bundles/org.eclipse.wst.xsd.ui/.classpath
+++ b/bundles/org.eclipse.wst.xsd.ui/.classpath
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="src-validation"/>
 	<classpathentry kind="src" path="src-refactor"/>
 	<classpathentry kind="src" path="src-adt"/>
 	<classpathentry kind="src" path="src-adt-xsd"/>
diff --git a/bundles/org.eclipse.wst.xsd.ui/build.properties b/bundles/org.eclipse.wst.xsd.ui/build.properties
index 2df31de..856249a 100644
--- a/bundles/org.eclipse.wst.xsd.ui/build.properties
+++ b/bundles/org.eclipse.wst.xsd.ui/build.properties
@@ -8,8 +8,7 @@
 # Contributors:
 #     IBM Corporation - initial API and implementation
 ###############################################################################
-source.. = src-validation/,\
-           src-search/,\
+source.. = src-search/,\
            src-refactor/,\
            src-adt/,\
            src-adt-xsd/,\
diff --git a/bundles/org.eclipse.wst.xsd.ui/plugin.properties b/bundles/org.eclipse.wst.xsd.ui/plugin.properties
index bb3d093..21af0ae 100644
--- a/bundles/org.eclipse.wst.xsd.ui/plugin.properties
+++ b/bundles/org.eclipse.wst.xsd.ui/plugin.properties
@@ -546,8 +546,6 @@
 _UI_GENERATE_DDL_TITLE          = Generate DDL
 _UI_GENERATE_DDL_DESCRIPTION    = Generate DDL from the selected XML schema file.
 
-_UI_XML_SCHEMA_VALIDATOR            = XML Schema Validator
-
 ! Generation from the Schema model - pre-condition check
 _UI_DIALOG_TITLE_GRAMMAR_ERROR      = Invalid Grammar
 _UI_DIALOG_INFO_SCHEMA_INVALID      = The schema file contains errors. Open it in the XML Schema editor and validate it for details.
diff --git a/bundles/org.eclipse.wst.xsd.ui/plugin.xml b/bundles/org.eclipse.wst.xsd.ui/plugin.xml
index 90c3e76..d60cec0 100644
--- a/bundles/org.eclipse.wst.xsd.ui/plugin.xml
+++ b/bundles/org.eclipse.wst.xsd.ui/plugin.xml
@@ -255,46 +255,6 @@
 		</modelQueryExtension>
 	</extension>
 
-	<!-- ====================================================== -->
-	<!-- Define Assign Validate action on .xsd file             -->
-	<!-- ====================================================== -->
-	<extension point="org.eclipse.ui.popupMenus">
-		<objectContribution
-			objectClass="org.eclipse.core.resources.IFile"
-			nameFilter="*.xsd"
-			id="org.eclipse.wst.xsd.validation.xsdvalidationaction">
-			<action
-				label="%_UI_MENU_VALIDATE_XML"
-				class="org.eclipse.wst.xsd.ui.internal.validation.ValidateSchemaActionDelegate"
-				enablesFor="1"
-				id="org.eclipse.wst.xsd.ui.internal.validation.ValidateSchemaActionDelegate">
-			</action>
-		</objectContribution>
-	</extension>
-
-	<!-- ====================================================== -->
-	<!-- Register the XSD validator with the validation 		-->
-	<!-- framework. 										    -->
-	<!-- ====================================================== -->
-	<extension
-		id="xsdValidator"
-		name="%_UI_XML_SCHEMA_VALIDATOR"
-		point="org.eclipse.wst.validation.validator">
-		<validator>
-			<filter
-				objectClass="org.eclipse.core.resources.IFile"
-				caseSensitive="false"
-				nameFilter="*.xsd">
-			</filter>
-			<helper
-				class="org.eclipse.wst.xml.core.internal.validation.core.Helper">
-			</helper>
-			<run
-				class="org.eclipse.wst.xsd.ui.internal.validation.Validator">
-			</run>
-		</validator>
-	</extension>
-
 	<!-- ============================================================================== -->
 	<!-- Register the XSDSearchParticpant against for XMLComponentSearchPatterns 		-->
 	<!-- ============================================================================== -->	
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/ValidateAction.java b/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/ValidateAction.java
deleted file mode 100644
index 817f390..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/ValidateAction.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xsd.ui.internal.validation;
-
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationReport;
-import org.eclipse.wst.xsd.editor.XSDEditorPlugin;
-
-
-
-/**
- * This class manages the 'UI' related details of validation. Here's a quick
- * overview of the details : 
- * - manages Marker creation based on the results of the validation 
- * - (optionally) displays dialog to summarize the results of validation 
- * 
- * @author Lawrence Mandel, IBM
- * @author Keith Chong, IBM
- */
-public class ValidateAction extends org.eclipse.wst.xml.ui.internal.validation.core.ValidateAction
-{ 
-  // Property file strings.
-  private static final String _UI_DIALOG_XML_SCHEMA_INVALID_TEXT = "_UI_DIALOG_XML_SCHEMA_INVALID_TEXT";
-  private static final String _UI_DIALOG_XML_SCHEMA_INVALID_TITLE = "_UI_DIALOG_XML_SCHEMA_INVALID_TITLE";
-  private static final String _UI_DIALOG_XML_SCHEMA_VALID_TITLE = "_UI_DIALOG_XML_SCHEMA_VALID_TITLE";
-  private static final String _UI_DIALOG_XML_SCHEMA_VALID_TEXT = "_UI_DIALOG_XML_SCHEMA_VALID_TEXT";
-  private static final String _UI_DIALOG_XML_SCHEMA_VALID_WITH_WARNINGS = "_UI_DIALOG_XML_SCHEMA_VALID_WITH_WARNINGS";
-
-  private InputStream inputStream;
-  
-  /**
-   * Constructor.
-   * 
-   * @param file The file to validate.
-   * @param showDialog Whether or not to show a dialog when validation is complete.
-   */
-  public ValidateAction(IFile file, boolean showDialog)
-  {
-    super(file, showDialog);
-  }
-  
-  /*
-   * Store additional information in the message parameters
-   * param[0] = the column number of the error
-   * param[1] = the 'squiggle selection strategy' for which DOM part to squiggle
-   * param[2] = the name or value of what is to be squiggled
-   */
-  protected void addInfoToMessage (ValidationMessage validationMessage, IMessage message)
-  {   
-    if (inputStream != null)
-    {
-      XSDMessageInfoHelper messageInfoHelper = new XSDMessageInfoHelper();
-	  String[] messageInfo = messageInfoHelper.createMessageInfo(validationMessage.getMessage(), validationMessage.getKey());
-
-	  message.setAttribute(COLUMN_NUMBER_ATTRIBUTE, new Integer(validationMessage.getColumnNumber()));
-	  message.setAttribute(SQUIGGLE_SELECTION_STRATEGY_ATTRIBUTE, messageInfo[0]);
-	  message.setAttribute(SQUIGGLE_NAME_OR_VALUE_ATTRIBUTE, messageInfo[1]);
-    }  
-  }
-  
-  protected void validate(final IFile file)
-  {
-    final ValidationOutcome valoutcome = new ValidationOutcome();
-    IPath path = file.getLocation();
-    final String uri = createURIForFilePath(path.toString());
-    
-    IWorkspaceRunnable op = new IWorkspaceRunnable()
-    {
-
-      public void run(IProgressMonitor progressMonitor) throws CoreException
-      {
-        clearMarkers(file);
-        XSDValidator validator = XSDValidator.getInstance();
-        ValidationReport valreport = validator.validate(uri, inputStream);
-        valoutcome.isValid = valreport.isValid();
-        if(valreport.getValidationMessages().length == 0)
-        {
-          valoutcome.hasMessages = false;
-        }
-        else
-        {
-          valoutcome.hasMessages = true;
-        }
-        createMarkers(file, valreport.getValidationMessages());
-
-        file.setSessionProperty(ValidationMessage.ERROR_MESSAGE_MAP_QUALIFIED_NAME, valreport.getNestedMessages());
-      }
-    };
-
-    try
-    {
-      ResourcesPlugin.getWorkspace().run(op, null);
-      String internalErrorMessage = null;
-
-      if (showDialog)
-      {
-        if (!valoutcome.isValid)
-        {
-          String message = XSDEditorPlugin.getXSDString(_UI_DIALOG_XML_SCHEMA_INVALID_TEXT);
-          String title = XSDEditorPlugin.getXSDString(_UI_DIALOG_XML_SCHEMA_INVALID_TITLE);
-          if (internalErrorMessage != null)
-          {
-            message = message + "\n" + internalErrorMessage;
-          }
-          openErrorDialog(title, message);
-        } 
-        else if (valoutcome.isValid && valoutcome.hasMessages)
-        {
-          String message = XSDEditorPlugin.getXSDString(_UI_DIALOG_XML_SCHEMA_VALID_WITH_WARNINGS);
-          String title = XSDEditorPlugin.getXSDString(_UI_DIALOG_XML_SCHEMA_VALID_TITLE);
-          openWarningDialog(title, message);
-        } 
-        else
-        {
-          String message = XSDEditorPlugin.getXSDString(_UI_DIALOG_XML_SCHEMA_VALID_TEXT);
-          String title = XSDEditorPlugin.getXSDString(_UI_DIALOG_XML_SCHEMA_VALID_TITLE);
-          //String message = validator.isGrammarEncountered() ?
-          //                 XSDValidatorManager.getString("_UI_THE_XML_FILE_IS_VALID") :
-          //                XSDValidatorManager.getString("_UI_THE_XML_FILE_IS_WELL_FORMED") +
-          //                 XSDValidatorManager.getString("_UI_NO_GRAMMAR_WARNING");
-          openValidDialog(title, message);
-        }
-      }
-    } 
-
-	catch (CoreException e)
-    {
-    }
-  }
-  public void setInputStream(InputStream inputStream)
-  { this.inputStream = inputStream;
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/ValidateSchemaActionDelegate.java b/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/ValidateSchemaActionDelegate.java
deleted file mode 100644
index 5dce0fe..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/ValidateSchemaActionDelegate.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xsd.ui.internal.validation;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IActionDelegate;
-
-/**
- * Validate schema - from popup
- */
-public class ValidateSchemaActionDelegate
-       implements IActionDelegate
-{
-  protected ISelection selection;
-
-  public void run(IAction action)
-  {
-  	try {
-  		// CS.. for now the following line tests to ensure the user has xerces jars installed
-        // so that we can perform some 'fail fast' behaviour
-        //
-        Class theClass = Class.forName("org.apache.xerces.xni.parser.XMLParserConfiguration", true, this.getClass().getClassLoader());
-        if (theClass == null)
-        {
-         throw(new Exception("Missing Xerces jars in plugin's 'jars' folder"));       
-        }
-
-	    IFile fileResource = null;
-	    if (!selection.isEmpty() && selection instanceof IStructuredSelection)
-	    {
-	      IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-	      Object element = structuredSelection.getFirstElement();
-	
-	      if (element instanceof IFile)
-	      {
-	        fileResource = (IFile) element;
-	      }
-	      else
-	      {
-	        return;
-	      }
-	    }
-	    ValidateAction validateaction = new ValidateAction(fileResource, true);
-	    validateaction.setValidator(new Validator());
-	    validateaction.run();
-  	}
-  	catch (Exception e) {
-        // CS..here's where we need to pop up a dialog to tell the user that xerces is not available
-        //
-        String xercesLine1 = "Required files xercesImpl.jar and xmlParserAPIs.jar cannot be found.\n\n";
-        String xercesLine2 = "Download Xerces 2.6.2 and place xercesImpl.jar and xmlParserAPIs.jar in a folder entitled jars in the org.eclipse.wst.xml.validation plugin.\n\n";
-        String xercesLine3 = "For more information see www.eclipse.org/webtools/wst/components/xml/xercesInfo.xml.";
-        MessageDialog.openError(Display.getDefault().getActiveShell(), "Missing Xerces", xercesLine1 + xercesLine2 + xercesLine3);
-  	}
-  }
-
-  public void selectionChanged(IAction action, ISelection selection)
-  {
-    this.selection = selection;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/Validator.java b/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/Validator.java
deleted file mode 100644
index b14ec14..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/Validator.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xsd.ui.internal.validation;
-
-
-import java.io.InputStream;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.wst.validation.internal.core.ValidationException;
-import org.eclipse.wst.validation.internal.operations.IRuleGroup;
-import org.eclipse.wst.validation.internal.operations.ValidatorManager;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-import org.eclipse.wst.validation.internal.provisional.core.IValidationContext;
-import org.eclipse.wst.validation.internal.provisional.core.IValidator;
-
-
-public class Validator implements IValidator
-{
-  private final String GET_FILE = "getFile";
-  public final String GET_PROJECT_FILES = "getAllFiles";
-
-  public void validate(IFile file)
-  {
-    ValidateAction validateAction = new ValidateAction(file, false);
-    validateAction.setValidator(this);
-    validateAction.run();	
-  }
-  /**
-   * This is the method which performs the validation on the MOF model.
-   * <br><br>
-   * <code>helper</code> and <code>reporter</code> may not be null. <code>changedFiles</code> may be null, if a full
-   * build is desired.
-   * <br><br>
-   * <code>helper</code> returns the ifile for the given information in the IFileDelta array
-   * <br><br>
-   * <code>reporter</code> is an instance of an IReporter interface, which is used for interaction with the user.
-   * <br><br>
-   * <code>changedFiles</code> is an array of file names which have changed since the last validation. 
-   * If <code>changedFiles</code> is null, or if it is an empty array, then a full build
-   * is performed. Otherwise, validation on just the files listed in the Vector is performed.
-   */
-  public void validate(IValidationContext helper, IReporter reporter) throws ValidationException {
-	 String[] changedFiles = helper.getURIs();
-     if (changedFiles != null && changedFiles.length > 0) 
-    {
-      for (int i = 0; i < changedFiles.length; i++) 
-      {
-        String fileName = changedFiles[i];
-        if (fileName != null)
-        {
-          Object []parms = {fileName};
-
-          IFile file = (IFile) helper.loadModel(GET_FILE, parms);
-          if (file != null && shouldValidate(file)) 
-          {            
-            //the helper might not have the file stored in it. could have an InputStream          
-            if (helper.loadModel("inputStream") instanceof InputStream)
-            {
-              validate(file, (InputStream)helper.loadModel("inputStream"), reporter); //do we need the fileName?  what is int ruleGroup?
-            }                    
-            else
-            {  
-              //if (((Helper)helper).isInJavaBuildPath(file) &&
-              //    !((AWorkbenchHelper)helper).isInJavaSourcePath(file))
-              //{
-              //  continue;
-              //}
-              validateIfNeeded(file, helper, reporter);
-            }
-          }
-        }
-      }
-    }
-    else 
-    {
-      Object []parms = {this.getClass().getName()};
-      Collection files = (Collection) helper.loadModel(GET_PROJECT_FILES, parms);
-      Iterator iter = files.iterator();
-      while (iter.hasNext()) 
-      {
-        IFile file = (IFile) iter.next();
-        if(shouldValidate(file))
-        {
-          validateIfNeeded(file, helper, reporter);
-        }
-      }
-    }
-  }
-  
- 
-  private void validate(IFile file, InputStream inputStream, IReporter reporter)
-  {  
-    ValidateAction validateAction = new ValidateAction(file, false);
-    validateAction.setValidator(this);
-    if (inputStream != null)
-    {
-      validateAction.setInputStream(inputStream);
-      validateAction.setReporter(reporter);
-    }
-    validateAction.run();    
-  }
-  
-  protected void validateIfNeeded(IFile file, IValidationContext helper, IReporter reporter)
-  {
-    ValidatorManager mgr = ValidatorManager.getManager();
- 
-    Integer ruleGroupInt = (Integer)helper.loadModel(IRuleGroup.PASS_LEVEL, null); // pass in a "null" so that loadModel doesn't attempt to cast the result into a RefObject
-    int ruleGroup = (ruleGroupInt == null) ? IRuleGroup.PASS_FULL : ruleGroupInt.intValue();
-
-    Object stream = helper.loadModel("inputStream");
-    if (stream instanceof InputStream)
-    {
-      validate(file, (InputStream)stream, reporter);      
-    } 
-    else
-    {  
-      validate(file, null, reporter);
-    }  
-  }
-  
-  /**
-   * Unpacks the fileModelPair and returns an IFile object.
-   */
-  //protected IFile getFile(Object object)
-  //{
-  //  IFile result = null;
-  //  if (object instanceof List)
-  //  {
-  //    List fileModelPair = (List)object;
-  //    if (fileModelPair.size()>0)
-  //    {
-  //      Object file = fileModelPair.get(0);
-  //      if (file instanceof IFile)
-  //      {
-  ///        result = (IFile)file;
-  //      }
-  //    }
-  //  }
-  //  return result;
- // } 
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wtp.validation.core.IValidator#cleanup(org.eclipse.wtp.validation.core.IReporter)
-   */
-  public void cleanup(IReporter reporter)
-  {
-  }
-
-  boolean shouldValidate(IFile file) {
-    IResource resource = file;
-    do {
-      if (resource.isDerived() || resource.isTeamPrivateMember() || !resource.isAccessible() || resource.getName().charAt(0) == '.') {
-        return false;
-      }
-      resource = resource.getParent();
-    }
-	while ((resource.getType() & IResource.PROJECT) == 0 && (resource.getType() & IResource.ROOT) == 0);
-	return true;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/XSDMessageInfoHelper.java b/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/XSDMessageInfoHelper.java
deleted file mode 100644
index 3c7307a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-validation/org/eclipse/wst/xsd/ui/internal/validation/XSDMessageInfoHelper.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.validation;
-
-
-/**
- * @author Mark Hutchinson
- * 
- * The XSDMessageInfoHelper creates a string with the
- */
-public class XSDMessageInfoHelper
-{
-  public XSDMessageInfoHelper()
-  { super();
-  }
-
-  public String[] createMessageInfo(String errorMessage, String errorKey)
-  { 
-    //Now map the error key to what we would want to underline:
-    String nameOrValue = "";
-    String selectionStrategy = "";
-    if (errorKey.equals("s4s-elt-invalid-content.1") || errorKey.equals("s4s-elt-must-match.1") || errorKey.equals("s4s-att-must-appear") || errorKey.equals("s4s-elt-invalid-content.2"))
-    { selectionStrategy = "START_TAG";
-    }
-    else if (errorKey.equals("s4s-att-not-allowed"))
-    { selectionStrategy = "ATTRIBUTE_NAME";
-      nameOrValue = getFirstStringBetweenSingleQuotes(errorMessage);
-    }
-    else if (errorKey.equals("s4s-att-invalid-value"))
-    { selectionStrategy = "ATTRIBUTE_VALUE";
-      nameOrValue = getFirstStringBetweenSingleQuotes(errorMessage);
-    }
-    else if (errorKey.equals("s4s-elt-character"))
-    { selectionStrategy = "TEXT";
-    }
-    else if (errorKey.equals("src-resolve.4.2") || errorKey.equals("src-resolve"))
-    { selectionStrategy = "VALUE_OF_ATTRIBUTE_WITH_GIVEN_VALUE";
-      nameOrValue = getFirstStringBetweenSingleQuotes(errorMessage);
-    }
-    String messageInfo[] = new String[2];
-    messageInfo[0] = selectionStrategy;
-    messageInfo[1] = nameOrValue;
-    return messageInfo;    
-  }
-
-  /*
-   * Mark Hutchinson
-   * 
-   * This method is used to get the value between the first pair of single quotes
-   * It is used to extract information from the error Message (for example
-   * an attribute name)
-   */
-  private String getFirstStringBetweenSingleQuotes(String s)
-  {
-    int first = s.indexOf("'");
-    int second = s.indexOf("'", first + 1);
-    String betweenQuotes = null;
-    if (first != -1 && second != -1)
-    { betweenQuotes = s.substring(first + 1, second);
-    }
-    return betweenQuotes;
-  }
-}