1 24 package org.riotfamily.common.xml; 25 26 import org.apache.commons.logging.Log; 27 import org.apache.commons.logging.LogFactory; 28 import org.springframework.beans.factory.xml.DefaultDocumentLoader; 29 import org.springframework.beans.factory.xml.DocumentLoader; 30 import org.springframework.core.io.Resource; 31 import org.springframework.util.xml.SimpleSaxErrorHandler; 32 import org.w3c.dom.Document ; 33 import org.xml.sax.EntityResolver ; 34 import org.xml.sax.ErrorHandler ; 35 import org.xml.sax.InputSource ; 36 37 41 public class DocumentReader { 42 43 protected static final int VALIDATION_MODE_NONE = 0; 44 45 private static Log log = LogFactory.getLog(DocumentReader.class); 46 47 private Resource resource; 48 49 private ErrorHandler errorHandler = new SimpleSaxErrorHandler(log); 50 51 private DocumentLoader loader = new DefaultDocumentLoader(); 52 53 public DocumentReader(Resource resource) { 54 this.resource = resource; 55 } 56 57 protected int getValidationMode() { 58 return VALIDATION_MODE_NONE; 59 } 60 61 protected EntityResolver getEntityResolver() { 62 return null; 63 } 64 65 public Document readDocument() { 66 try { 67 InputSource source = new InputSource (resource.getInputStream()); 68 return loader.loadDocument(source, getEntityResolver(), errorHandler, 69 getValidationMode(), true); 70 } 71 catch (RuntimeException e) { 72 throw e; 73 } 74 catch (Exception e) { 75 throw new DocumentReaderException(resource, e); 76 } 77 } 78 79 } | Popular Tags |