[367856] [validation] Track javascript dependencies for validation in HTML
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLAttributeValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLAttributeValidator.java
index 347db0d..c8863cb 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLAttributeValidator.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLAttributeValidator.java
@@ -217,7 +217,7 @@
 							// roundabout start tag check
 							if (start != null && start.getFirstRegion().getTextLength() == 1) {
 								// only check when we have a way to set dependencies
-								Collection dependencies = (Collection) ((IDOMNode) node).getOwnerDocument().getUserData(HTMLValidationAdapterFactory.DEPENDENCIES);
+								Collection dependencies = (Collection) ((IDOMNode) ((IDOMNode) node).getOwnerDocument()).getUserData(HTMLValidationAdapterFactory.DEPENDENCIES);
 								if (dependencies != null) {
 									IPath basePath = new Path(((IDOMNode) node).getModel().getBaseLocation());
 									if (basePath.segmentCount() > 1) {
diff --git a/bundles/org.eclipse.wst.html.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.html.ui/META-INF/MANIFEST.MF
index 2a5754d..111184a 100644
--- a/bundles/org.eclipse.wst.html.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.html.ui/META-INF/MANIFEST.MF
@@ -31,8 +31,7 @@
  org.eclipse.wst.html.ui.views.contentoutline
 Import-Package: com.ibm.icu.util; version="3.8",
  com.ibm.icu.text; version="3.8"
-Require-Bundle:  org.apache.xerces;bundle-version="[2.9.0,3.0.0)",
- org.eclipse.ui.ide;bundle-version="[3.5.0,4.0.0)",
+Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.jface.text;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.ui.workbench.texteditor;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.ui.forms;bundle-version="[3.4.0,4.0.0)",
diff --git a/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/HTMLValidator.java b/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/HTMLValidator.java
index e203e40..0c2643f 100644
--- a/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/HTMLValidator.java
+++ b/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/HTMLValidator.java
@@ -68,6 +68,7 @@
 import org.eclipse.wst.validation.internal.provisional.core.IValidationContext;
 import org.eclipse.wst.validation.internal.provisional.core.IValidatorJob;
 import org.eclipse.wst.xml.core.internal.document.DocumentTypeAdapter;
+import org.eclipse.wst.xml.core.internal.document.NodeImpl;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
 import org.w3c.dom.Text;
@@ -497,13 +498,17 @@
 
 		try {
 			Collection dependencies = null;
+			NodeImpl document = null;
+			if (model.getDocument() instanceof NodeImpl) {
+				document = (NodeImpl) model.getDocument();
+			}
 			if (result != null) {
 				dependencies = new HashSet();
-				model.getDocument().setUserData(HTMLValidationAdapterFactory.DEPENDENCIES, dependencies, null);
+				document.setUserData(HTMLValidationAdapterFactory.DEPENDENCIES, dependencies, null);
 			}
 			validate(reporter, file, model);
 			if (result != null) {
-				model.getDocument().setUserData(HTMLValidationAdapterFactory.DEPENDENCIES, null, null);
+				document.setUserData(HTMLValidationAdapterFactory.DEPENDENCIES, null, null);
 				result.setDependsOn((IResource[]) dependencies.toArray(new IResource[dependencies.size()]));
 			}
 		}