List of usage examples for javax.xml.transform Transformer setParameter
public abstract void setParameter(String name, Object value);
From source file:org.codehaus.enunciate.modules.docs.DocumentationDeploymentModule.java
protected void doXSLT(URL xsltURL) throws IOException, EnunciateException { debug("Using stylesheet %s", xsltURL); StreamSource source = new StreamSource(xsltURL.openStream()); try {/*from w ww .j a v a2 s . c om*/ Transformer transformer = SAXTransformerFactory.newInstance().newTransformer(source); transformer.setURIResolver(new URIResolver() { public Source resolve(String href, String base) throws TransformerException { return new StreamSource(new File(getGenerateDir(), href)); } }); transformer.setParameter("downloads-exists", new File(getGenerateDir(), "downloads.xml").exists()); debug("Extra downloads exist: %b", transformer.getParameter("downloads-exists")); File docsXml = new File(getGenerateDir(), "docs.xml"); File buildDir = getDocsBuildDir(); buildDir.mkdirs(); transformer.setParameter("output-dir", buildDir.getAbsolutePath() + File.separator); transformer.setParameter("api-relative-path", getRelativePathToRootDir()); transformer.setParameter("index-page-name", getIndexPageName()); transformer.setParameter("disable-rest-mountpoint", isDisableRestMountpoint()); transformer.setParameter("group-rest-resources", getGroupRestResources()); File indexPage = new File(buildDir, getIndexPageName()); debug("Transforming %s to %s.", docsXml, indexPage); transformer.transform(new StreamSource(docsXml), new StreamResult(indexPage)); } catch (TransformerException e) { throw new EnunciateException("Error during transformation of the documentation (stylesheet " + xsltURL + ", document " + new File(getGenerateDir(), "docs.xml") + ")", e); } }
From source file:org.cruk.mga.CreateReport.java
/** * Writes the alignment summary report./*from ww w . ja va 2 s . co m*/ * * @param multiGenomeAlignmentSummaries * @param runProperties * @param out * @param imageFilename * @param xmlFilename * @param htmlFilename * @throws IOException * @throws TransformerException */ private void writeReport(Collection<MultiGenomeAlignmentSummary> multiGenomeAlignmentSummaries, OrderedProperties runProperties, PrintStream out, String imageFilename, String xmlFilename, String htmlFilename) throws IOException, TransformerException { Element root = new Element("MultiGenomeAlignmentSummaries"); addElement(root, "RunId", runId); addProperties(root, runProperties); if (trimStart != null) addElement(root, "TrimStart", trimStart); if (trimLength != null) addElement(root, "TrimLength", trimLength); Set<String> referenceGenomeIds = new HashSet<String>(); for (MultiGenomeAlignmentSummary multiGenomeAlignmentSummary : multiGenomeAlignmentSummaries) { Element multiGenomeAlignmentSummaryElement = new Element("MultiGenomeAlignmentSummary"); root.appendChild(multiGenomeAlignmentSummaryElement); String datasetId = multiGenomeAlignmentSummary.getDatasetId(); String datasetDisplayLabel = datasetDisplayLabels.get(datasetId); addElement(multiGenomeAlignmentSummaryElement, "DatasetId", datasetDisplayLabel); addElement(multiGenomeAlignmentSummaryElement, "SequenceCount", Long.toString(multiGenomeAlignmentSummary.getSequenceCount())); addElement(multiGenomeAlignmentSummaryElement, "SampledCount", multiGenomeAlignmentSummary.getSampledCount()); addElement(multiGenomeAlignmentSummaryElement, "AdapterCount", multiGenomeAlignmentSummary.getAdapterCount()); addElement(multiGenomeAlignmentSummaryElement, "UnmappedCount", multiGenomeAlignmentSummary.getUnmappedCount()); Element alignmentSummariesElement = new Element("AlignmentSummaries"); multiGenomeAlignmentSummaryElement.appendChild(alignmentSummariesElement); for (AlignmentSummary alignmentSummary : multiGenomeAlignmentSummary.getAlignmentSummaries()) { Element alignmentSummaryElement = new Element("AlignmentSummary"); alignmentSummariesElement.appendChild(alignmentSummaryElement); String referenceGenomeId = alignmentSummary.getReferenceGenomeId(); referenceGenomeIds.add(referenceGenomeId); Element referenceGenomeElement = new Element("ReferenceGenome"); alignmentSummaryElement.appendChild(referenceGenomeElement); referenceGenomeElement.addAttribute(new Attribute("id", referenceGenomeId)); referenceGenomeElement .addAttribute(new Attribute("name", getReferenceGenomeName(referenceGenomeId))); addElement(alignmentSummaryElement, "AlignedCount", alignmentSummary.getAlignedCount()); addElement(alignmentSummaryElement, "ErrorRate", String.format("%.5f", alignmentSummary.getErrorRate())); addElement(alignmentSummaryElement, "UniquelyAlignedCount", alignmentSummary.getUniquelyAlignedCount()); addElement(alignmentSummaryElement, "UniquelyAlignedErrorRate", String.format("%.5f", alignmentSummary.getUniquelyAlignedErrorRate())); addElement(alignmentSummaryElement, "PreferentiallyAlignedCount", alignmentSummary.getPreferentiallyAlignedCount()); addElement(alignmentSummaryElement, "PreferentiallyAlignedErrorRate", String.format("%.5f", alignmentSummary.getPreferentiallyAlignedErrorRate())); addElement(alignmentSummaryElement, "AssignedCount", alignmentSummary.getAssignedCount()); addElement(alignmentSummaryElement, "AssignedErrorRate", String.format("%.5f", alignmentSummary.getAssignedErrorRate())); } Element samplesElement = new Element("Samples"); multiGenomeAlignmentSummaryElement.appendChild(samplesElement); for (OrderedProperties sampleProperties : multiGenomeAlignmentSummary.getSampleProperties()) { Element sampleElement = new Element("Sample"); samplesElement.appendChild(sampleElement); addProperties(sampleElement, sampleProperties); } } Element referenceGenomesElement = new Element("ReferenceGenomes"); root.appendChild(referenceGenomesElement); for (String referenceGenomeId : referenceGenomeIds) { Element referenceGenomeElement = new Element("ReferenceGenome"); referenceGenomesElement.appendChild(referenceGenomeElement); referenceGenomeElement.addAttribute(new Attribute("id", referenceGenomeId)); referenceGenomeElement.addAttribute(new Attribute("name", getReferenceGenomeName(referenceGenomeId))); } Document document = new Document(root); Serializer serializer = new Serializer(out, "ISO-8859-1"); serializer.setIndent(2); serializer.setLineSeparator("\n"); serializer.write(document); out.close(); if (xslStyleSheetFilename != null) { File imageFile = new File(imageFilename); FileInputStream imageInputStream = new FileInputStream(imageFile); byte imageByteArray[] = new byte[(int) imageFile.length()]; imageInputStream.read(imageByteArray); imageInputStream.close(); String imageBase64String = Base64.encodeBase64String(imageByteArray); TransformerFactory factory = TransformerFactory.newInstance(); Source xslt = new StreamSource(new File(xslStyleSheetFilename)); Transformer transformer = factory.newTransformer(xslt); transformer.setParameter("image", imageBase64String); Source xmlSource = new StreamSource(new File(xmlFilename)); transformer.transform(xmlSource, new StreamResult(new File(htmlFilename))); } }
From source file:org.cruxframework.crux.tools.schema.DefaultSchemaGenerator.java
@Override public void generateDocumentation() throws SchemaGeneratorException { try {//from ww w . jav a 2s .c om TransformerFactory factory = TransformerFactory.newInstance(); StreamSource xslStream = new StreamSource(getClass().getResourceAsStream("/META-INF/xs3p.xsl")); Transformer transformer = factory.newTransformer(xslStream); for (File file : destDir.listFiles()) { String fileName = file.getName(); logger.info("Generating Documentation for library [" + fileName + "]."); if (fileName.endsWith("xsd")) { transformer.setParameter("title", schemaMessages .documentationTitle(fileName.substring(0, fileName.length() - 4).toUpperCase())); if (fileName.endsWith("core.xsd") || fileName.endsWith("module.xsd") || fileName.endsWith("offline.xsd") || fileName.endsWith("template.xsd") || fileName.endsWith("view.xsd") || fileName.endsWith("xdevice.xsd") || fileName.endsWith(XHTML_XSD)) { transformer.setParameter("globalDeclarationsTitle", schemaMessages.globalDeclarationsTitle()); } else { transformer.setParameter("globalDeclarationsTitle", schemaMessages.globalDeclarationsWidgetsTitle()); } transformer.setParameter("printLegend", false); transformer.setParameter("printGlossary", false); StreamSource in = new StreamSource(new FileInputStream(file)); StreamResult out = new StreamResult(new File(destDir, file.getName() + ".html")); transformer.transform(in, out); } } logger.info("All documentation generated."); } catch (Exception e) { throw new SchemaGeneratorException("Error generation HTML documentation for XSD files", e); } }
From source file:org.dcm4che.tool.hl7rcv.HL7Rcv.java
private byte[] xslt(HL7Segment msh, byte[] msg, int off, int len) throws Exception { String charsetName = HL7Charset.toCharsetName(msh.getField(17, charset)); ByteArrayOutputStream out = new ByteArrayOutputStream(); TransformerHandler th = factory.newTransformerHandler(tpls); Transformer t = th.getTransformer(); t.setParameter("MessageControlID", HL7Segment.nextMessageControlID()); t.setParameter("DateTimeOfMessage", HL7Segment.timeStamp(new Date())); if (xsltParams != null) for (int i = 1; i < xsltParams.length; i++, i++) t.setParameter(xsltParams[i - 1], xsltParams[i]); th.setResult(new SAXResult(new HL7ContentHandler(new OutputStreamWriter(out, charsetName)))); new HL7Parser(th).parse(new InputStreamReader(new ByteArrayInputStream(msg, off, len), charsetName)); return out.toByteArray(); }
From source file:org.dd4t.core.util.XSLTransformer.java
public String transformSourceFromFilesource(String source, String resource, Map<String, Object> params) throws TransformerException { // attain writer to place result in CharArrayWriter caw = new CharArrayWriter(); StreamResult result = new StreamResult(caw); // get XSL transformer Transformer trans = getTransformer(resource); for (Map.Entry<String, Object> entry : params.entrySet()) { trans.setParameter(entry.getKey(), entry.getValue()); }//from ww w . j a v a 2s . c o m // if found, transform if (trans != null) { StringReader reader = new StringReader(source); StreamSource xmlSource = new StreamSource(reader); // transform trans.transform(xmlSource, result); } return caw.toString(); }
From source file:org.dita2indesign.cmdline.Docx2Xml.java
/** * @param docxFile/* w w w . ja v a2 s.com*/ * @param resultFile * @param options * @throws Exception */ private void generateXml(File docxFile, File resultFile, Options options) throws Exception { File tempDir = getTempDir(true); // log.debug("Unzipping docxfile to \"" + tempDir.getAbsolutePath() + "\"..."); unzip(docxFile, tempDir); File documentXml = new File(new File(tempDir, "word"), "document.xml"); if (!documentXml.exists()) { throw new RuntimeException("Failed to find document.xml within DOCX package. This should not happen."); } URL xsltUrl = new URL(options.getXslt()); // log.debug("xsltUrl=" + xsltUrl.toExternalForm()); TransformerFactory factory = new net.sf.saxon.TransformerFactoryImpl(); // TransformerFactory.newInstance(); Source style = new StreamSource(xsltUrl.openStream()); style.setSystemId(xsltUrl.toExternalForm()); Transformer trans = factory.newTransformer(style); trans.setParameter("styleMapUri", options.getStyleMapUri()); // log.debug("Got a transformer.:"); Source xmlSource = new StreamSource(new FileInputStream(documentXml)); xmlSource.setSystemId(documentXml.getAbsolutePath()); // log.debug("xmlSource.systemId=\"" + xmlSource.getSystemId() + "\""); Result result = new StreamResult(new FileOutputStream(resultFile)); log.debug("Calling transform()..."); trans.transform(xmlSource, result); log.debug("Transformation complete."); FileUtils.deleteDirectory(tempDir); }
From source file:org.dita2indesign.idml2dita.Idml2Dita.java
/** * @param idmlFile//from w ww. j a va 2 s . co m * @param resultFile * @param options * @throws Exception */ private void generateDita(File idmlFile, File resultFile, Options options) throws Exception { File tempDir = getTempDir(true); // log.debug("Unzipping IDML file to \"" + tempDir.getAbsolutePath() + "\"..."); unzip(idmlFile, tempDir); File documentXml = new File(tempDir, "designmap.xml"); if (!documentXml.exists()) { throw new RuntimeException("Failed to find document.xml within DOCX package. This should not happen."); } URL xsltUrl = new URL(options.getXslt()); // log.debug("xsltUrl=" + xsltUrl.toExternalForm()); TransformerFactory factory = new net.sf.saxon.TransformerFactoryImpl(); // TransformerFactory.newInstance(); Source style = new StreamSource(xsltUrl.openStream()); style.setSystemId(xsltUrl.toExternalForm()); Transformer trans = factory.newTransformer(style); trans.setParameter("styleMapUri", options.getStyleMapUri()); // log.debug("Got a transformer.:"); Source xmlSource = new StreamSource(new FileInputStream(documentXml)); xmlSource.setSystemId(documentXml.getAbsolutePath()); // log.debug("xmlSource.systemId=\"" + xmlSource.getSystemId() + "\""); Result result = new StreamResult(new FileOutputStream(resultFile)); log.debug("Calling transform()..."); trans.transform(xmlSource, result); log.debug("Transformation complete."); FileUtils.deleteDirectory(tempDir); }
From source file:org.docx4j.convert.out.pdf.viaXSLFO.FopResultUtils.java
protected static void setupParameters(Transformer transformer, Map<String, Object> parameters) { if ((parameters != null) && (!parameters.isEmpty())) { for (Map.Entry<String, Object> item : parameters.entrySet()) { if (item.getKey() != null) { transformer.setParameter(item.getKey(), item.getValue()); }//from www . ja va 2 s . c o m } } }
From source file:org.docx4j.XmlUtils.java
/** * //from w w w . j a va2 s .co m * Transform an input document using XSLT * * @param doc * @param xslt * @param transformParameters * @param result * @throws Docx4JException In case serious transformation errors occur */ public static void transform(javax.xml.transform.Source source, javax.xml.transform.Templates template, Map<String, Object> transformParameters, javax.xml.transform.Result result) throws Docx4JException { if (source == null) { Throwable t = new Throwable(); throw new Docx4JException("Null Source doc", t); } // Use the template to create a transformer // A Transformer may not be used in multiple threads running concurrently. // Different Transformers may be used concurrently by different threads. // A Transformer may be used multiple times. Parameters and output properties // are preserved across transformations. javax.xml.transform.Transformer xformer; try { xformer = template.newTransformer(); } catch (TransformerConfigurationException e) { throw new Docx4JException("The Transformer is ill-configured", e); } log.info("Using " + xformer.getClass().getName()); if (xformer.getClass().getName().equals("org.apache.xalan.transformer.TransformerImpl")) { if (Docx4jProperties.getProperty("docx4j.xalan.XALANJ-2419.workaround", false)) { // Use our patched serializer, which fixes Unicode astral character // issue. See https://issues.apache.org/jira/browse/XALANJ-2419 log.info("Working around https://issues.apache.org/jira/browse/XALANJ-2419"); Properties p = xformer.getOutputProperties(); String method = p.getProperty("method"); System.out.println("method: " + method); if (method == null || method.equals("xml")) { ((org.apache.xalan.transformer.TransformerImpl) xformer).setOutputProperty( S_KEY_CONTENT_HANDLER, "org.docx4j.org.apache.xml.serializer.ToXMLStream"); } else if (method.equals("html")) { ((org.apache.xalan.transformer.TransformerImpl) xformer).setOutputProperty( S_KEY_CONTENT_HANDLER, "org.docx4j.org.apache.xml.serializer.ToHTMLStream"); } else if (method.equals("text")) { ((org.apache.xalan.transformer.TransformerImpl) xformer).setOutputProperty( S_KEY_CONTENT_HANDLER, "org.docx4j.org.apache.xml.serializer.ToTextStream"); } else { log.warn("fallback for method: " + method); ((org.apache.xalan.transformer.TransformerImpl) xformer).setOutputProperty( S_KEY_CONTENT_HANDLER, "org.docx4j.org.apache.xml.serializer.ToUnknownStream"); } /* That wasn't quite enough: * at org.docx4j.org.apache.xml.serializer.ToXMLStream.startDocumentInternal(ToXMLStream.java:143) at org.docx4j.org.apache.xml.serializer.SerializerBase.startDocument(SerializerBase.java:1190) at org.apache.xml.serializer.ToSAXHandler.startDocumentInternal(ToSAXHandler.java:97) at org.apache.xml.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:273) at org.apache.xml.serializer.ToXMLSAXHandler.startPrefixMapping(ToXMLSAXHandler.java:350) at org.apache.xml.serializer.ToXMLSAXHandler.startPrefixMapping(ToXMLSAXHandler.java:320) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1317) * * (TransformerImpl's createSerializationHandler makes a new org.apache.xml.serializer.ToXMLSAXHandler.ToXMLSAXHandler * and that's hard coded.) * * But it seems to be enough now... */ } } else { log.error("Detected " + xformer.getClass().getName() + ", but require org.apache.xalan.transformer.TransformerImpl. " + "Ensure Xalan 2.7.x is on your classpath!"); } LoggingErrorListener errorListener = new LoggingErrorListener(false); xformer.setErrorListener(errorListener); if (transformParameters != null) { Iterator parameterIterator = transformParameters.entrySet().iterator(); while (parameterIterator.hasNext()) { Map.Entry pairs = (Map.Entry) parameterIterator.next(); if (pairs.getKey() == null) { log.info("Skipped null key"); // pairs = (Map.Entry)parameterIterator.next(); continue; } if (pairs.getKey().equals("customXsltTemplates")) continue; if (pairs.getValue() == null) { log.warn("parameter '" + pairs.getKey() + "' was null."); } else { xformer.setParameter((String) pairs.getKey(), pairs.getValue()); } } } /* SUPER DEBUGGING // http://xml.apache.org/xalan-j/usagepatterns.html#debugging // debugging // Set up a PrintTraceListener object to print to a file. java.io.FileWriter fw = new java.io.FileWriter("/tmp/xslt-events" + xsltCount++ + ".log"); java.io.PrintWriter pw = new java.io.PrintWriter(fw); PrintTraceListener ptl = new PrintTraceListener(pw); // Print information as each node is 'executed' in the stylesheet. ptl.m_traceElements = true; // Print information after each result-tree generation event. ptl.m_traceGeneration = true; // Print information after each selection event. ptl.m_traceSelection = true; // Print information whenever a template is invoked. ptl.m_traceTemplates = true; // Print information whenever an extension is called. ptl.m_traceExtension = true; TransformerImpl transformerImpl = (TransformerImpl)xformer; // Register the TraceListener with the TraceManager associated // with the TransformerImpl. TraceManager trMgr = transformerImpl.getTraceManager(); trMgr.addTraceListener(ptl); */ // DEBUGGING // use the identity transform if you want to send wordDocument; // otherwise you'll get the XHTML // javax.xml.transform.Transformer xformer = tfactory.newTransformer(); try { xformer.transform(source, result); } catch (TransformerException e) { throw new Docx4JException("Cannot perform the transformation", e); } finally { //pw.flush(); } }
From source file:org.eclipse.smila.search.servlet.SMILASearchServlet.java
/** * transform DOM documment using stylesheet. * * @param doc/*from w ww . ja va 2s. c o m*/ * DOM search result document * @param stylesheet * stylesheet name (without .xsl suffix) * @return HTML result * @throws ServletException * error during transformation */ protected byte[] transform(final Document doc, final String stylesheet) throws ServletException { final DOMSource xmlDomSource = new DOMSource(doc); // sw recieves the transformation's result. final ByteArrayOutputStream baos = new ByteArrayOutputStream(); final StreamResult stream = new StreamResult(baos); // transform via StreamResult into the StringWriter InputStream is = null; try { is = ConfigUtils.getConfigStream(Activator.BUNDLE_NAME, stylesheet + ".xsl"); final Document xslDoc = XMLUtils.parse(is, false); final Transformer transformer = getXSLTransformer(xslDoc); transformer.setParameter("stylesheet", stylesheet); transformer.transform(xmlDomSource, stream); } catch (final XMLUtilsException xue) { throw new ServletException("the stylesheet is not valid [" + stylesheet + ".xsl]", xue); } catch (final TransformerException te) { throw new ServletException("Error ocured while transforming!", te); } finally { IOUtils.closeQuietly(is); } return baos.toByteArray(); }