[jboss-cvs] jboss-seam/src/main/org/jboss/seam/util ...
Norman Richards
norman.richards at jboss.com
Wed Jul 11 13:11:33 EDT 2007
User: nrichards
Date: 07/07/11 13:11:33
Modified: src/main/org/jboss/seam/util XML.java
Log:
JBSEAM-1646
Revision Changes Path
1.2 +32 -0 jboss-seam/src/main/org/jboss/seam/util/XML.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: XML.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/util/XML.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- XML.java 17 Dec 2006 17:45:38 -0000 1.1
+++ XML.java 11 Jul 2007 17:11:33 -0000 1.2
@@ -1,10 +1,15 @@
package org.jboss.seam.util;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
import java.io.InputStream;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
+import org.xml.sax.EntityResolver;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
public class XML
{
@@ -16,4 +21,31 @@
return saxReader.read(stream).getRootElement();
}
+
+ /**
+ * Parses an XML document safely, as to not resolve any external DTDs
+ */
+ public static Element getRootElementSafely(InputStream stream)
+ throws DocumentException
+ {
+ SAXReader saxReader = new SAXReader();
+ saxReader.setEntityResolver(new NullEntityResolver());
+ saxReader.setMergeAdjacentText(true);
+ return saxReader.read(stream).getRootElement();
+ }
+
+
+ public static class NullEntityResolver
+ implements EntityResolver
+ {
+ private static final byte[] empty = new byte[0];
+
+ public InputSource resolveEntity(String systemId, String publicId)
+ throws SAXException,
+ IOException
+ {
+ return new InputSource(new ByteArrayInputStream(empty));
+ }
+
+ }
}
More information about the jboss-cvs-commits
mailing list