Example usage for javax.xml.transform Transformer setParameter

List of usage examples for javax.xml.transform Transformer setParameter

Introduction

In this page you can find the example usage for javax.xml.transform Transformer setParameter.

Prototype

public abstract void setParameter(String name, Object value);

Source Link

Document

Add a parameter for the transformation.

Usage

From source file:org.mule.tools.schemadocs.SchemaDocsMain.java

protected void processSchema(InputStream xslSource, OutputStream out)
        throws TransformerException, IOException, ParserConfigurationException {
    TransformerFactory factory = TransformerFactory.newInstance();
    Templates template = factory.newTemplates(new StreamSource(xslSource));
    Transformer xformer = template.newTransformer();
    Iterator urls = listSchema2().iterator();
    while (urls.hasNext()) {
        URL url = (URL) urls.next();
        String tag = tagFromFileName(url.getFile());
        logger.info(tag + " : " + url);
        xformer.setParameter(TAG, tag);
        Source source = new StreamSource(url.openStream());
        xformer.transform(source, new StreamResult(out));
        //            xformer.transform(source, new StreamResult(System.out));
        out.flush();/*from ww  w . j  a v  a 2 s. c  om*/
    }
}

From source file:org.niord.core.aton.AtonDefaultsService.java

/**
 * Generates the AtoN defaults from the INT-1-preset.xml file
 *///from   w w  w  . j  a v a  2s. com
@Timeout
private void generateDefaults() {
    try {
        long t0 = System.currentTimeMillis();
        Source xsltSource = new StreamSource(getClass().getResourceAsStream("/aton/aton-osm-defaults.xslt"));
        Source xmlSource = new StreamSource(getClass().getResourceAsStream("/aton/INT-1-preset.xml"));

        // Capture the generated xml as a string
        StringWriter xml = new StringWriter();
        Result result = new StreamResult(xml);

        // Execute the xslt
        TransformerFactory transFact = TransformerFactory.newInstance();
        Transformer trans = transFact.newTransformer(xsltSource);
        trans.setParameter("ialaSkipSystem", ialaSystem.other().toString());
        trans.transform(xmlSource, result);

        // Fix spelling mistakes
        String resultXml = xml.toString();
        resultXml = resultXml.replace("topamrk", "topmark").replace("patern", "pattern");

        // Read in the result as OsmDefaults data
        JAXBContext jaxbContext = JAXBContext.newInstance(OsmDefaults.class);
        Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
        osmDefaults = (OsmDefaults) unmarshaller.unmarshal(new StringReader(resultXml));

        // Build look-up tables for fast access
        osmDefaults.getTagValues().stream().forEach(tv -> osmTagValues.put(tv.getId(), tv));
        osmDefaults.getNodeTypes().stream().forEach(nt -> osmNodeTypes.put(nt.getName(), nt));

        log.trace("Created AtoN defaults in " + (System.currentTimeMillis() - t0) + " ms");
    } catch (Exception e) {
        log.error("Failed creating AtoN defaults in " + e, e);
    }
}

From source file:ORG.oclc.os.SRW.SRWDatabase.java

public Transformer addTransformer(String schemaName, String schemaID, String transformerFileName,
        Vector parameterNames, Vector parameterValues)
        throws FileNotFoundException, TransformerConfigurationException {
    if (schemaID != null) {
        schemas.put(schemaName, schemaID);
        schemas.put(schemaID, schemaID);
    }//  www .  ja v a2s  . c  o m
    if (transformerFileName == null) {
        log.info(schemaName + ".transformer not specified");
        log.info(".props filename is " + dbPropertiesFileName);
        return null;
    }
    if (transformerFileName.startsWith("Renderer=")) // old notation, ignore
        return null;
    //        StringTokenizer st=new StringTokenizer(transformerFileName, " \t=");
    //        String token=st.nextToken();
    Source xslSource;
    TransformerFactory tFactory = TransformerFactory.newInstance();
    File f = Utilities.findFile(transformerFileName, dbHome, srwHome);
    xslSource = new StreamSource(Utilities.openInputStream(transformerFileName, dbHome, srwHome));
    if (xslSource == null) {
        log.error("Unable to make StreamSource for: " + transformerFileName);
        log.error(".props filename is " + dbPropertiesFileName);
        return null;
    }
    try {
        xslSource.setSystemId(f.toURI().toURL().toString());
    } catch (MalformedURLException e) {
        log.error("trying to set the xslSource SystemID", e);
    }

    Transformer t = tFactory.newTransformer(xslSource);
    // set any parameters to be passed to the transformer
    if (parameterNames != null)
        for (int i = 0; i < parameterNames.size(); i++)
            t.setParameter((String) parameterNames.get(i), parameterValues.get(i));

    transformers.put(schemaName, t);
    if (schemaID != null)
        transformers.put(schemaID, t);
    log.info("added transformer for schemaName " + schemaName + ", and schemaID " + schemaID);
    return t;
}

From source file:org.ojbc.xslt.EntityResolutionTransformerServiceTest.java

private Document transform(Document inputDocument, Document xsltDocument)
        throws TransformerFactoryConfigurationError, Exception {

    Transformer t = TransformerFactory.newInstance().newTransformer(new DOMSource(xsltDocument));
    t.setParameter("erAttributeParametersFilePath",
            "src/main/resources/xslt/erConfig/example/VehicleSearchAttributeParameters.xml");
    t.setParameter("entityResolutionRecordThreshold", "150");

    DOMResult result = new DOMResult();
    t.transform(new DOMSource(inputDocument), result);
    Document resultDocument = (Document) result.getNode();
    return resultDocument;
}

From source file:org.openedit.entermedia.generators.XsltGenerator.java

/**
 * Run the given page through the stylesheet specified in its config file and output the result
 * to the given output stream.  This generator accepts a configuration which looks like this:
 * <pre>/*from   w w  w  .  j a v  a 2  s.co m*/
 * &lt;generator name="xslt"&gt;
 *   &lt;stylesheet&gt;/path/to/my/stylesheet.xsl&lt;/stylesheet&gt;
 *   [&lt;use-request-parameters&gt;true&lt;/use-request-parameters&gt;]
 *   [&lt;generator&gt;...&lt;/generator&gt;]
 * &lt;/generator&gt;
 * </pre>
 *
 * @see Generator#generate(Page, WebPageContext)
 */
public void generate(WebPageRequest inContext, Page inPage, Output inOut) throws OpenEditException {
    // Put all the request parameters as parameters to the stylesheet, if
    // the user so desired.  In addition, pass "requestURI" and
    // "queryString" parameters, which have the obvious values.
    try {
        String template = inContext.findValue("xsltlayout");
        Transformer transformer = getTransformer(template);

        if (Boolean.parseBoolean(inContext.findValue("xsltaddrequestparameters"))) {
            populateParameters(inContext, transformer);
        }

        StreamResult result = new StreamResult(inOut.getWriter());
        String home = (String) inContext.getPageValue("home");
        transformer.setParameter("home", home);

        if (!inPage.exists()) {
            inPage = getPageManager().getPage(PathUtilities.extractPagePath(inPage.getPath()) + ".xml");
        }
        StreamSource xmlSource = new StreamSource(inPage.getReader());
        transformer.transform(xmlSource, result);
        transformer.clearParameters();
        inOut.getWriter().flush();
    } catch (Exception ex) {
        throw new OpenEditException(ex);
    }
}

From source file:org.openedit.entermedia.generators.XsltGenerator.java

/**
 * @param inContext//from  w  w w .  j a v a  2s  .c o  m
 */
protected void populateParameters(WebPageRequest inContext, Transformer inTrans) throws Exception {
    HttpServletRequest request = inContext.getRequest();
    inTrans.setParameter("requestURI", request.getRequestURI());
    inTrans.setParameter("queryString", request.getQueryString());

    for (Enumeration e = request.getParameterNames(); e.hasMoreElements();) {
        String name = (String) e.nextElement();
        inTrans.setParameter(name, request.getParameter(name));
    }
}

From source file:org.openehealth.ipf.commons.xml.XsltTransmogrifier.java

/**
 * Sets the parameter to the {@link Transformer} object
 * /* w w w  .j  ava  2 s .  c o m*/
 * @param transformer
 * @param param
 */
protected void setXsltParameters(Transformer transformer, Map<String, Object> param) {
    if (param == null) {
        return;
    }
    for (Entry<?, ?> entry : ((Map<?, ?>) param).entrySet()) {
        LOG.debug("Add new parameter for transformer: " + entry.getKey().toString());
        transformer.setParameter(entry.getKey().toString(), entry.getValue());
    }
}

From source file:org.openiot.lsm.manager.TriplesDataRetriever.java

public static String getSensorTripleMetadata(Sensor s) {
    String triples = "";
    String xsltPath = XSLTMapFile.sensormeta2xslt;
    xsltPath = ConstantsUtil.realPath + xsltPath;
    //      xsltPath = "src/main/webapp/WEB-INF" + xsltPath;
    TransformerFactory tFactory = new net.sf.saxon.TransformerFactoryImpl();
    //      TransformerFactory.newInstance();
    String prefix = propertyManagement.getOpeniotResourceNamespace();
    String xml = "";
    try {//  ww w  .  ja va2s  .  c  om
        Place place = s.getPlace();
        //           String foi = propertyManagement.getOpeniotResourceNamespace()+ 
        //               Double.toString(place.getLat()).replace(".", "").replace("-", "")+
        //               Double.toString(place.getLng()).replace(".", "").replace("-", "");

        Transformer transformer = tFactory.newTransformer(new StreamSource(new File(xsltPath)));
        transformer.setParameter("sensorId", s.getId());
        transformer.setParameter("utc-timestamp", DateUtil.date2StandardString(new Date()));
        transformer.setParameter("sensorType", s.getSensorType());
        transformer.setParameter("prefix", prefix);
        transformer.setParameter("placeId", place.getId());
        transformer.setParameter("geonameId", place.getGeonameid());
        transformer.setParameter("city", place.getCity());
        transformer.setParameter("province", place.getProvince());
        transformer.setParameter("country", place.getCountry());
        transformer.setParameter("continent", place.getContinent());
        transformer.setParameter("lat", place.getLat());
        transformer.setParameter("lng", place.getLng());
        //            transformer.setParameter("foi", foi);
        transformer.setParameter("name", s.getName());
        transformer.setParameter("author", s.getAuthor());

        xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?><root></root>";
        xml = xml.trim().replaceFirst("^([\\W]+)<", "<");

        InputStream inputStream = new ByteArrayInputStream(xml.getBytes("UTF-8"));
        Writer outWriter = new StringWriter();
        StreamResult result = new StreamResult(outWriter);
        transformer.transform(new StreamSource(inputStream), result);
        triples = outWriter.toString().trim();

        //            String sensorTypeTriples = "";            
        //           sensorTypeTriples="\n<" + s.getId() + "> <http://lsm.deri.ie/ont/lsm.owl#hasSensorType> <" + sensorTypeId +">.\n"
        //              +"<" + sensorTypeId + "> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://lsm.deri.ie/ont/lsm.owl#SensorType>.\n"
        //              +"<" + sensorTypeId + "> <http://www.w3.org/2000/01/rdf-schema#label> \"" + s.getSensorType()+"\".\n";
        //           triples+=sensorTypeTriples;

        String observesTriples = "";
        for (String classURL : s.getProperties().keySet()) {
            String instanceId = prefix + System.nanoTime();
            s.getProperties().put(classURL, instanceId);
            observesTriples += "\n<" + s.getId() + "> <http://purl.oclc.org/NET/ssnx/ssn#observes> <"
                    + instanceId + ">.\n";
            observesTriples += "<" + instanceId + "> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <"
                    + classURL + ">.\n";
            //               observesTriples+= "<" + instanceId + "> <http://purl.oclc.org/NET/ssnx/ssn#isPropertyOf> <" + foi + ">.\n";
        }
        triples += observesTriples;
        triples += "<" + place.getId() + "> <http://www.w3.org/2003/01/geo/wgs84_pos#geometry> \"POINT("
                + place.getLng() + " " + place.getLat()
                + ")\"^^<http://www.openlinksw.com/schemas/virtrdf#Geometry>.\n";
    } catch (Exception e) {
        logger.info(e.toString());
    }
    return triples;
}

From source file:org.openrepose.filters.ratelimiting.util.combine.CombinedLimitsTransformer.java

@Override
public void transform(final LimitsTransformPair source, final OutputStream target) {
    Transformer pooledObject;
    final ObjectPool<Transformer> objectPool = getXslTransformerPool();
    try {/*from  w w w.j a  v a  2  s  .  c  om*/
        pooledObject = objectPool.borrowObject();
        try {
            final InputStreamUriParameter inputStreamUriParameter = new InputStreamUriParameter(
                    source.getInputStream());
            final StreamResult resultWriter = new StreamResult(target);
            // The XSL requires a parameter to represent the absolute limits.
            // This harness cheats and provides the input stream directly.
            pooledObject.setURIResolver(inputStreamUriParameter);
            pooledObject.setParameter("absoluteURL", inputStreamUriParameter.getHref());
            final Limits limitsObject = new Limits();
            limitsObject.setRates(source.getRateLimitList());
            pooledObject.transform(new JAXBSource(jaxbContext, factory.createLimits(limitsObject)),
                    resultWriter);
        } catch (Exception e) {
            objectPool.invalidateObject(pooledObject);
            pooledObject = null;
            throw new XsltTransformationException("Failed while attempting XSLT transformation.", e);
        } finally {
            if (pooledObject != null) {
                objectPool.returnObject(pooledObject);
            }
        }
    } catch (XsltTransformationException e) {
        throw e;
    } catch (Exception e) {
        LOG.error("Failed to obtain a Transformer. Reason: {}", e.getLocalizedMessage());
        LOG.trace("", e);
    }
}

From source file:org.pentaho.di.job.entries.xslt.JobEntryXSLT.java

private boolean processOneXMLFile(String xmlfilename, String xslfilename, String outputfilename, Result result,
        Job parentJob) {//from w  ww. j a  v  a  2s  . c o m
    boolean retval = false;
    FileObject xmlfile = null;
    FileObject xslfile = null;
    FileObject outputfile = null;

    try {
        xmlfile = KettleVFS.getFileObject(xmlfilename, this);
        xslfile = KettleVFS.getFileObject(xslfilename, this);
        outputfile = KettleVFS.getFileObject(outputfilename, this);

        if (xmlfile.exists() && xslfile.exists()) {
            if (outputfile.exists() && iffileexists == 2) {
                // Output file exists
                // User want to fail
                logError(BaseMessages.getString(PKG, "JobEntryXSLT.OuputFileExists1.Label") + outputfilename
                        + BaseMessages.getString(PKG, "JobEntryXSLT.OuputFileExists2.Label"));
                return retval;

            } else if (outputfile.exists() && iffileexists == 1) {
                // Do nothing
                if (log.isDebug()) {
                    logDebug(BaseMessages.getString(PKG, "JobEntryXSLT.OuputFileExists1.Label") + outputfilename
                            + BaseMessages.getString(PKG, "JobEntryXSLT.OuputFileExists2.Label"));
                }
                retval = true;
                return retval;

            } else {
                if (outputfile.exists() && iffileexists == 0) {
                    // the output file exists and user want to create new one with unique name
                    // Format Date

                    // Try to clean filename (without wildcard)
                    String wildcard = outputfilename.substring(outputfilename.length() - 4,
                            outputfilename.length());
                    if (wildcard.substring(0, 1).equals(".")) {
                        // Find wildcard
                        outputfilename = outputfilename.substring(0, outputfilename.length() - 4) + "_"
                                + StringUtil.getFormattedDateTimeNow(true) + wildcard;
                    } else {
                        // did not find wildcard
                        outputfilename = outputfilename + "_" + StringUtil.getFormattedDateTimeNow(true);
                    }
                    if (log.isDebug()) {
                        logDebug(BaseMessages.getString(PKG, "JobEntryXSLT.OuputFileExists1.Label")
                                + outputfilename
                                + BaseMessages.getString(PKG, "JobEntryXSLT.OuputFileExists2.Label"));
                        logDebug(BaseMessages.getString(PKG, "JobEntryXSLT.OuputFileNameChange1.Label")
                                + outputfilename
                                + BaseMessages.getString(PKG, "JobEntryXSLT.OuputFileNameChange2.Label"));
                    }
                }

                // Create transformer factory
                TransformerFactory factory = TransformerFactory.newInstance();

                if (xsltfactory.equals(FACTORY_SAXON)) {
                    // Set the TransformerFactory to the SAXON implementation.
                    factory = new net.sf.saxon.TransformerFactoryImpl();
                }

                if (log.isDetailed()) {
                    log.logDetailed(BaseMessages.getString(PKG, "JobEntryXSL.Log.TransformerFactoryInfos"),
                            BaseMessages.getString(PKG, "JobEntryXSL.Log.TransformerFactory",
                                    factory.getClass().getName()));
                }

                InputStream xslInputStream = KettleVFS.getInputStream(xslfile);
                InputStream xmlInputStream = KettleVFS.getInputStream(xmlfile);
                OutputStream os = null;
                try {
                    // Use the factory to create a template containing the xsl file
                    Templates template = factory.newTemplates(new StreamSource(xslInputStream));

                    // Use the template to create a transformer
                    Transformer xformer = template.newTransformer();

                    if (log.isDetailed()) {
                        log.logDetailed(BaseMessages.getString(PKG, "JobEntryXSL.Log.TransformerClassInfos"),
                                BaseMessages.getString(PKG, "JobEntryXSL.Log.TransformerClass",
                                        xformer.getClass().getName()));
                    }

                    // Do we need to set output properties?
                    if (setOutputProperties) {
                        xformer.setOutputProperties(outputProperties);
                    }

                    // Do we need to pass parameters?
                    if (useParameters) {
                        for (int i = 0; i < nrParams; i++) {
                            xformer.setParameter(nameOfParams[i], valueOfParams[i]);
                        }
                    }

                    // Prepare the input and output files
                    Source source = new StreamSource(xmlInputStream);
                    os = KettleVFS.getOutputStream(outputfile, false);
                    StreamResult resultat = new StreamResult(os);

                    // Apply the xsl file to the source file and write the result to the output file
                    xformer.transform(source, resultat);

                    if (isAddFileToResult()) {
                        // Add output filename to output files
                        ResultFile resultFile = new ResultFile(ResultFile.FILE_TYPE_GENERAL,
                                KettleVFS.getFileObject(outputfilename, this), parentJob.getJobname(),
                                toString());
                        result.getResultFiles().put(resultFile.getFile().toString(), resultFile);
                    }

                    // Everything is OK
                    retval = true;
                } finally {
                    try {
                        xslInputStream.close();
                    } catch (IOException ignored) {
                        // ignore IO Exception on close
                    }
                    try {
                        xmlInputStream.close();
                    } catch (IOException ignored) {
                        // ignore IO Exception on close
                    }
                    try {
                        if (os != null) {
                            os.close();
                        }
                    } catch (IOException ignored) {
                        // ignore IO Exception on close
                    }
                }
            }
        } else {

            if (!xmlfile.exists()) {
                logError(BaseMessages.getString(PKG, "JobEntryXSLT.FileDoesNotExist1.Label") + xmlfilename
                        + BaseMessages.getString(PKG, "JobEntryXSLT.FileDoesNotExist2.Label"));
            }
            if (!xslfile.exists()) {
                logError(BaseMessages.getString(PKG, "JobEntryXSLT.FileDoesNotExist1.Label") + xmlfilename
                        + BaseMessages.getString(PKG, "JobEntryXSLT.FileDoesNotExist2.Label"));
            }
        }
    } catch (Exception e) {
        logError(BaseMessages.getString(PKG, "JobEntryXSLT.ErrorXLST.Label")
                + BaseMessages.getString(PKG, "JobEntryXSLT.ErrorXLSTXML1.Label") + xmlfilename
                + BaseMessages.getString(PKG, "JobEntryXSLT.ErrorXLSTXML2.Label")
                + BaseMessages.getString(PKG, "JobEntryXSLT.ErrorXLSTXSL1.Label") + xslfilename
                + BaseMessages.getString(PKG, "JobEntryXSLT.ErrorXLSTXSL2.Label") + e.getMessage());
    } finally {
        try {
            if (xmlfile != null) {
                xmlfile.close();
            }

            if (xslfile != null) {
                xslfile.close();
            }
            if (outputfile != null) {
                outputfile.close();
            }
        } catch (IOException e) {
            logError("Unable to close file", e);
        }
    }

    return retval;
}