[jbosstools-commits] JBoss Tools SVN: r17484 - trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/xml.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Tue Sep 8 20:20:30 EDT 2009


Author: dgolovin
Date: 2009-09-08 20:20:30 -0400 (Tue, 08 Sep 2009)
New Revision: 17484

Modified:
   trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/xml/XMLUtilities.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-3892
fix compilation errors

Modified: trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/xml/XMLUtilities.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/xml/XMLUtilities.java	2009-09-09 00:17:23 UTC (rev 17483)
+++ trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/xml/XMLUtilities.java	2009-09-09 00:20:30 UTC (rev 17484)
@@ -11,6 +11,7 @@
 package org.jboss.tools.common.xml;
 
 import java.io.BufferedWriter;
+import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.FileWriter;
@@ -22,6 +23,8 @@
 import java.util.ArrayList;
 
 import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
 
 import org.apache.xml.serialize.LineSeparator;
 import org.apache.xml.serialize.Method;
@@ -43,6 +46,7 @@
 import org.xml.sax.SAXException;
 
 public class XMLUtilities {
+	
     public static boolean hasAttribute(Element e, String s) {
         return e.getAttributes().getNamedItem(s) != null;
     }
@@ -116,12 +120,31 @@
     }
 
 	public static DocumentBuilder createDocumentBuilder() {
-		return createDocumentBuilder(false);
+		return  createDocumentBuilder(false);
 	}
 
-	public static DocumentBuilder createDocumentBuilder(boolean validating) {
-		return SafeDocumentBuilderFactory.createDocumentBuilder(validating);
+	public static DocumentBuilder createDocumentBuilder(boolean validate) {
+		try {
+			DocumentBuilderFactory f = DocumentBuilderFactory.newInstance();
+			if (validate) {
+				f.setValidating(validate);
+			}
+			// / f.setExpandEntityReferences(false);
+			DocumentBuilder d = f.newDocumentBuilder();
+			if (!validate) {
+				d.setEntityResolver(EMPTY_RESOLVER);
+			}
+			d.setErrorHandler(new ErrorHandlerImpl());
+			return d;
+		} catch (ParserConfigurationException e) {
+			CommonPlugin.getPluginLog().logError(e);
+		}
+		return null;
 	}
+	
+	public static final EntityResolver EMPTY_RESOLVER = createEmptyEntityResolver();
+	
+	
 
     public static Element createDocumentElement(String name) {
 		Document d = createDocumentBuilder().newDocument();
@@ -130,7 +153,19 @@
         return de;
     }
 
-    public static Element createDocumentElement(String name, String qName, String publicId, String systemId, String namespaceURI) {
+    public static EntityResolver createEmptyEntityResolver() {
+		return new EntityResolver() {
+			public InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId) throws SAXException, java.io.IOException {
+				if((systemId != null) && systemId.toLowerCase().endsWith(".dtd")) { // this deactivates DTD //$NON-NLS-1$
+					return new InputSource(new ByteArrayInputStream("<?xml version='1.0' encoding='UTF-8'?>".getBytes())); //$NON-NLS-1$
+				} else {
+					return null;
+				}
+			}
+		};
+	}
+
+	public static Element createDocumentElement(String name, String qName, String publicId, String systemId, String namespaceURI) {
         Document d = null;
         try {
             DOMImplementation domImpl = createDocumentBuilder().getDOMImplementation();



More information about the jbosstools-commits mailing list