[104413] Fix for DTD validation messages when working disconnected.
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 2f372dd..f9afc1e 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
@@ -18,6 +18,7 @@
 import java.io.InputStreamReader;
 import java.io.Reader;
 import java.io.StringReader;
+import java.net.ConnectException;
 import java.net.URL;
 import java.net.UnknownHostException;
 import java.text.MessageFormat;
@@ -65,6 +66,7 @@
   
   private static final String _UI_PROBLEMS_VALIDATING_FILE_NOT_FOUND = "_UI_PROBLEMS_VALIDATING_FILE_NOT_FOUND";
   private static final String _UI_PROBLEMS_VALIDATING_UNKNOWN_HOST = "_UI_PROBLEMS_VALIDATING_UNKNOWN_HOST";
+  private static final String _UI_PROBLEMS_CONNECTION_REFUSED = "_UI_PROBLEMS_CONNECTION_REFUSED";
   
   private static final String FILE_NOT_FOUND_KEY = "FILE_NOT_FOUND";
 
@@ -240,26 +242,37 @@
    */
   protected void addValidationMessage(XMLValidationInfo valinfo, IOException exception)
   { 
-    String messageStr = exception.getMessage();
-	Throwable cause = exception.getCause();
-	while(messageStr == null && cause != null){
-		cause = exception.getCause();
-		if(cause != null){
-			messageStr = cause.getMessage();
-		}
+    String validationMessageStr = exception.getMessage();
+	Throwable cause = exception.getCause() != null ? exception.getCause() : exception;
+	while(validationMessageStr == null && cause != null){
+		String localizedMessage = cause.getLocalizedMessage();
+	    cause = cause.getCause();
+	    if(cause == null && localizedMessage != null )
+	    {
+	      validationMessageStr = localizedMessage;
+	    }
 	}
-    if (messageStr != null)
+	
+	if (validationMessageStr != null)
     {
-      if (exception instanceof FileNotFoundException)
+      if (cause instanceof FileNotFoundException)
       {
-        messageStr = MessageFormat.format(resourceBundle.getString(_UI_PROBLEMS_VALIDATING_FILE_NOT_FOUND), new Object [] { messageStr });
+        validationMessageStr = MessageFormat.format(resourceBundle.getString(_UI_PROBLEMS_VALIDATING_FILE_NOT_FOUND), new Object [] { validationMessageStr });
       }
-      else if (exception instanceof UnknownHostException)
+      else if (cause instanceof UnknownHostException)
       {
-    	messageStr = MessageFormat.format(resourceBundle.getString(_UI_PROBLEMS_VALIDATING_UNKNOWN_HOST), new Object [] { messageStr });
+    	validationMessageStr = MessageFormat.format(resourceBundle.getString(_UI_PROBLEMS_VALIDATING_UNKNOWN_HOST), new Object [] { validationMessageStr });
       }
+      else if(cause instanceof ConnectException)
+      {
+    	validationMessageStr = resourceBundle.getString(_UI_PROBLEMS_CONNECTION_REFUSED);
+      }
+    }
+
+    if (validationMessageStr != null)
+    {
       XMLLocator locator = valinfo.getXMLLocator();
-      valinfo.addError(messageStr, locator != null ? locator.getLineNumber() : 1, locator != null ? locator.getColumnNumber() : 0, valinfo.getFileURI(), FILE_NOT_FOUND_KEY, null);
+      valinfo.addWarning(validationMessageStr, locator != null ? locator.getLineNumber() : 1, locator != null ? locator.getColumnNumber() : 0, valinfo.getFileURI(), FILE_NOT_FOUND_KEY, null);
     }
   }
                                                                     
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationInfo.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationInfo.java
index 2959cca..378dbf2 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationInfo.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationInfo.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 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
  *******************************************************************************/
@@ -111,7 +111,23 @@
    */
   public void addWarning(String message, int line, int column, String uri)
   {
-    addMessage(message, line, column, uri, SEV_WARNING, null, null);
+    addWarning(message, line, column, uri, null, null);
+  }
+  
+  /**
+   * 
+   * Add an error message.
+   * 
+   * @param message The message to add.
+   * @param line The line location of the message.
+   * @param column The column location of the message.
+   * @param uri The URI of the file that contains the message.
+   * @param key The key for the message.
+   * @param messageArguments more information about the error
+   */
+  public void addWarning(String message, int line, int column, String uri, String key, Object[] messageArguments)
+  {    
+    addMessage(message, line, column, uri, SEV_WARNING, key, messageArguments);
   }
   
   /**
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/xmlvalidation.properties b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/xmlvalidation.properties
index 9ed380a..35e7142 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/xmlvalidation.properties
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/xmlvalidation.properties
@@ -1,10 +1,10 @@
 ###############################################################################
-# Copyright (c) 2001, 2004 IBM Corporation and others.
+# Copyright (c) 2001, 2005 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
 ###############################################################################
@@ -13,14 +13,16 @@
 ! Usage:
 !   {0} replaced with the host name
 !
-_UI_PROBLEMS_VALIDATING_UNKNOWN_HOST             = Unable to connect to host: "{0}".
+_UI_PROBLEMS_VALIDATING_UNKNOWN_HOST             = The file cannot be validated as the host "{0}" is currently unreachable.
 
 ! Usage:
 !   {0} replaced with the file name
 !
-_UI_PROBLEMS_VALIDATING_FILE_NOT_FOUND           = File not found: "{0}".
+_UI_PROBLEMS_VALIDATING_FILE_NOT_FOUND           = The file cannot be validated as the XML Schema "{0}" that is specified as describing the syntax of the file cannot be located.
+
+_UI_PROBLEMS_CONNECTION_REFUSED                  = The file cannot be validated as there was a connection problem.
 
 !
 ! Referenced File Dialog Related Message
 !
-_UI_REF_FILE_ERROR_MESSAGE          = Referenced file contains errors ({0}).  For more information, right click on the message and select "Show Details..."
\ No newline at end of file
+_UI_REF_FILE_ERROR_MESSAGE          = Referenced file contains errors ({0}).  For more information, right click on the message and select "Show Details..."