diff --git a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/util/Debug.java b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/util/Debug.java
index fc81728..569d77b 100755
--- a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/util/Debug.java
+++ b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/util/Debug.java
@@ -104,7 +104,7 @@
 		ITextRegionCollection flatNode = null;
 		System.out.println("Dump of structuredDocument:"); //$NON-NLS-1$
 		IStructuredDocumentRegionList flatNodes = structuredDocument.getRegionList();
-		Enumeration structuredDocumentRegions = flatNodes.elements();
+		Enumeration<?> structuredDocumentRegions = flatNodes.elements();
 		while (structuredDocumentRegions.hasMoreElements()) {
 			flatNode = (ITextRegionCollection) structuredDocumentRegions.nextElement();
 			if (!verbose) {
diff --git a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/util/XMLContentType.java b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/util/XMLContentType.java
index e8c46c4..06e4139 100644
--- a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/util/XMLContentType.java
+++ b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/util/XMLContentType.java
@@ -62,7 +62,7 @@
 	
 	private IContentType[] getAllXMLContentTypes() {
 		ArrayList<IContentType> arrayList = new ArrayList<IContentType>(Arrays.asList(contentTypeManager.getAllContentTypes()));
-		ArrayList<IContentType> copyContents = (ArrayList)arrayList.clone();
+		ArrayList<IContentType> copyContents = (ArrayList<IContentType>)arrayList.clone();
 	
 		for(IContentType contentType : arrayList) {
 			if (!isXMLContentType(contentType)) {
diff --git a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/XSLValidationReport.java b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/XSLValidationReport.java
index f8b0aff..66e067b 100644
--- a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/XSLValidationReport.java
+++ b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/XSLValidationReport.java
@@ -145,8 +145,7 @@
 	 * 
 	 * @return null
 	 */
-	@SuppressWarnings("unchecked")
-	public HashMap getNestedMessages()
+	public HashMap<?, ?> getNestedMessages()
 	{
 		return null;
 	}
diff --git a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/XSLValidator.java b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/XSLValidator.java
index 45e03ee..f414d81 100644
--- a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/XSLValidator.java
+++ b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/XSLValidator.java
@@ -228,7 +228,7 @@
 				if (att != null) {
 					String baseURI = include.getStylesheet().getFile().getLocationURI().toString();
 					
-					String resolvedURI = URIResolverPlugin.createResolver().resolve(baseURI, "", att.getValue());
+					String resolvedURI = URIResolverPlugin.createResolver().resolve(baseURI, "", att.getValue()); //$NON-NLS-1$
 					if (resolvedURI == null) {
 						createMarker(
 								report,
@@ -258,7 +258,7 @@
 				if (att != null) {
 					String baseURI = include.getStylesheet().getFile().getLocationURI().toString();
 					
-					String resolvedURI = URIResolverPlugin.createResolver().resolve(baseURI, "", att.getValue());
+					String resolvedURI = URIResolverPlugin.createResolver().resolve(baseURI, "", att.getValue()); //$NON-NLS-1$
 					if (resolvedURI == null) {
 						createMarker(
 								report,
diff --git a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/eclipse/XSLValidationReport.java b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/eclipse/XSLValidationReport.java
index ea88aaf..b0d7f44 100644
--- a/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/eclipse/XSLValidationReport.java
+++ b/bundles/org.eclipse.wst.xsl.core/src/org/eclipse/wst/xsl/core/internal/validation/eclipse/XSLValidationReport.java
@@ -29,10 +29,9 @@
 		return uri;
 	}
 
-	@SuppressWarnings("unchecked")
-	public HashMap getNestedMessages()
+	public HashMap<?, ?> getNestedMessages()
 	{
-		return new HashMap();
+		return new HashMap<Object, Object>();
 	}
 
 	public ValidationMessage[] getValidationMessages()
