Hi Bill, Would you like to contribute a sample?
Thanks, Ruwan On Tue, Jul 14, 2009 at 8:50 PM, Ruwan Linton <[email protected]>wrote: > Of course that will be a good addition.. > > Thanks, > Ruwan > > > On Tue, Jul 14, 2009 at 8:17 PM, Bill Harts <[email protected]> wrote: > >> Andreas, Ruwan: >> >> Thanks for clarifying this, it fixed my problem. May I suggest >> incorporating passing a parameter to a stylesheet into one of the samples? >> >> Bill >> >> >> On Tue, Jul 14, 2009 at 7:17 AM, Ruwan Linton <[email protected]>wrote: >> >>> Yes, you need to declare the parameter with the exact name as the >>> property name... I wonder why we call this property it is confusing to pass >>> in parameters as properties :( >>> >>> Thanks, >>> Ruwan >>> >>> On Tue, Jul 14, 2009 at 12:37 PM, Andreas Veithen < >>> [email protected]> wrote: >>> >>>> Bill, >>>> >>>> I think you need to declare the parameter in your stylesheet using: >>>> >>>> <xsl:param name="TestMe"/> >>>> >>>> This declaration should be placed just below the <xsl:stylesheet> tag. >>>> >>>> Andreas >>>> >>>> On Mon, Jul 13, 2009 at 21:23, Bill Harts<[email protected]> wrote: >>>> > Can someone point me in the right direction to pass parameters (or >>>> registry >>>> > values) into an XSLT transform? >>>> > >>>> > In the documentation for the XSLT mediator it states, >>>> > >>>> > "Optionally parameters (XSLT) could be passed into the transformation >>>> > through the 'property' elements." >>>> > >>>> > I am trying to take advantage of this. Here is my synapse.xml code: >>>> > >>>> > <localEntry key="xslt-key-resp" >>>> > src="file:repository/conf/resources/transform/MyTransform.xslt" /> >>>> > >>>> > . >>>> > . >>>> > . >>>> > <xslt key="xslt-key-resp"> >>>> > <property name="TestMe" value="This is a test"/> >>>> > </xslt> >>>> > >>>> > and MyTransform.xslt: >>>> > >>>> > <xsl:stylesheet version="2.0" >>>> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >>>> > xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> >>>> > <xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/> >>>> > <xsl:template match="/"> >>>> > <message inSession="FIX.4.2:OPTMED->BROKER" counter="1"> >>>> > <header> >>>> > <field id="8"><![CDATA[FIX.4.2]]></field> >>>> > <field id="35"><![CDATA[8]]></field> >>>> > <field id="49"><![CDATA[BROKER]]></field> >>>> > <field >>>> id="52"><![CDATA[20090526-06:50:26.661]]></field> >>>> > <field id="56"><![CDATA[OPTMED]]></field> >>>> > </header> >>>> > <body> >>>> > <field id="11"><xsl:value-of select="$TestMe" >>>> /></field> >>>> > <field id="21"><![CDATA[1]]></field> >>>> > <field id="38"><![CDATA[10000]]></field> >>>> > <field id="40"><![CDATA[1]]></field> >>>> > <field id="54"><![CDATA[1]]></field> >>>> > <field id="59"><![CDATA[0]]></field> >>>> > <field >>>> id="60"><![CDATA[20090526-06:50:26.657]]></field> >>>> > <field id="453"><![CDATA[1]]></field> >>>> > </body> >>>> > <trailer> >>>> > <field id="10"><![CDATA[186]]></field> >>>> > </trailer> >>>> > </message> >>>> > </xsl:template> >>>> > </xsl:stylesheet> >>>> > >>>> > When I run it, I get an exception: >>>> > >>>> > 2009-07-13 14:53:28,019 [-] [HttpClientWorker-20] ERROR XSLTMediator >>>> > Error creating XSLT transformer using : xslt-key-resp >>>> > javax.xml.transform.TransformerConfigurationException: >>>> > javax.xml.transform.TransformerException: >>>> > org.apache.xml.utils.WrappedRuntimeException: Could not find variable >>>> > with the name of TestMe >>>> > >>>> > at >>>> org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:961) >>>> > at >>>> org.apache.synapse.mediators.transform.XSLTMediator.performXSLT(XSLTMediator.java:239) >>>> > at >>>> org.apache.synapse.mediators.transform.XSLTMediator.mediate(XSLTMediator.java:197) >>>> > >>>> > at >>>> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:60) >>>> > at >>>> org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:112) >>>> > at >>>> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:60) >>>> > >>>> > at >>>> org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:115) >>>> > at >>>> org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:139) >>>> > at >>>> org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:339) >>>> > >>>> > at >>>> org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:135) >>>> > at >>>> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:173) >>>> > at >>>> org.apache.synapse.transport.nhttp.ClientWorker.run(ClientWorker.java:230) >>>> > >>>> > at >>>> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:58) >>>> > at >>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651) >>>> > at >>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676) >>>> > >>>> > at java.lang.Thread.run(Thread.java:595) >>>> > Caused by: javax.xml.transform.TransformerException: >>>> > org.apache.xml.utils.WrappedRuntimeException: Could not find variable >>>> > with the name of TestMe >>>> > at >>>> org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:952) >>>> > >>>> > ... 15 more >>>> > Caused by: org.apache.xml.utils.WrappedRuntimeException: Could not >>>> > find variable with the name of TestMe >>>> > at >>>> org.apache.xpath.operations.Variable.fixupVariables(Variable.java:148) >>>> > at org.apache.xpath.XPath.fixupVariables(XPath.java:88) >>>> > >>>> > at >>>> org.apache.xalan.templates.ElemValueOf.compose(ElemValueOf.java:183) >>>> > at >>>> org.apache.xalan.templates.StylesheetRoot.composeTemplates(StylesheetRoot.java:361) >>>> > at >>>> org.apache.xalan.templates.StylesheetRoot.composeTemplates(StylesheetRoot.java:366) >>>> > >>>> > at >>>> org.apache.xalan.templates.StylesheetRoot.composeTemplates(StylesheetRoot.java:366) >>>> > at >>>> org.apache.xalan.templates.StylesheetRoot.composeTemplates(StylesheetRoot.java:366) >>>> > at >>>> org.apache.xalan.templates.StylesheetRoot.composeTemplates(StylesheetRoot.java:366) >>>> > >>>> > at >>>> org.apache.xalan.templates.StylesheetRoot.composeTemplates(StylesheetRoot.java:366) >>>> > at >>>> org.apache.xalan.templates.StylesheetRoot.recompose(StylesheetRoot.java:341) >>>> > at >>>> org.apache.xalan.processor.StylesheetHandler.endDocument(StylesheetHandler.java:471) >>>> > >>>> > at >>>> org.apache.xerces.parsers.AbstractSAXParser.endDocument(Unknown >>>> > Source) >>>> > at >>>> org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(Unknown >>>> > Source) >>>> > at org.apache.xerces.impl.XMLEntityManager.endEntity(Unknown >>>> Source) >>>> > >>>> > at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source) >>>> > at org.apache.xerces.impl.XMLEntityScanner.skipSpaces(Unknown >>>> Source) >>>> > at >>>> org.apache.xerces.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.dispatch(Unknown >>>> > Source) >>>> > >>>> > at >>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown >>>> > Source) >>>> > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown >>>> Source) >>>> > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown >>>> Source) >>>> > >>>> > at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) >>>> > at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown >>>> Source) >>>> > at >>>> org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown >>>> > Source) >>>> > >>>> > at >>>> org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:922) >>>> > ... 15 more >>>> > 2009-07-13 14:53:28,219 [-] [DefaultQuartzScheduler_Worker-2] DEBUG >>>> > InMediator Current message is incoming - executing child mediators >>>> > >>>> > 2009-07-13 14:53:29,762 [-] [HttpClientWorker-20] ERROR XSLTMediator >>>> > Unable to perform XSLT transformation using : xslt-key-resp against >>>> > source XPath : s11:Body/child::*[position()=1] | >>>> > s12:Body/child::*[position()=1] >>>> > >>>> > org.apache.synapse.SynapseException: Error creating XSLT transformer >>>> > using : xslt-key-resp >>>> > at >>>> org.apache.synapse.mediators.AbstractMediator.handleException(AbstractMediator.java:275) >>>> > at >>>> org.apache.synapse.mediators.transform.XSLTMediator.performXSLT(XSLTMediator.java:245) >>>> > >>>> > at >>>> org.apache.synapse.mediators.transform.XSLTMediator.mediate(XSLTMediator.java:197) >>>> > at >>>> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:60) >>>> > at >>>> org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:112) >>>> > >>>> > at >>>> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:60) >>>> > at >>>> org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:115) >>>> > at >>>> org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:139) >>>> > >>>> > at >>>> org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:339) >>>> > at >>>> org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:135) >>>> > >>>> > at >>>> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:173) >>>> > at >>>> org.apache.synapse.transport.nhttp.ClientWorker.run(ClientWorker.java:230) >>>> > at >>>> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:58) >>>> > >>>> > at >>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651) >>>> > at >>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676) >>>> > at java.lang.Thread.run(Thread.java:595) >>>> > >>>> > Caused by: javax.xml.transform.TransformerConfigurationException: >>>> > javax.xml.transform.TransformerException: >>>> > org.apache.xml.utils.WrappedRuntimeException: Could not find variable >>>> > with the name of TestMe >>>> > at >>>> org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:961) >>>> > >>>> > at >>>> org.apache.synapse.mediators.transform.XSLTMediator.performXSLT(XSLTMediator.java:239) >>>> > ... 14 more >>>> > Caused by: javax.xml.transform.TransformerException: >>>> > org.apache.xml.utils.WrappedRuntimeException: Could not find variable >>>> > with the name of TestMe >>>> > >>>> > at >>>> org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:952) >>>> > ... 15 more >>>> > Caused by: org.apache.xml.utils.WrappedRuntimeException: Could not >>>> > find variable with the name of TestMe >>>> > >>>> > at >>>> org.apache.xpath.operations.Variable.fixupVariables(Variable.java:148) >>>> > at org.apache.xpath.XPath.fixupVariables(XPath.java:88) >>>> > at >>>> org.apache.xalan.templates.ElemValueOf.compose(ElemValueOf.java:183) >>>> > >>>> > at >>>> org.apache.xalan.templates.StylesheetRoot.composeTemplates(StylesheetRoot.java:361) >>>> > at >>>> org.apache.xalan.templates.StylesheetRoot.composeTemplates(StylesheetRoot.java:366) >>>> > at >>>> org.apache.xalan.templates.StylesheetRoot.composeTemplates(StylesheetRoot.java:366) >>>> > >>>> > at >>>> org.apache.xalan.templates.StylesheetRoot.composeTemplates(StylesheetRoot.java:366) >>>> > at >>>> org.apache.xalan.templates.StylesheetRoot.composeTemplates(StylesheetRoot.java:366) >>>> > at >>>> org.apache.xalan.templates.StylesheetRoot.composeTemplates(StylesheetRoot.java:366) >>>> > >>>> > at >>>> org.apache.xalan.templates.StylesheetRoot.recompose(StylesheetRoot.java:341) >>>> > at >>>> org.apache.xalan.processor.StylesheetHandler.endDocument(StylesheetHandler.java:471) >>>> > at >>>> org.apache.xerces.parsers.AbstractSAXParser.endDocument(Unknown >>>> > Source) >>>> > >>>> > at >>>> org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(Unknown >>>> > Source) >>>> > at org.apache.xerces.impl.XMLEntityManager.endEntity(Unknown >>>> Source) >>>> > at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source) >>>> > >>>> > at org.apache.xerces.impl.XMLEntityScanner.skipSpaces(Unknown >>>> Source) >>>> > at >>>> org.apache.xerces.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.dispatch(Unknown >>>> > Source) >>>> > at >>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown >>>> > Source) >>>> > >>>> > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown >>>> Source) >>>> > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown >>>> Source) >>>> > at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) >>>> > >>>> > at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown >>>> Source) >>>> > at >>>> org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown >>>> > Source) >>>> > at >>>> org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:922) >>>> > >>>> > ... 15 more >>>> > >>>> > >>>> > Alternatively, is there a way to use >>>> "get-property('Registry-variable')" in >>>> > the XSLT file? >>>> > >>>> > Is there an example of how to do this? >>>> > >>>> > Thanks, >>>> > Bill >>>> > >>>> >>> >>> >>> >>> -- >>> Ruwan Linton >>> Technical Lead & Product Manager; WSO2 ESB; http://wso2.org/esb >>> WSO2 Inc.; http://wso2.org >>> email: [email protected]; cell: +94 77 341 3097 >>> blog: http://ruwansblog.blogspot.com >>> >> >> > > > -- > Ruwan Linton > Technical Lead & Product Manager; WSO2 ESB; http://wso2.org/esb > WSO2 Inc.; http://wso2.org > email: [email protected]; cell: +94 77 341 3097 > blog: http://ruwansblog.blogspot.com > -- Ruwan Linton Technical Lead & Product Manager; WSO2 ESB; http://wso2.org/esb WSO2 Inc.; http://wso2.org email: [email protected]; cell: +94 77 341 3097 blog: http://ruwansblog.blogspot.com
