1 29 30 package com.caucho.relaxng; 31 32 import com.caucho.vfs.Path; 33 import com.caucho.vfs.ReadStream; 34 import com.caucho.vfs.Vfs; 35 import com.caucho.xml.Xml; 36 37 import org.xml.sax.ErrorHandler ; 38 import org.xml.sax.SAXException ; 39 import org.xml.sax.SAXParseException ; 40 41 import java.io.IOException ; 42 import java.util.logging.Level ; 43 import java.util.logging.Logger ; 44 45 48 abstract public class Verifier { 49 private static final Logger log 50 = Logger.getLogger(Verifier.class.getName()); 51 52 55 abstract public void setErrorHandler(ErrorHandler handler); 56 57 60 abstract public VerifierHandler getVerifierHandler(); 61 62 63 66 public VerifierFilter getVerifierFilter() 67 { 68 return new VerifierFilter(this); 69 } 70 71 74 public boolean verify(String url) 75 throws IOException , SAXException 76 { 77 Path path = Vfs.lookup(url); 78 79 ReadStream is = path.openRead(); 80 81 try { 82 Xml xml = new Xml(); 83 84 VerifierHandler handler = getVerifierHandler(); 85 86 xml.setContentHandler(handler); 87 88 xml.parse(is); 89 90 return handler.isValid(); 91 } finally { 92 is.close(); 93 } 94 } 95 96 99 public void error(SAXParseException e) 100 throws SAXException 101 { 102 log.log(Level.FINE, e.toString(), e); 103 } 104 } 105 | Popular Tags |