1 9 10 package test.dom4j; 11 12 import junit.framework.Test; 13 import junit.framework.TestSuite; 14 import junit.textui.TestRunner; 15 import org.dom4j.Document; 16 import org.dom4j.io.SAXContentHandler; 17 import org.dom4j.io.SAXReader; 18 import org.xml.sax.XMLReader ; 19 20 import javax.xml.parsers.SAXParser ; 21 import javax.xml.parsers.SAXParserFactory ; 22 import java.io.File ; 23 24 public class TestSAXContentHandler extends AbstractTestCase { 25 private XMLReader xmlReader; 26 27 protected String [] testDocuments = { 28 "xml/test/test_schema.xml", 29 "xml/fibo.xml", 31 "xml/test/schema/personal-prefix.xsd", 32 }; 34 35 public static void main( String [] args ) { 36 TestRunner.run( suite() ); 37 } 38 39 public static Test suite() { 40 return new TestSuite( TestSAXContentHandler.class ); 41 } 42 43 public TestSAXContentHandler(String name) { 44 super(name); 45 } 46 47 protected void setUp() throws Exception { 48 SAXParserFactory spf = SAXParserFactory.newInstance(); 49 spf.setNamespaceAware(true); 50 SAXParser parser = spf.newSAXParser(); 51 xmlReader = parser.getXMLReader(); 52 53 System.out.println("Using XMLReader class: "+xmlReader.getClass().getName()); 54 } 55 56 public void testSAXContentHandler() throws Exception { 57 58 SAXContentHandler contentHandler = new SAXContentHandler(); 59 xmlReader.setContentHandler(contentHandler); 60 xmlReader.setDTDHandler(contentHandler); 61 xmlReader.setProperty("http://xml.org/sax/properties/lexical-handler", contentHandler); 62 63 for ( int i = 0, size = testDocuments.length; i < size; i++ ) { 64 SAXReader reader = new SAXReader(); 65 File file = new File (testDocuments[i]); 66 Document docFromSAXReader = reader.read( file ); 67 68 xmlReader.parse(file.toURL().toString()); 69 Document docFromSAXContentHandler = contentHandler.getDocument(); 70 71 74 docFromSAXContentHandler.setName(docFromSAXReader.getName()); 75 76 assertDocumentsEqual(docFromSAXReader, docFromSAXContentHandler); 77 assertEquals(docFromSAXReader.asXML(), docFromSAXContentHandler.asXML()); 78 } 79 } 80 81 } 82 83 84 85 86 130 | Popular Tags |