use of javax.xml.parsers.SAXParser in project tomee by apache.
the class JaxbSun method unmarshal.
public static <T> Object unmarshal(final Class<T> type, final InputStream in, final boolean logErrors) throws ParserConfigurationException, SAXException, JAXBException {
// create a parser with validation disabled
final SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(false);
final SAXParser parser = factory.newSAXParser();
// Get the JAXB context -- this should be cached
final JAXBContext ctx = JAXBContextFactory.newInstance(type);
// get the unmarshaller
final Unmarshaller unmarshaller = ctx.createUnmarshaller();
// log errors?
unmarshaller.setEventHandler(new ValidationEventHandler() {
public boolean handleEvent(final ValidationEvent validationEvent) {
if (logErrors) {
System.out.println(validationEvent);
}
return false;
}
});
// add our XMLFilter which disables dtd downloading
final NamespaceFilter xmlFilter = new NamespaceFilter(parser.getXMLReader());
xmlFilter.setContentHandler(unmarshaller.getUnmarshallerHandler());
// Wrap the input stream with our filter
final SAXSource source = new SAXSource(xmlFilter, new InputSource(in));
// unmarshal the document
return unmarshaller.unmarshal(source);
}
use of javax.xml.parsers.SAXParser in project tomee by apache.
the class JaxbWls method unmarshal.
public static <T> Object unmarshal(final Class<T> type, final InputStream in) throws ParserConfigurationException, SAXException, JAXBException {
final InputSource inputSource = new InputSource(in);
final SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(false);
final SAXParser parser = factory.newSAXParser();
final JAXBContext ctx = JaxbWls.getContext(type);
final Unmarshaller unmarshaller = ctx.createUnmarshaller();
unmarshaller.setEventHandler(new ValidationEventHandler() {
public boolean handleEvent(final ValidationEvent validationEvent) {
System.out.println(validationEvent);
return false;
}
});
final JaxbWls.NamespaceFilter xmlFilter = new JaxbWls.NamespaceFilter(parser.getXMLReader());
xmlFilter.setContentHandler(unmarshaller.getUnmarshallerHandler());
final SAXSource source = new SAXSource(xmlFilter, inputSource);
JaxbWls.currentPublicId.set(new TreeSet<String>());
try {
return unmarshaller.unmarshal(source, type);
} finally {
JaxbWls.currentPublicId.set(null);
}
}
use of javax.xml.parsers.SAXParser in project GeoGig by boundlessgeo.
the class XmlReader method run.
/**
* Reads all data from the file and send it to the sink.
*/
public void run() {
InputStream inputStream = this.file;
try {
SAXParser parser;
sink.initialize(Collections.<String, Object>emptyMap());
// make "-" an alias for /dev/stdin
// if (file.getName().equals("-")) {
// inputStream = System.in;
// } else {
// inputStream = new FileInputStream(file);
// }
inputStream = new CompressionActivator(compressionMethod).createCompressionInputStream(inputStream);
parser = createParser();
parser.parse(inputStream, new OsmHandler(sink, enableDateParsing));
sink.complete();
} catch (SAXParseException e) {
throw new OsmosisRuntimeException("Unable to parse xml file " + file + ". publicId=(" + e.getPublicId() + "), systemId=(" + e.getSystemId() + "), lineNumber=" + e.getLineNumber() + ", columnNumber=" + e.getColumnNumber() + ".", e);
} catch (SAXException e) {
throw new OsmosisRuntimeException("Unable to parse XML.", e);
} catch (IOException e) {
throw new OsmosisRuntimeException("Unable to read XML file " + file + ".", e);
} finally {
sink.release();
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
log.log(Level.SEVERE, "Unable to close input stream.", e);
}
inputStream = null;
}
}
}
use of javax.xml.parsers.SAXParser in project Gargoyle by callakrsos.
the class SAXPasrerUtil method getAllQNames.
public static List<String> getAllQNames(InputStream is, SAXHandler defaultHandler) throws Exception {
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
sp.parse(is, defaultHandler);
return defaultHandler.getList();
}
use of javax.xml.parsers.SAXParser in project Gargoyle by callakrsos.
the class SAXPasrerUtil method getAll.
public static <T> List<T> getAll(InputStream is, Handler<T> handler) throws Exception {
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
sp.parse(is, handler);
return handler.getList();
}
Aggregations