Bug 515476: Don't assume schema location for Web App projects

Fixes JavaEEQuickpeek.getVersion() so that the schema location of a
deployment descriptor does not need to be specified. So long as we know
the namespace and schema type, we can determine the version.

Also-by: Brian de Alwis <bsd@mt.ca>
Signed-off-by: John Collier <John.J.Collier@ibm.com>
diff --git a/plugins/org.eclipse.jst.j2ee.core/archive/org/eclipse/jst/jee/util/internal/JavaEEQuickPeek.java b/plugins/org.eclipse.jst.j2ee.core/archive/org/eclipse/jst/jee/util/internal/JavaEEQuickPeek.java
index 66b0664..2698017 100644
--- a/plugins/org.eclipse.jst.j2ee.core/archive/org/eclipse/jst/jee/util/internal/JavaEEQuickPeek.java
+++ b/plugins/org.eclipse.jst.j2ee.core/archive/org/eclipse/jst/jee/util/internal/JavaEEQuickPeek.java
@@ -153,14 +153,11 @@
 			String publicID = handler.getDtdPublicID();
 			String systemID = handler.getDtdSystemID();
 			String schemaName = null;
+			String namespace = null;
 			if (publicID == null || systemID == null) {
 				if (handler.getRootAttributes() != null) {
 					schemaName = normalizeSchemaLocation(handler.getRootAttributes().getValue("xsi:schemaLocation")); //$NON-NLS-1$
 				}
-				if (schemaName == null) {
-					version = UNKNOWN;
-					return version;
-				}
 			}
 			switch (getType()) {
 			case APPLICATION_CLIENT_TYPE:
@@ -262,6 +259,25 @@
 					} else if (schemaName.indexOf(J2EEConstants.WEBAPP_SCHEMA_4_0) != -1) {
 						version = J2EEVersionConstants.WEB_4_0_ID;
 					}
+				} else if (J2EEConstants.J2EE_NS_URL.equals(namespace)) {
+					String versionAttribute = handler.getRootAttributes().getValue("version"); //$NON-NLS-1$
+					if (J2EEVersionConstants.VERSION_2_4_TEXT.equals(versionAttribute)) {
+						version = J2EEVersionConstants.WEB_2_4_ID;
+					}
+				} else if (J2EEConstants.JAVAEE_NS_URL.equals(namespace)) {
+					String versionAttribute = handler.getRootAttributes().getValue("version"); //$NON-NLS-1$
+					if (J2EEVersionConstants.VERSION_2_5_TEXT.equals(versionAttribute)) {
+						version = J2EEVersionConstants.WEB_2_5_ID;
+					} else if (J2EEVersionConstants.VERSION_3_0_TEXT.equals(versionAttribute)) {
+						version = J2EEVersionConstants.WEB_3_0_ID;
+					}
+				} else if (J2EEConstants.JAVAEE7_NS_URL.equals(namespace)) {
+					String versionAttribute = handler.getRootAttributes().getValue("version"); //$NON-NLS-1$
+					if (J2EEVersionConstants.VERSION_3_1_TEXT.equals(versionAttribute)) {
+						version = J2EEVersionConstants.WEB_3_1_ID;
+					} else if (J2EEVersionConstants.VERSION_4_0_TEXT.equals(versionAttribute)) {
+						version = J2EEVersionConstants.WEB_4_0_ID;
+					}
 				}
 				break;
 			case WEBSERVICES_TYPE: