List of usage examples for javax.xml.transform Transformer setParameter
public abstract void setParameter(String name, Object value);
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*/ * <generator name="xslt"> * <stylesheet>/path/to/my/stylesheet.xsl</stylesheet> * [<use-request-parameters>true</use-request-parameters>] * [<generator>...</generator>] * </generator> * </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; }