package net.jhorstmann.i18n.tools.xml;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.SAXException;
import org.xml.sax.SAXNotRecognizedException;
import org.xml.sax.SAXNotSupportedException;
import org.xml.sax.XMLReader;
public class XMLHelper {
private XMLHelper() {
}
public static SAXParserFactory createParserFactory() {
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(false);
try {
factory.setFeature("http://xml.org/sax/features/external-general-entities", false);
factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
} catch (ParserConfigurationException ex) {
} catch (SAXNotRecognizedException ex) {
} catch (SAXNotSupportedException ex) {
}
try {
factory.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);
factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
} catch (ParserConfigurationException ex) {
} catch (SAXNotRecognizedException ex) {
} catch (SAXNotSupportedException ex) {
}
return factory;
}
public static XMLReader createXMLReader() {
SAXParserFactory factory = createParserFactory();
try {
SAXParser parser = factory.newSAXParser();
return parser.getXMLReader();
} catch (ParserConfigurationException ex) {
throw new IllegalStateException(ex);
} catch (SAXException ex) {
throw new IllegalStateException(ex);
}
}
}