comparison flys-aft/src/main/java/de/intevation/utils/XML.java @ 4095:da9df3641578

Send XML messages via HTTP POST around if the FLYS database has changed. flys-aft/trunk@3614 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 06 Jan 2012 12:10:40 +0000
parents 44dc38ca8492
children b195fede1c3b
comparison
equal deleted inserted replaced
4094:b20b710aa86f 4095:da9df3641578
3 import java.io.FileInputStream; 3 import java.io.FileInputStream;
4 import java.io.BufferedInputStream; 4 import java.io.BufferedInputStream;
5 import java.io.File; 5 import java.io.File;
6 import java.io.IOException; 6 import java.io.IOException;
7 import java.io.InputStream; 7 import java.io.InputStream;
8 import java.io.OutputStream;
9 import java.io.StringWriter;
8 10
9 import org.w3c.dom.Document; 11 import org.w3c.dom.Document;
10 12
11 import javax.xml.parsers.DocumentBuilderFactory; 13 import javax.xml.parsers.DocumentBuilderFactory;
12 import javax.xml.parsers.ParserConfigurationException; 14 import javax.xml.parsers.ParserConfigurationException;
28 30
29 import javax.xml.transform.Transformer; 31 import javax.xml.transform.Transformer;
30 import javax.xml.transform.TransformerFactory; 32 import javax.xml.transform.TransformerFactory;
31 import javax.xml.transform.TransformerConfigurationException; 33 import javax.xml.transform.TransformerConfigurationException;
32 import javax.xml.transform.TransformerException; 34 import javax.xml.transform.TransformerException;
33 35 import javax.xml.transform.TransformerFactoryConfigurationError;
36
37 import javax.xml.transform.stream.StreamResult;
34 import javax.xml.transform.stream.StreamSource; 38 import javax.xml.transform.stream.StreamSource;
35 39
36 import javax.xml.transform.dom.DOMSource; 40 import javax.xml.transform.dom.DOMSource;
37 import javax.xml.transform.dom.DOMResult; 41 import javax.xml.transform.dom.DOMResult;
38 42
68 return variables.get(key); 72 return variables.get(key);
69 } 73 }
70 } // class MapXPathVariableResolver 74 } // class MapXPathVariableResolver
71 75
72 private XML() { 76 private XML() {
77 }
78
79 /**
80 * Creates a new XML document
81 * @return the new XML document ot null if something went wrong during
82 * creation.
83 */
84 public static final Document newDocument() {
85 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
86 factory.setNamespaceAware(true);
87
88 try {
89 return factory.newDocumentBuilder().newDocument();
90 }
91 catch (ParserConfigurationException pce) {
92 log.error(pce.getLocalizedMessage(), pce);
93 }
94 return null;
73 } 95 }
74 96
75 /** 97 /**
76 * Loads a XML document namespace aware from a file 98 * Loads a XML document namespace aware from a file
77 * @param file The file to load. 99 * @param file The file to load.
252 log.error(te, te); 274 log.error(te, te);
253 } 275 }
254 276
255 return null; 277 return null;
256 } 278 }
279
280 /**
281 * Streams out an XML document to a given output stream.
282 * @param document The document to be streamed out.
283 * @param out The output stream to be used.
284 * @return true if operation succeeded else false.
285 */
286 public static boolean toStream(Document document, OutputStream out) {
287 try {
288 Transformer transformer =
289 TransformerFactory.newInstance().newTransformer();
290 DOMSource source = new DOMSource(document);
291 StreamResult result = new StreamResult(out);
292 transformer.transform(source, result);
293 return true;
294 }
295 catch (TransformerConfigurationException tce) {
296 log.error(tce.getLocalizedMessage(), tce);
297 }
298 catch (TransformerFactoryConfigurationError tfce) {
299 log.error(tfce.getLocalizedMessage(), tfce);
300 }
301 catch (TransformerException te) {
302 log.error(te.getLocalizedMessage(), te);
303 }
304
305 return false;
306 }
307
308 public static String toString(Document document) {
309 try {
310 Transformer transformer =
311 TransformerFactory.newInstance().newTransformer();
312 DOMSource source = new DOMSource(document);
313 StringWriter out = new StringWriter();
314 StreamResult result = new StreamResult(out);
315 transformer.transform(source, result);
316 out.flush();
317 return out.toString();
318 }
319 catch (TransformerConfigurationException tce) {
320 log.error(tce.getLocalizedMessage(), tce);
321 }
322 catch (TransformerFactoryConfigurationError tfce) {
323 log.error(tfce.getLocalizedMessage(), tfce);
324 }
325 catch (TransformerException te) {
326 log.error(te.getLocalizedMessage(), te);
327 }
328
329 return null;
330 }
257 } 331 }
258 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 332 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org