use of javax.xml.parsers.SAXParserFactory in project tomee by apache.
the class JaxbOpenejbJar3 method unmarshal.
public static <T> T 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 = getContext(type);
final Unmarshaller unmarshaller = ctx.createUnmarshaller();
unmarshaller.setEventHandler(new ValidationEventHandler() {
public boolean handleEvent(final ValidationEvent validationEvent) {
// System.out.println(validationEvent);
return false;
}
});
final NamespaceFilter xmlFilter = new NamespaceFilter(parser.getXMLReader());
xmlFilter.setContentHandler(unmarshaller.getUnmarshallerHandler());
final SAXSource source = new SAXSource(xmlFilter, inputSource);
final Object o = unmarshaller.unmarshal(source);
if (o instanceof JAXBElement) {
final JAXBElement element = (JAXBElement) o;
return (T) element.getValue();
}
return (T) o;
}
use of javax.xml.parsers.SAXParserFactory 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.SAXParserFactory 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.SAXParserFactory 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.SAXParserFactory 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