[109429] CSS and DTD content describers do too much when asked for validity
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/ContentDescriberForCSS.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/ContentDescriberForCSS.java
index cb2f092..ea0655b 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/ContentDescriberForCSS.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/contenttype/ContentDescriberForCSS.java
@@ -29,16 +29,26 @@
 	public int describe(InputStream contents, IContentDescription description) throws IOException {
 		int result = IContentDescriber.INDETERMINATE;
 
-		calculateSupportedOptions(contents, description);
-
+		if (description == null) {
+			result = computeValidity(contents);
+		}
+		else {
+			calculateSupportedOptions(contents, description);
+			result = computeValidity(contents);
+		}
 		return result;
 	}
 
 	public int describe(Reader contents, IContentDescription description) throws IOException {
 		int result = IContentDescriber.INDETERMINATE;
 
-		calculateSupportedOptions(contents, description);
-
+		if (description == null) {
+			result = computeValidity(contents);
+		}
+		else {
+			calculateSupportedOptions(contents, description);
+			result = computeValidity(contents);
+		}
 		return result;
 	}
 
@@ -68,6 +78,18 @@
 		}
 	}
 
+	private int computeValidity(InputStream inputStream) {
+		// currently no specific check for validilty
+		// based on contents.
+		return IContentDescriber.INDETERMINATE;
+	}
+
+	private int computeValidity(Reader reader) {
+		// currently no specific check for validilty
+		// based on contents.
+		return IContentDescriber.INDETERMINATE;
+	}
+
 	private IResourceCharsetDetector getDetector() {
 		return new CSSResourceEncodingDetector();
 	}
@@ -83,7 +105,7 @@
 		// mulitiple times (one for each, say) that we don't waste time
 		// processing same
 		// content again.
-		EncodingMemento encodingMemento = ((CSSResourceEncodingDetector)detector).getEncodingMemento();
+		EncodingMemento encodingMemento = ((CSSResourceEncodingDetector) detector).getEncodingMemento();
 		// TODO: I need to verify to see if this BOM work is always done
 		// by text type.
 		Object detectedByteOrderMark = encodingMemento.getUnicodeBOM();
@@ -175,5 +197,4 @@
 		// result = true;
 		return result;
 	}
-
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/content/ContentDescriberForDTD.java b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/content/ContentDescriberForDTD.java
index c245829..0fad934 100644
--- a/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/content/ContentDescriberForDTD.java
+++ b/bundles/org.eclipse.wst.dtd.core/src/org/eclipse/wst/dtd/core/internal/content/ContentDescriberForDTD.java
@@ -34,16 +34,26 @@
 	public int describe(InputStream contents, IContentDescription description) throws IOException {
 		int result = IContentDescriber.INDETERMINATE;
 
-		calculateSupportedOptions(contents, description);
-
+		if (description == null) {
+			result = computeValidity(contents);
+		}
+		else {
+			calculateSupportedOptions(contents, description);
+			result = computeValidity(contents);
+		}
 		return result;
 	}
 
 	public int describe(Reader contents, IContentDescription description) throws IOException {
 		int result = IContentDescriber.INDETERMINATE;
 
-		calculateSupportedOptions(contents, description);
-
+		if (description == null) {
+			result = computeValidity(contents);
+		}
+		else {
+			calculateSupportedOptions(contents, description);
+			result = computeValidity(contents);
+		}
 		return result;
 	}
 
@@ -73,6 +83,18 @@
 		}
 	}
 
+	private int computeValidity(InputStream inputStream) {
+		// currently no specific check for validilty
+		// based on contents.
+		return IContentDescriber.INDETERMINATE;
+	}
+
+	private int computeValidity(Reader reader) {
+		// currently no specific check for validilty
+		// based on contents.
+		return IContentDescriber.INDETERMINATE;
+	}
+
 	// same rules as for XML
 	private IResourceCharsetDetector getDetector() {
 		if (resourceCharsetDetector == null) {
@@ -92,7 +114,7 @@
 		// mulitiple times (one for each, say) that we don't waste time
 		// processing same
 		// content again.
-		EncodingMemento encodingMemento = ((XMLResourceEncodingDetector)detector).getEncodingMemento();
+		EncodingMemento encodingMemento = ((XMLResourceEncodingDetector) detector).getEncodingMemento();
 		// TODO: I need to verify to see if this BOM work is always done
 		// by text type.
 		Object detectedByteOrderMark = encodingMemento.getUnicodeBOM();
@@ -186,5 +208,4 @@
 			result = true;
 		return result;
 	}
-
 }