Explicitly enable external DTDs feature.
Review by: jat@google.com
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@10447 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/uibinder/rebind/W3cDomHelper.java b/user/src/com/google/gwt/uibinder/rebind/W3cDomHelper.java
index 1d3c20e..16e2fb6 100644
--- a/user/src/com/google/gwt/uibinder/rebind/W3cDomHelper.java
+++ b/user/src/com/google/gwt/uibinder/rebind/W3cDomHelper.java
@@ -35,6 +35,9 @@
* UiBinder likes it. Used by both prod and test.
*/
public class W3cDomHelper {
+ private static final String LOAD_EXTERNAL_DTD =
+ "http://apache.org/xml/features/nonvalidating/load-external-dtd";
+
private final SAXParserFactory factory;
private final TreeLogger logger;
private final ResourceOracle resourceOracle;
@@ -43,6 +46,13 @@
this.logger = logger;
this.resourceOracle = resourceOracle;
factory = SAXParserFactory.newInstance();
+ try {
+ factory.setFeature(LOAD_EXTERNAL_DTD, true);
+ } catch (ParserConfigurationException e) {
+ throw new RuntimeException(e);
+ } catch (SAXException e) {
+ // ignore since parser doesn't know about this feature
+ }
factory.setNamespaceAware(true);
}