1 39 40 package serializer.dom; 41 42 import java.io.File ; 43 import java.io.InputStream ; 44 import java.io.FileInputStream ; 45 import java.io.OutputStream ; 46 import java.io.FileOutputStream ; 47 import java.io.BufferedInputStream ; 48 import java.io.BufferedOutputStream ; 49 import java.io.FileNotFoundException ; 50 51 import javax.xml.transform.dom.DOMSource ; 52 import javax.xml.transform.sax.SAXResult ; 53 import javax.xml.transform.stream.StreamResult ; 54 55 import javax.xml.parsers.DocumentBuilder ; 56 import javax.xml.parsers.DocumentBuilderFactory ; 57 import org.w3c.dom.Document ; 58 59 import javax.xml.stream.XMLStreamWriter; 60 import javax.xml.stream.XMLOutputFactory; 61 import javax.xml.stream.XMLStreamException; 62 import com.sun.xml.fastinfoset.stax.StAXInputFactory; 63 import com.sun.xml.fastinfoset.stax.SAX2StAXWriter; 64 65 public class Util { 66 DocumentBuilder _docBuilder; 67 68 public static final int STAX_SERIALIZER_RI = 1; 69 public static final int STAX_SERIALIZER_FI = 2; 70 public static final int STAX_SERIALIZER_SJSXP = 3; 71 72 XMLOutputFactory factory = XMLOutputFactory.newInstance(); 73 74 public Util() { 75 init(); 76 } 77 78 public Util(int outputFactory) { 79 if (outputFactory==STAX_SERIALIZER_FI) { 80 System.setProperty("javax.xml.stream.XMLOutputFactory", 81 "com.sun.xml.fastinfoset.stax.StAXOutputFactory"); 82 } else if (outputFactory==STAX_SERIALIZER_SJSXP) { 83 System.setProperty("javax.xml.stream.XMLOutputFactory", 84 "com.sun.xml.stream.ZephyrWriterFactory"); 85 } 86 init(); 87 } 88 89 void init() { 90 try { 91 factory = XMLOutputFactory.newInstance(); 92 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 93 dbf.setNamespaceAware(true); 94 _docBuilder = dbf.newDocumentBuilder(); 95 } catch (Exception e) { 96 e.printStackTrace(); 97 } 98 99 } 100 101 102 public DOMSource getDOMSource(File input) { 103 try { 104 FileInputStream fis = new FileInputStream (input); 105 Document document = _docBuilder.parse(fis); 106 fis.close(); 107 return new DOMSource (document); 108 } 109 catch (Exception e) { 110 e.printStackTrace(); 111 } 112 return null; 113 } 114 115 public SAXResult getSAXResult(OutputStream output) { 116 SAXResult _result = null; 117 try { 118 XMLStreamWriter serializer = factory.createXMLStreamWriter(output); 119 SAX2StAXWriter saxTostax = new SAX2StAXWriter(serializer); 120 121 _result = new SAXResult (); 122 _result.setHandler(saxTostax); 123 _result.setLexicalHandler(saxTostax); 124 125 } 126 catch (Exception e) { 127 e.printStackTrace(); 128 } 129 return _result; 130 } 131 public StreamResult getStreamResult(OutputStream output) { 132 StreamResult result = null; 133 try { 134 result = new StreamResult (output); 135 } 136 catch (Exception e) { 137 e.printStackTrace(); 138 } 139 return result; 140 } 141 } 142 | Popular Tags |