1 16 package org.outerj.daisy.frontend.util; 17 18 import org.apache.excalibur.xml.sax.XMLizable; 19 import org.xml.sax.ContentHandler ; 20 import org.xml.sax.SAXException ; 21 import org.xml.sax.InputSource ; 22 23 import javax.xml.parsers.SAXParserFactory ; 24 import javax.xml.parsers.SAXParser ; 25 import javax.xml.parsers.ParserConfigurationException ; 26 import java.io.ByteArrayInputStream ; 27 import java.io.IOException ; 28 29 public class ByteArrayXMLizable implements XMLizable { 30 private byte[] data; 31 32 public ByteArrayXMLizable(byte[] data) { 33 this.data = data; 34 } 35 36 public void toSAX(ContentHandler contentHandler) throws SAXException { 37 SAXParserFactory parserFactory = SAXParserFactory.newInstance(); 38 parserFactory.setNamespaceAware(true); 39 SAXParser parser = null; 40 try { 41 parser = parserFactory.newSAXParser(); 42 } catch (ParserConfigurationException e) { 43 throw new SAXException ("Error creating SAX parser.", e); 44 } 45 parser.getXMLReader().setContentHandler(contentHandler); 46 InputSource is = new InputSource (new ByteArrayInputStream (data)); 47 try { 48 parser.getXMLReader().parse(is); 49 } catch (IOException e) { 50 throw new SAXException (e); 51 } 52 } 53 } 54 | Popular Tags |