1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.rat.report.xml;
20
21 import java.io.IOException;
22 import java.io.InputStream;
23 import java.io.StringReader;
24 import java.lang.reflect.UndeclaredThrowableException;
25
26 import javax.xml.parsers.DocumentBuilder;
27 import javax.xml.parsers.DocumentBuilderFactory;
28 import javax.xml.parsers.FactoryConfigurationError;
29 import javax.xml.parsers.ParserConfigurationException;
30 import javax.xml.parsers.SAXParserFactory;
31
32 import org.w3c.dom.Document;
33 import org.xml.sax.InputSource;
34 import org.xml.sax.SAXException;
35 import org.xml.sax.XMLReader;
36
37 public final class XmlUtils {
38
39 public static final boolean isWellFormedXml(final String string) throws Exception {
40 return isWellFormedXml(new InputSource(new StringReader(string)));
41 }
42
43 public static final XMLReader newXMLReader() throws SAXException, ParserConfigurationException {
44 final SAXParserFactory spf = SAXParserFactory.newInstance();
45 spf.setValidating(false);
46 spf.setNamespaceAware(true);
47 return spf.newSAXParser().getXMLReader();
48 }
49
50 public static final boolean isWellFormedXml(final InputSource isource) {
51 try {
52 newXMLReader().parse(isource);
53 return true;
54 } catch (SAXException e) {
55 System.out.println(e);
56 e.printStackTrace();
57 return false;
58 } catch (IOException e) {
59 throw new UndeclaredThrowableException(e);
60 } catch (ParserConfigurationException e) {
61 throw new UndeclaredThrowableException(e);
62 }
63 }
64
65 public static final boolean isWellFormedXml(final InputStream in) throws Exception {
66 return isWellFormedXml(new InputSource(in));
67 }
68
69 public static final Document toDom(final InputStream in) throws SAXException, IOException, ParserConfigurationException, FactoryConfigurationError {
70 final DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
71 Document result;
72 result = builder.parse(in);
73 return result;
74 }
75 }