List of usage examples for org.xml.sax XMLFilter setParent
public abstract void setParent(XMLReader parent);
From source file:org.dita.dost.util.XMLUtils.java
/** * Transform file with XML filters.//from ww w.ja v a2s . c o m * * @param input input file * @param output output file * @param filters XML filters to transform file with, may be an empty list */ public static void transform(final URI input, final URI output, final List<XMLFilter> filters) throws DITAOTException { InputSource src = null; StreamResult result = null; try { final Transformer transformer = TransformerFactory.newInstance().newTransformer(); XMLReader reader = getXMLReader(); for (final XMLFilter filter : filters) { // ContentHandler must be reset so e.g. Saxon 9.1 will reassign ContentHandler // when reusing filter with multiple Transformers. filter.setContentHandler(null); filter.setParent(reader); reader = filter; } src = new InputSource(input.toString()); final Source source = new SAXSource(reader, src); result = new StreamResult(output.toString()); transformer.transform(source, result); } catch (final RuntimeException e) { throw e; } catch (final Exception e) { throw new DITAOTException("Failed to transform " + input + ": " + e.getMessage(), e); } finally { try { close(src); } catch (final IOException e) { // NOOP } try { close(result); } catch (final IOException e) { // NOOP } } }
From source file:org.kuali.rice.core.impl.config.property.JAXBConfigImpl.java
protected org.kuali.rice.core.impl.config.property.Config unmarshal(Unmarshaller unmarshaller, InputStream in) throws SAXException, ParserConfigurationException, IOException, IllegalStateException, JAXBException { SAXParserFactory spf = SAXParserFactory.newInstance(); spf.setNamespaceAware(true);/*ww w . ja va 2 s. co m*/ XMLFilter filter = new ConfigNamespaceURIFilter(); filter.setParent(spf.newSAXParser().getXMLReader()); UnmarshallerHandler handler = unmarshaller.getUnmarshallerHandler(); filter.setContentHandler(handler); filter.parse(new InputSource(in)); return (org.kuali.rice.core.impl.config.property.Config) handler.getResult(); }
From source file:org.opennms.core.xml.JaxbUtils.java
public static <T> XMLFilter getXMLFilterForClass(final Class<T> clazz) throws SAXException { final String namespace = getNamespaceForClass(clazz); XMLFilter filter = namespace == null ? new SimpleNamespaceFilter("", false) : new SimpleNamespaceFilter(namespace, true); LOG.trace("namespace filter for class {}: {}", clazz, filter); final XMLReader xmlReader = XMLReaderFactory.createXMLReader(); xmlReader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); filter.setParent(xmlReader); return filter; }
From source file:org.xwiki.portlet.view.HTMLStreamFilter.java
/** * {@inheritDoc}/*from ww w .ja v a 2 s . c om*/ * * @see StreamFilter#filter(Reader, Writer) */ public void filter(Reader reader, Writer writer) { try { XMLReader xmlReader = XMLReaderFactory.createXMLReader("org.cyberneko.html.parsers.SAXParser"); xmlReader.setFeature("http://cyberneko.org/html/features/balance-tags/document-fragment", true); xmlReader.setProperty("http://cyberneko.org/html/properties/names/elems", "match"); xmlReader.setProperty("http://cyberneko.org/html/properties/names/attrs", "no-change"); XMLReader parent = xmlReader; for (XMLFilter filter : filters) { filter.setParent(parent); parent = filter; } XHTMLWriter xhtmlWriter = new XHTMLWriter(writer); xhtmlWriter.setParent(parent); xhtmlWriter.parse(new InputSource(reader)); } catch (Exception e) { LOG.error("Failed to rewrite servlet HTML.", e); } }