List of usage examples for javax.xml.transform OutputKeys METHOD
String METHOD
To view the source code for javax.xml.transform OutputKeys METHOD.
Click Source Link
From source file:org.apache.solr.handler.dataimport.CustomTikaEntityProcessor.java
private static ContentHandler getXmlContentHandler(Writer writer) throws TransformerConfigurationException { SAXTransformerFactory factory = (SAXTransformerFactory) TransformerFactory.newInstance(); TransformerHandler handler = factory.newTransformerHandler(); handler.getTransformer().setOutputProperty(OutputKeys.METHOD, "xml"); handler.setResult(new StreamResult(writer)); return handler; }
From source file:org.apache.solr.handler.dataimport.TikaEntityProcessor.java
private static ContentHandler getHtmlHandler(Writer writer) throws TransformerConfigurationException { SAXTransformerFactory factory = (SAXTransformerFactory) TransformerFactory.newInstance(); TransformerHandler handler = factory.newTransformerHandler(); handler.getTransformer().setOutputProperty(OutputKeys.METHOD, "html"); handler.setResult(new StreamResult(writer)); return new ContentHandlerDecorator(handler) { @Override// w ww .j av a2 s . c o m public void startElement(String uri, String localName, String name, Attributes atts) throws SAXException { if (XHTMLContentHandler.XHTML.equals(uri)) { uri = null; } if (!"head".equals(localName)) { super.startElement(uri, localName, name, atts); } } @Override public void endElement(String uri, String localName, String name) throws SAXException { if (XHTMLContentHandler.XHTML.equals(uri)) { uri = null; } if (!"head".equals(localName)) { super.endElement(uri, localName, name); } } @Override public void startPrefixMapping(String prefix, String uri) { /*no op*/ } @Override public void endPrefixMapping(String prefix) { /*no op*/ } }; }
From source file:org.apache.synapse.mediators.transform.XSLTMediator.java
/** * Perform actual XSLT transformation//from ww w .java 2s . c o m * @param synCtx current message * @param synLog the logger to be used */ private void performXSLT(MessageContext synCtx, SynapseLog synLog) { OMNode sourceNode = source.selectOMNode(synCtx, synLog); boolean isSoapEnvelope = (sourceNode == synCtx.getEnvelope()); boolean isSoapBody = (sourceNode == synCtx.getEnvelope().getBody()); boolean isSoapHeader = (sourceNode == synCtx.getEnvelope().getHeader()); // Derive actual key from message context String generatedXsltKey = xsltKey.evaluateValue(synCtx); // get templates from generatedXsltKey Templates cachedTemplates = null; if (synLog.isTraceTraceEnabled()) { synLog.traceTrace("Transformation source : " + sourceNode.toString()); } // determine if it is needed to create or create the template if (isCreationOrRecreationRequired(synCtx)) { // many threads can see this and come here for acquiring the lock synchronized (transformerLock) { // only first thread should create the template if (isCreationOrRecreationRequired(synCtx)) { cachedTemplates = createTemplate(synCtx, synLog, generatedXsltKey); } else { cachedTemplates = cachedTemplatesMap.get(generatedXsltKey); } } } else { //If already cached template then load it from cachedTemplatesMap synchronized (transformerLock) { cachedTemplates = cachedTemplatesMap.get(generatedXsltKey); } } try { // perform transformation Transformer transformer = null; try { transformer = cachedTemplates.newTransformer(); } catch (NullPointerException ex) { handleException("Unable to create Transformer using cached template", ex, synCtx); } if (!properties.isEmpty()) { // set the parameters which will pass to the Transformation applyProperties(transformer, synCtx, synLog); } transformer.setErrorListener(new ErrorListenerImpl(synLog, XSLT_TRANSFORMATION_ACTIVITY)); String outputMethod = transformer.getOutputProperty(OutputKeys.METHOD); String encoding = transformer.getOutputProperty(OutputKeys.ENCODING); if (synLog.isTraceOrDebugEnabled()) { synLog.traceOrDebug("output method: " + outputMethod + "; encoding: " + encoding); } ResultBuilderFactory.Output output; if ("text".equals(outputMethod)) { synLog.traceOrDebug("Processing non SOAP/XML (text) transformation result"); output = ResultBuilderFactory.Output.TEXT; } else if (isSoapEnvelope) { output = ResultBuilderFactory.Output.SOAP_ENVELOPE; } else { output = ResultBuilderFactory.Output.ELEMENT; } SynapseEnvironment synEnv = synCtx.getEnvironment(); ResultBuilder resultBuilder = resultBuilderFactory.createResultBuilder(synEnv, output); SourceBuilder sourceBuilder = sourceBuilderFactory.createSourceBuilder(synEnv); if (synLog.isTraceOrDebugEnabled()) { synLog.traceOrDebug("Using " + sourceBuilder.getClass().getName()); synLog.traceOrDebug("Using " + resultBuilder.getClass().getName()); } try { transformer.transform(sourceBuilder.getSource((OMElement) sourceNode), resultBuilder.getResult()); } finally { sourceBuilder.release(); } synLog.traceOrDebug("Transformation completed - processing result"); /** * If user have set transform.xslt.result.disableBuild property to true, we do not build the message to * OMElement, */ if (targetPropertyName != null && resultBuilder instanceof StreamResultBuilder && synCtx.getProperty(TRANSFORM_XSLT_RESULT_DISABLE_BUILD) != null && synCtx.getProperty(TRANSFORM_XSLT_RESULT_DISABLE_BUILD) instanceof String && "true".equalsIgnoreCase((String) synCtx.getProperty(TRANSFORM_XSLT_RESULT_DISABLE_BUILD))) { // add result XML string as a message context property to the message if (synLog.isTraceOrDebugEnabled()) { synLog.traceOrDebug("Adding result string as message context property : " + targetPropertyName); } synCtx.setProperty(targetPropertyName, ((StreamResultBuilder) resultBuilder).getResultAsString()); return; } // get the result OMElement OMElement result = null; try { result = resultBuilder.getNode(encoding == null ? null : Charset.forName(encoding)); } catch (Exception e) { throw new SynapseException("Unable to create an OMElement using XSLT result ", e); } if (synLog.isTraceTraceEnabled()) { synLog.traceTrace("Transformation result : " + result.toString()); } if (targetPropertyName != null) { // add result XML as a message context property to the message if (synLog.isTraceOrDebugEnabled()) { synLog.traceOrDebug("Adding result as message context property : " + targetPropertyName); } synCtx.setProperty(targetPropertyName, result); } else { if (synLog.isTraceOrDebugEnabled()) { synLog.traceOrDebug( "Replace " + (isSoapEnvelope ? "SOAP envelope" : isSoapBody ? "SOAP body" : "node") + " with result"); } if (isSoapEnvelope) { try { synCtx.setEnvelope((SOAPEnvelope) result); } catch (AxisFault ex) { handleException("Unable to replace SOAP envelope with result", ex, synCtx); } } else if (isSoapBody) { for (Iterator itr = synCtx.getEnvelope().getBody().getChildElements(); itr.hasNext();) { OMElement child = (OMElement) itr.next(); child.detach(); } for (Iterator itr = result.getChildElements(); itr.hasNext();) { OMElement child = (OMElement) itr.next(); synCtx.getEnvelope().getBody().addChild(child); } } else if (isSoapHeader) { for (Iterator itr = synCtx.getEnvelope().getHeader().getChildElements(); itr.hasNext();) { OMElement child = (OMElement) itr.next(); child.detach(); } for (Iterator itr = result.getChildElements(); itr.hasNext();) { OMElement child = (OMElement) itr.next(); synCtx.getEnvelope().getHeader().addChild(child); } } else { sourceNode.insertSiblingAfter(result); sourceNode.detach(); } } } catch (TransformerException e) { handleException("Error performing XSLT transformation using : " + xsltKey, e, synCtx); } }
From source file:org.apache.syncope.installer.utilities.FileSystemUtils.java
public static void writeXML(final Document doc, final OutputStream out) throws IOException, TransformerException { final TransformerFactory factory = TransformerFactory.newInstance(); factory.setFeature(javax.xml.XMLConstants.FEATURE_SECURE_PROCESSING, true); final Transformer transformer = factory.newTransformer(); transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no"); transformer.setOutputProperty(OutputKeys.METHOD, "xml"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); transformer.transform(new DOMSource(doc), new StreamResult(new OutputStreamWriter(out, Charset.forName("UTF-8")))); out.close();/*from w w w.ja va 2 s . c o m*/ }
From source file:org.apache.tika.gui.TikaGUI.java
/** * Creates and returns a content handler that turns XHTML input to * simplified HTML output that can be correctly parsed and displayed * by {@link JEditorPane}./*ww w . j a va 2 s. c o m*/ * <p> * The returned content handler is set to output <code>html</code> * to the given writer. The XHTML namespace is removed from the output * to prevent the serializer from using the <tag/> empty element * syntax that causes extra ">" characters to be displayed. * The <head> tags are dropped to prevent the serializer from * generating a <META> content type tag that makes * {@link JEditorPane} fail thinking that the document character set * is inconsistent. * <p> * Additionally, it will use ImageSavingParser to re-write embedded:(image) * image links to be file:///(temporary file) so that they can be loaded. * * @param writer output writer * @return HTML content handler * @throws TransformerConfigurationException if an error occurs */ private ContentHandler getHtmlHandler(Writer writer) throws TransformerConfigurationException { SAXTransformerFactory factory = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); TransformerHandler handler = factory.newTransformerHandler(); handler.getTransformer().setOutputProperty(OutputKeys.METHOD, "html"); handler.setResult(new StreamResult(writer)); return new ContentHandlerDecorator(handler) { @Override public void startElement(String uri, String localName, String name, Attributes atts) throws SAXException { if (XHTMLContentHandler.XHTML.equals(uri)) { uri = null; } if (!"head".equals(localName)) { if ("img".equals(localName)) { AttributesImpl newAttrs; if (atts instanceof AttributesImpl) { newAttrs = (AttributesImpl) atts; } else { newAttrs = new AttributesImpl(atts); } for (int i = 0; i < newAttrs.getLength(); i++) { if ("src".equals(newAttrs.getLocalName(i))) { String src = newAttrs.getValue(i); if (src.startsWith("embedded:")) { String filename = src.substring(src.indexOf(':') + 1); try { File img = imageParser.requestSave(filename); String newSrc = img.toURI().toString(); newAttrs.setValue(i, newSrc); } catch (IOException e) { System.err.println("Error creating temp image file " + filename); // The html viewer will show a broken image too to alert them } } } } super.startElement(uri, localName, name, newAttrs); } else { super.startElement(uri, localName, name, atts); } } } @Override public void endElement(String uri, String localName, String name) throws SAXException { if (XHTMLContentHandler.XHTML.equals(uri)) { uri = null; } if (!"head".equals(localName)) { super.endElement(uri, localName, name); } } @Override public void startPrefixMapping(String prefix, String uri) { } @Override public void endPrefixMapping(String prefix) { } }; }
From source file:org.apache.tika.gui.TikaGUI.java
private ContentHandler getXmlContentHandler(Writer writer) throws TransformerConfigurationException { SAXTransformerFactory factory = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); TransformerHandler handler = factory.newTransformerHandler(); handler.getTransformer().setOutputProperty(OutputKeys.METHOD, "xml"); handler.setResult(new StreamResult(writer)); return handler; }
From source file:org.apache.tika.server.resource.TikaResource.java
private StreamingOutput produceOutput(final InputStream is, final MultivaluedMap<String, String> httpHeaders, final UriInfo info, final String format) { final Parser parser = createParser(); final Metadata metadata = new Metadata(); final ParseContext context = new ParseContext(); fillMetadata(parser, metadata, context, httpHeaders); fillParseContext(context, httpHeaders, parser); logRequest(LOG, info, metadata);//from ww w . j a v a2 s. c om return new StreamingOutput() { public void write(OutputStream outputStream) throws IOException, WebApplicationException { Writer writer = new OutputStreamWriter(outputStream, UTF_8); ContentHandler content; try { SAXTransformerFactory factory = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); TransformerHandler handler = factory.newTransformerHandler(); handler.getTransformer().setOutputProperty(OutputKeys.METHOD, format); handler.getTransformer().setOutputProperty(OutputKeys.INDENT, "yes"); handler.getTransformer().setOutputProperty(OutputKeys.ENCODING, UTF_8.name()); handler.setResult(new StreamResult(writer)); content = new ExpandedTitleContentHandler(handler); } catch (TransformerConfigurationException e) { throw new WebApplicationException(e); } parse(parser, LOG, info.getPath(), is, content, metadata, context); } }; }
From source file:org.broadleafcommerce.common.extensibility.context.merge.ImportProcessor.java
public ResourceInputStream[] extract(ResourceInputStream[] sources) throws MergeException { if (sources == null) { return null; }//from w w w .ja v a 2 s. c om try { DynamicResourceIterator resourceList = new DynamicResourceIterator(); resourceList.addAll(Arrays.asList(sources)); while (resourceList.hasNext()) { ResourceInputStream myStream = resourceList.nextResource(); Document doc = builder.parse(myStream); NodeList nodeList = (NodeList) xPath.evaluate(IMPORT_PATH, doc, XPathConstants.NODESET); int length = nodeList.getLength(); for (int j = 0; j < length; j++) { Element element = (Element) nodeList.item(j); Resource resource = loader.getResource(element.getAttribute("resource")); ResourceInputStream ris = new ResourceInputStream(resource.getInputStream(), resource.getURL().toString()); resourceList.addEmbeddedResource(ris); element.getParentNode().removeChild(element); } if (length > 0) { TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer xmlTransformer = tFactory.newTransformer(); xmlTransformer.setOutputProperty(OutputKeys.VERSION, "1.0"); xmlTransformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); xmlTransformer.setOutputProperty(OutputKeys.METHOD, "xml"); xmlTransformer.setOutputProperty(OutputKeys.INDENT, "yes"); DOMSource source = new DOMSource(doc); ByteArrayOutputStream baos = new ByteArrayOutputStream(); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(baos)); StreamResult result = new StreamResult(writer); xmlTransformer.transform(source, result); byte[] itemArray = baos.toByteArray(); resourceList.set(resourceList.getPosition() - 1, new ResourceInputStream( new ByteArrayInputStream(itemArray), null, myStream.getNames())); } else { myStream.reset(); } } return resourceList.toArray(new ResourceInputStream[resourceList.size()]); } catch (Exception e) { throw new MergeException(e); } }
From source file:org.broadleafcommerce.common.extensibility.context.merge.MergeManager.java
/** * Merge 2 xml document streams together into a final resulting stream. During * the merge, various merge business rules are followed based on configuration * defined for various merge points./* w ww . j av a2 s.c om*/ * * @param stream1 * @param stream2 * @return the stream representing the merged document * @throws org.broadleafcommerce.common.extensibility.context.merge.exceptions.MergeException */ public ResourceInputStream merge(ResourceInputStream stream1, ResourceInputStream stream2) throws MergeException { try { Document doc1 = builder.parse(stream1); Document doc2 = builder.parse(stream2); List<Node> exhaustedNodes = new ArrayList<Node>(); //process any defined handlers for (MergeHandler handler : this.handlers) { if (LOG.isDebugEnabled()) { LOG.debug("Processing handler: " + handler.getXPath()); } MergePoint point = new MergePoint(handler, doc1, doc2); Node[] list = point.merge(exhaustedNodes); if (list != null) { Collections.addAll(exhaustedNodes, list); } } TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer xmlTransformer = tFactory.newTransformer(); xmlTransformer.setOutputProperty(OutputKeys.VERSION, "1.0"); xmlTransformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); xmlTransformer.setOutputProperty(OutputKeys.METHOD, "xml"); xmlTransformer.setOutputProperty(OutputKeys.INDENT, "yes"); DOMSource source = new DOMSource(doc1); ByteArrayOutputStream baos = new ByteArrayOutputStream(); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(baos, "UTF-8")); StreamResult result = new StreamResult(writer); xmlTransformer.transform(source, result); byte[] itemArray = baos.toByteArray(); return new ResourceInputStream(new ByteArrayInputStream(itemArray), stream2.getName(), stream1.getNames()); } catch (Exception e) { throw new MergeException(e); } }
From source file:org.chiba.xml.xforms.ChibaBean.java
public void writeExternal(ObjectOutput objectOutput) throws IOException { DefaultSerializer serializer = new DefaultSerializer(this); Document serializedForm = serializer.serialize(); StringWriter stringWriter = new StringWriter(); Transformer transformer = null; StreamResult result = new StreamResult(stringWriter); try {/*from w w w.j a v a2s . c om*/ transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.METHOD, "xml"); transformer.transform(new DOMSource(serializedForm), result); } catch (TransformerConfigurationException e) { throw new IOException("TransformerConfiguration invalid: " + e.getMessage()); } catch (TransformerException e) { throw new IOException("Error during serialization transform: " + e.getMessage()); } objectOutput.writeUTF(stringWriter.getBuffer().toString()); objectOutput.flush(); objectOutput.close(); }