[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