Thanks Shafreen for the input.

@Nisrin: Please note

Sohani Weerasinghe
Senior Software Engineer
WSO2, Inc: http://wso2.com

Mobile  : +94 716439774
Blog     :http://christinetechtips.blogspot.com/
Twitter  : https://twitter.com/sohanichristine

On Tue, Aug 9, 2016 at 11:21 AM, Shafreen Anfar <shafr...@wso2.com> wrote:

> Hi Sohani,
>
> Sorry for the delayed response. IMO, ideally we should try writing a
> simple java program with HE and see if it supports that particular function
> or not. Anyways, since it is not working in ESB. I think it is OK to
> conclude that is not supported in our ESB.
>
> On Fri, Aug 5, 2016 at 10:52 AM, Sohani Weerasinghe <soh...@wso2.com>
> wrote:
>
>>
>> Hi Shafreen,
>>
>> I have used [1] in testing the functions, since there is no proper
>> reference to get a list of functions supported by the Saxon 9.4 HE. Based
>> on this, can we confirm that the mentioned functions in the above thread
>> are not supported in HE? (so that we can conclude with the functions we are
>> supporting in ESB)
>>
>> [1] http://www.saxonica.com/html/documentation9.4/functions/
>>
>> Sohani Weerasinghe
>> Senior Software Engineer
>> WSO2, Inc: http://wso2.com
>>
>> Mobile  : +94 716439774
>> Blog     :http://christinetechtips.blogspot.com/
>> Twitter  : https://twitter.com/sohanichristine
>>
>> On Fri, Aug 5, 2016 at 10:21 AM, Shafreen Anfar <shafr...@wso2.com>
>> wrote:
>>
>>> Hi Sohanai,
>>>
>>> [+ Asanthi]
>>>
>>> We are using Saxon: HE (Home Edition) for XAPTH 2 functions. AFAIK, we
>>> don't select functionality to support so anything supported by library
>>> should already be there, which means it's likely HE edition does not
>>> contain function you're looking for. Please have a look at [1].
>>>
>>> [1] http://www.saxonica.com/html/documentation9.4/about/
>>>
>>> On Thu, Aug 4, 2016 at 6:57 PM, Sohani Weerasinghe <soh...@wso2.com>
>>> wrote:
>>>
>>>> Hi ESB Team,
>>>>
>>>> Please find the summary of issues encountered while testing the XPath
>>>> 2.0 functions at [1] ( referred [2] & [3] for syntax) and really appreciate
>>>> your input on this
>>>>
>>>>
>>>> *1. "Invalid XPath Syntax" occurs when saving the synapse configuration
>>>> in management console*
>>>>
>>>> This error occurs for below functions:
>>>>
>>>>    - avg- fn:avg((1,2,3,4,5))
>>>>    - codepoints-to-string - fn:codepoints-to-string((97, 32, 98, 32,
>>>>    99)))
>>>>    - distinct-values - fn:distinct-values( ('a', 'b', 'a') ) -This is
>>>>    supported when passing the value as an xml payload
>>>>    - id - //book/section/secRef/fn:id(@refs)
>>>>    - idref - //book/idref('language')/string(.)
>>>>    - index-of - fn:index-of( (4, 5, 6, 4), 4)
>>>>    - max- fn:max((2,3,5))
>>>>    - min - fn:min((2,3,5))
>>>>    - remove - fn:remove( ('a', 'b', 'c'), 2)
>>>>    - reverse - fn:reverse((1, 2, 3, 4, 5))  -This is supported when
>>>>    passing the value as an xml payload
>>>>    - string-join - string-join( ('a', 'b', 'c'), '')
>>>>    - subsequence - fn:subsequence(('a', 'b', 'c', 'd', 'e'), 3)
>>>>
>>>>
>>>> *2. Issues in using error() function*
>>>>
>>>> According to https://www.w3.org/TR/xpath-functions-30/#ERRFOER0000 ,
>>>> calling the function with empty parameters should give an unidentified
>>>> error. But when invoking the service it gives below exception
>>>>
>>>> Is this accepted?
>>>>
>>>> ERROR - SynapseXPath Evaluation of the XPath expression fn:error()
>>>> resulted in an error
>>>> ; Line#: 1; Column#: -1
>>>> net.sf.saxon.trans.XPathException: Error signalled by application call
>>>> on error()
>>>> at net.sf.saxon.functions.Error.error(Error.java:98)
>>>> at net.sf.saxon.functions.Error.evaluateItem(Error.java:55)
>>>> at net.sf.saxon.expr.Expression.iterate(Expression.java:429)
>>>> at net.sf.saxon.xpath.XPathExpressionImpl.evaluate(XPathExpress
>>>> ionImpl.java:326)
>>>> at net.sf.saxon.xpath.XPathExpressionImpl.evaluate(XPathExpress
>>>> ionImpl.java:389)
>>>> at org.apache.synapse.util.xpath.SynapseXPath.evaluateDOMXPath(
>>>> SynapseXPath.java:533)
>>>> at org.apache.synapse.util.xpath.SynapseXPath.stringValueOf(Syn
>>>> apseXPath.java:367)
>>>> at org.apache.synapse.mediators.MediatorProperty.getEvaluatedEx
>>>> pression(MediatorProperty.java:138)
>>>> at org.apache.synapse.mediators.builtin.LogMediator.setCustomPr
>>>> operties(LogMediator.java:223)
>>>> at org.apache.synapse.mediators.builtin.LogMediator.getCustomLo
>>>> gMessage(LogMediator.java:146)
>>>> at org.apache.synapse.mediators.builtin.LogMediator.getLogMessa
>>>> ge(LogMediator.java:132)
>>>> at org.apache.synapse.mediators.builtin.LogMediator.mediate(Log
>>>> Mediator.java:101)
>>>> at org.apache.synapse.mediators.AbstractListMediator.mediate(Ab
>>>> stractListMediator.java:97)
>>>> at org.apache.synapse.mediators.AbstractListMediator.mediate(Ab
>>>> stractListMediator.java:54)
>>>> at org.apache.synapse.mediators.base.SequenceMediator.mediate(S
>>>> equenceMediator.java:158)
>>>> at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.re
>>>> ceive(ProxyServiceMessageReceiver.java:210)
>>>> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
>>>> at org.apache.synapse.transport.passthru.ServerWorker.processEn
>>>> tityEnclosingRequest(ServerWorker.java:398)
>>>> at org.apache.synapse.transport.passthru.ServerWorker.run(Serve
>>>> rWorker.java:145)
>>>> at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.r
>>>> un(NativeWorkerPool.java:172)
>>>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool
>>>> Executor.java:1145)
>>>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo
>>>> lExecutor.java:615)
>>>> at java.lang.Thread.run(Thread.java:745)
>>>>
>>>>
>>>> *3. "System function is not available with this host language/version"
>>>> occurs when invoking the service*
>>>>
>>>> According to <https://mail.google.com/mail/u/0/goog_627243550>
>>>> https://sourceforge.net/p/saxon/mailman/saxon-help/thread/50
>>>> f7f8b9.4090...@falutin.net/, it seems this is an XSLT function, is
>>>> that the reason for getting the below error?  but at [1] this function
>>>> is declared as an XPath function
>>>>
>>>>
>>>> [2016-08-02 12:47:27,875] ERROR - SynapseXPath Evaluation of the XPath
>>>> expression fn:format-date(fn:current-date(), '[Y01]/[M01]/[D01]')
>>>> resulted in an error
>>>> net.sf.saxon.trans.XPathException: System function format-date#2 is
>>>> not available with this host language/version
>>>> at net.sf.saxon.expr.parser.ExpressionParser.grumble(Expression
>>>> Parser.java:263)
>>>> at net.sf.saxon.expr.parser.ExpressionParser.parseFunctionCall(
>>>> ExpressionParser.java:2375)
>>>> at net.sf.saxon.expr.parser.ExpressionParser.parseBasicStep(Exp
>>>> ressionParser.java:1731)
>>>> at net.sf.saxon.expr.parser.ExpressionParser.parseStepExpressio
>>>> n(ExpressionParser.java:1654)
>>>> at net.sf.saxon.expr.parser.ExpressionParser.parseRelativePath(
>>>> ExpressionParser.java:1573)
>>>> at net.sf.saxon.expr.parser.ExpressionParser.parsePathExpressio
>>>> n(ExpressionParser.java:1557)
>>>> at net.sf.saxon.expr.parser.ExpressionParser.parseUnaryExpressi
>>>> on(ExpressionParser.java:1447)
>>>> at net.sf.saxon.expr.parser.ExpressionParser.parseExprSingle(Ex
>>>> pressionParser.java:517)
>>>> at net.sf.saxon.expr.parser.ExpressionParser.parseExpression(Ex
>>>> pressionParser.java:455)
>>>> at net.sf.saxon.expr.parser.ExpressionParser.parse(ExpressionPa
>>>> rser.java:391)
>>>> at net.sf.saxon.expr.parser.ExpressionTool.make(ExpressionTool.java:94)
>>>> at net.sf.saxon.xpath.XPathEvaluator.createExpressionInternal(X
>>>> PathEvaluator.java:235)
>>>> at net.sf.saxon.xpath.XPathEvaluator.compile(XPathEvaluator.java:376)
>>>> at org.apache.synapse.util.xpath.SynapseXPath.evaluateDOMXPath(
>>>> SynapseXPath.java:532)
>>>> at org.apache.synapse.util.xpath.SynapseXPath.stringValueOf(Syn
>>>> apseXPath.java:367)
>>>> at org.apache.synapse.mediators.MediatorProperty.getEvaluatedEx
>>>> pression(MediatorProperty.java:138)
>>>> at org.apache.synapse.mediators.builtin.LogMediator.setCustomPr
>>>> operties(LogMediator.java:223)
>>>> at org.apache.synapse.mediators.builtin.LogMediator.getCustomLo
>>>> gMessage(LogMediator.java:146)
>>>> at org.apache.synapse.mediators.builtin.LogMediator.getLogMessa
>>>> ge(LogMediator.java:132)
>>>> at org.apache.synapse.mediators.builtin.LogMediator.mediate(Log
>>>> Mediator.java:101)
>>>> at org.apache.synapse.mediators.AbstractListMediator.mediate(Ab
>>>> stractListMediator.java:97)
>>>> at org.apache.synapse.mediators.AbstractListMediator.mediate(Ab
>>>> stractListMediator.java:54)
>>>> at org.apache.synapse.mediators.base.SequenceMediator.mediate(S
>>>> equenceMediator.java:158)
>>>> at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.re
>>>> ceive(ProxyServiceMessageReceiver.java:210)
>>>> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
>>>> at org.apache.synapse.transport.passthru.ServerWorker.processEn
>>>> tityEnclosingRequest(ServerWorker.java:398)
>>>> at org.apache.synapse.transport.passthru.ServerWorker.run(Serve
>>>> rWorker.java:145)
>>>> at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.r
>>>> un(NativeWorkerPool.java:172)
>>>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool
>>>> Executor.java:1145)
>>>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo
>>>> lExecutor.java:615)
>>>> at java.lang.Thread.run(Thread.java:745)
>>>>
>>>> *4. Error in using insert-before() function*
>>>>
>>>>
>>>> According to https://docs.marklogic.com/fn:insert-before if the
>>>> function written as
>>>> fn:insert-before('a', 0, 'x'), then it gives the below error when
>>>> invoking the service
>>>>
>>>> If the position casts to xs:integer as fn:insert-before('a',
>>>> xs:integer(0), 'x') and invoke the service then the result only has 'x' but
>>>> the expected result should be 'x,a'
>>>>
>>>>
>>>> [2016-08-02 14:39:23,625] ERROR - SynapseXPath Evaluation of the XPath
>>>> expression fn:insert-before('a', 1, 'x') resulted in an error
>>>> ; Line#: 1; Column#: -1
>>>> net.sf.saxon.trans.XPathException: Required item type of second
>>>> argument of fn:insert-before() is xs:integer; supplied value has item type
>>>> xs:decimal
>>>>         at net.sf.saxon.expr.parser.TypeChecker.staticTypeCheck(TypeChe
>>>> cker.java:404)
>>>>         at net.sf.saxon.functions.SystemFunction.checkArgument(SystemFu
>>>> nction.java:117)
>>>>         at net.sf.saxon.functions.SystemFunction.checkArguments(SystemF
>>>> unction.java:100)
>>>>         at net.sf.saxon.expr.FunctionCall.typeCheck(FunctionCall.java:1
>>>> 34)
>>>>         at net.sf.saxon.expr.parser.ExpressionVisitor.typeCheck(Express
>>>> ionVisitor.java:206)
>>>>         at net.sf.saxon.xpath.XPathEvaluator.createExpressionInternal(X
>>>> PathEvaluator.java:239)
>>>>         at net.sf.saxon.xpath.XPathEvaluator.compile(XPathEvaluator.jav
>>>> a:376)
>>>>         at org.apache.synapse.util.xpath.SynapseXPath.evaluateDOMXPath(
>>>> SynapseXPath.java:532)
>>>>         at org.apache.synapse.util.xpath.SynapseXPath.stringValueOf(Syn
>>>> apseXPath.java:367)
>>>>         at org.apache.synapse.mediators.MediatorProperty.getEvaluatedEx
>>>> pression(MediatorProperty.java:138)
>>>>         at org.apache.synapse.mediators.builtin.LogMediator.setCustomPr
>>>> operties(LogMediator.java:223)
>>>>         at org.apache.synapse.mediators.builtin.LogMediator.getCustomLo
>>>> gMessage(LogMediator.java:146)
>>>>         at org.apache.synapse.mediators.builtin.LogMediator.getLogMessa
>>>> ge(LogMediator.java:132)
>>>>         at org.apache.synapse.mediators.builtin.LogMediator.mediate(Log
>>>> Mediator.java:101)
>>>>         at org.apache.synapse.mediators.AbstractListMediator.mediate(Ab
>>>> stractListMediator.java:97)
>>>>         at org.apache.synapse.mediators.AbstractListMediator.mediate(Ab
>>>> stractListMediator.java:54)
>>>>         at org.apache.synapse.mediators.base.SequenceMediator.mediate(S
>>>> equenceMediator.java:158)
>>>>         at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.re
>>>> ceive(ProxyServiceMessageReceiver.java:210)
>>>>         at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:1
>>>> 80)
>>>>         at org.apache.synapse.transport.passthru.ServerWorker.processEn
>>>> tityEnclosingRequest(ServerWorker.java:398)
>>>>         at org.apache.synapse.transport.passthru.ServerWorker.run(Serve
>>>> rWorker.java:145)
>>>>         at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.r
>>>> un(NativeWorkerPool.java:172)
>>>>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool
>>>> Executor.java:1145)
>>>>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo
>>>> lExecutor.java:615)
>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>
>>>>
>>>>
>>>> *5. nilled() function always gives the result as false*
>>>>
>>>> ref: http://www.xqueryfunctions.com/xq/fn_nilled.html
>>>>
>>>> payload:
>>>>
>>>> <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
>>>> <child>12</child> <child xsi:nil="true"></child> <child></child> <child/>
>>>> <child xsi:nil="false"></child> </root>
>>>>
>>>> function: fn:nilled(//child[1])
>>>>
>>>> For all child elements it gives false ( even for the elements which has
>>>> xsi:nil)
>>>>
>>>>
>>>> *6. root() function does not give the root element*
>>>>
>>>> ref:http://www.xqueryfunctions.com/xq/fn_root.html
>>>>
>>>> payload:
>>>>
>>>> <a>
>>>>   <x>123</x>
>>>> </a>
>>>>
>>>> function: fn:root(//x)
>>>>
>>>> result : 123
>>>>
>>>> expected result :
>>>> <a>
>>>>   <x>123</x>
>>>> </a>
>>>>
>>>>
>>>> *7. Using the function static-base-uri()*
>>>>
>>>> ref: http://www.xqueryfunctions.com/xq/fn_static-base-uri.html
>>>>
>>>> Can someone please mention how to define the function and the usage?
>>>>
>>>>
>>>>
>>>> *8. Using the function unordered()*
>>>>
>>>> ref: https://docs.marklogic.com/fn.unordered
>>>>
>>>> payload :
>>>>
>>>> <a>
>>>>   <x>1</x>
>>>>  <x>2</x>
>>>>  <x>3</x>
>>>> </a>
>>>>
>>>> function: fn:unordered(//x)
>>>>
>>>> result : 1
>>>>
>>>> Can someone please explain the usage of this function? it seems the
>>>> expected result should be a sequence of items
>>>>
>>>>
>>>>
>>>>
>>>> -more information on the testing results can be found at [4]
>>>>
>>>> -Further, when going through the functions at [1] it seems below
>>>> functions are only supported for XSLT ( I guess we don't need to support
>>>> those functions when considering the XPath 2.0 functions, please correct me
>>>> if I'm wrong)
>>>>
>>>> ref: https://docs.marklogic.com/fn
>>>>
>>>> functions:
>>>>
>>>>    - current
>>>>    - current-group
>>>>    - current-grouping-key
>>>>    - document
>>>>    - element-available
>>>>    - function-available
>>>>    - generate-id(http://www.xsltfunctions.com/xsl/fn_generate-id.html)
>>>>    - regex-group
>>>>    - system-property
>>>>    - type-available
>>>>    - unparsed-entity-public-id
>>>>    - unparsed-entity-uri
>>>>    - unparsed-text
>>>>    - unparsed-text-available
>>>>
>>>>
>>>> - XPath 3.0 functions listed at [1]
>>>>
>>>> acos ,analyze-string,asin,atan,ata2,available-environment-variables,cos
>>>> ,element-with-id,environment-variable,exp,exp10,filter,fold-left,
>>>> fold-right,format-integer,function-arity,function-lookup,function-name,
>>>> has-children,head,innermost,log,log10,map,map-pairs,outermost,parse-
>>>> json,parse-xml ,path,pi,pow,round,serialize,serialize-json,sin,sqrt,
>>>> tail,tan,unparsed-text-lines,uri-collection
>>>>
>>>>
>>>>
>>>> [1] http://www.saxonica.com/html/documentation9.4/functions/
>>>> [2] http://www.xqueryfunctions.com/
>>>> [3] https://docs.marklogic.com/js/fn
>>>> [4] https://docs.google.com/a/wso2.com/spreadsheets/d/1LLVST
>>>> AGrqpouQIkt1p3dRx5_wqjuUa58QnKd7gbgQTU/edit?usp=sharing
>>>>
>>>> Thanks,
>>>> Sohani
>>>>
>>>> Sohani Weerasinghe
>>>> Senior Software Engineer
>>>> WSO2, Inc: http://wso2.com
>>>>
>>>> Mobile  : +94 716439774
>>>> Blog     :http://christinetechtips.blogspot.com/
>>>> Twitter  : https://twitter.com/sohanichristine
>>>>
>>>> On Mon, Aug 1, 2016 at 4:28 PM, Sohani Weerasinghe <soh...@wso2.com>
>>>> wrote:
>>>>
>>>>> According to [1] if I test the distinct-values function,it behaves as
>>>>> explained below:
>>>>>
>>>>>
>>>>> 1. If I use a rest mock service to get the response and then get the
>>>>> distinct values :
>>>>>
>>>>> Rest mock service response:
>>>>>
>>>>> <catalog xml:base="http://example.org/ACC/";> <product dept="WMN"> 
>>>>> *<number>557</number>
>>>>> <number>44</number>*
>>>>> *<number>44</number>* </product> </catalog>
>>>>>
>>>>> Rest API:
>>>>>
>>>>> <api xmlns="http://ws.apache.org/ns/synapse"; name="sample123"
>>>>> context="/test123"> <resource methods="POST GET"> <inSequence> <send>
>>>>> <endpoint> <address uri="http://localhost:8080/getResult"/>
>>>>> </endpoint> </send> </inSequence> <outSequence> <log level="custom">
>>>>> <property xmlns:fn="http://www.w3.org/2005/xpath-functions"; xmlns:ns="
>>>>> http://org.apache.synapse/xsd"; xmlns:base="http://test";
>>>>> name="testValue" *expression="fn:**distinct-values**(//product/*)"/*>
>>>>> </log> </outSequence> </resource> </api>
>>>>>
>>>>>
>>>>> Then expected result is : *557, 44*
>>>>>
>>>>> But I am getting only *557*
>>>>>
>>>>> Am I missing something here?
>>>>>
>>>>> 2. If I directly use this function as below
>>>>>
>>>>> <proxy xmlns="http://ws.apache.org/ns/synapse";
>>>>>        name="testProxy"
>>>>>        transports="http https"
>>>>>        startOnLoad="true">
>>>>>    <description/>
>>>>>    <target>
>>>>>       <inSequence>
>>>>>          <log level="custom">
>>>>>             <property xmlns:fn="http://www.w3.org/2005/xpath-functions
>>>>> "
>>>>>                       xmlns:xs="http://www.w3.org/2001/XMLSchema";
>>>>>                       xmlns:ns="http://org.apache.synapse/xsd";
>>>>>                       name="testValue"
>>>>>                       expression="*fn:**distinct-values**(('a', 'b',
>>>>> 'a'))*"/>
>>>>>          </log>
>>>>>       </inSequence>
>>>>>       <outSequence/>
>>>>>    </target>
>>>>> </proxy>
>>>>>
>>>>> Then I'm getting the exception "invalid XPapth expression" in saving
>>>>> the proxy
>>>>>
>>>>> But according to [1] it seems both ways are correct
>>>>>
>>>>>
>>>>> [1] http://www.xqueryfunctions.com/xq/fn_distinct-values.html
>>>>>
>>>>> Thanks,
>>>>> Sohani
>>>>>
>>>>> Sohani Weerasinghe
>>>>> Senior Software Engineer
>>>>> WSO2, Inc: http://wso2.com
>>>>>
>>>>> Mobile  : +94 716439774
>>>>> Blog     :http://christinetechtips.blogspot.com/
>>>>> Twitter  : https://twitter.com/sohanichristine
>>>>>
>>>>> On Mon, Aug 1, 2016 at 3:54 PM, Sohani Weerasinghe <soh...@wso2.com>
>>>>> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Sohani Weerasinghe
>>>>>> Senior Software Engineer
>>>>>> WSO2, Inc: http://wso2.com
>>>>>>
>>>>>> Mobile  : +94 716439774
>>>>>> Blog     :http://christinetechtips.blogspot.com/
>>>>>> Twitter  : https://twitter.com/sohanichristine
>>>>>>
>>>>>> On Mon, Aug 1, 2016 at 1:28 PM, Sohani Weerasinghe <soh...@wso2.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi All,
>>>>>>>
>>>>>>> It seems, the " Invalid XPapth expression" comes when we use two
>>>>>>> brackets in the function as below
>>>>>>>
>>>>>>
>>>>>>
>>>>>> While I was testing further I found that below function works
>>>>>> perfectly even it has two brackets, so that means the syntax of the above
>>>>>> mentioned functions are correct.
>>>>>>
>>>>>> So, are these functions not supported in ESB? Appreciate your input
>>>>>> on this
>>>>>>
>>>>>> fn:dateTime(xs:date('2006-08-15'), xs:time('12:30:45-05:00'))
>>>>>>
>>>>>>
>>>>>>> fn:codepoints-to-string(*(*2309, 2358, 2378, 2325*)*)
>>>>>>> fn:string-join(('a', 'c'), 'bbb')
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Sohani Weerasinghe
>>>>>>> Senior Software Engineer
>>>>>>> WSO2, Inc: http://wso2.com
>>>>>>>
>>>>>>> Mobile  : +94 716439774
>>>>>>> Blog     :http://christinetechtips.blogspot.com/
>>>>>>> Twitter  : https://twitter.com/sohanichristine
>>>>>>>
>>>>>>> On Mon, Aug 1, 2016 at 12:06 PM, Sohani Weerasinghe <soh...@wso2.com
>>>>>>> > wrote:
>>>>>>>
>>>>>>>> Hi All,
>>>>>>>>
>>>>>>>> I am validating the Xpath 2.0 functions support in ESB ( please
>>>>>>>> refer [1]) and I am using below configuration in defining 'avg' 
>>>>>>>> function
>>>>>>>> (Referred [2]), but it seems I am using the wrong syntax.
>>>>>>>>
>>>>>>>>   <property xmlns:fn="http://www.w3.org/2005/xpath-functions";
>>>>>>>>                       xmlns:test="http://test";
>>>>>>>>                       xmlns:ns="http://org.apache.synapse/xsd";
>>>>>>>>                       name="testValue"
>>>>>>>>                     *  expression="fn:avg((3,4,5))"/>*
>>>>>>>>
>>>>>>>> Can someone please point the correct syntax?
>>>>>>>>
>>>>>>>> Since avg function requires a single parameter, is there a way to
>>>>>>>> define the integer values externally ( may be using a property 
>>>>>>>> mediator )
>>>>>>>> and use it inside the function ?
>>>>>>>>
>>>>>>>> If this syntax is correct, is this function not supported in ESB?
>>>>>>>>
>>>>>>>> Really appreciate your input on this
>>>>>>>>
>>>>>>>> FYI: When saving the proxy, I'm getting below exception:
>>>>>>>>
>>>>>>>> [2016-08-01 11:41:11,718] ERROR - ProxyServiceAdmin Unable to save
>>>>>>>> changes made for the proxy service : testProxy. Restored the existing
>>>>>>>> proxy... :: Invalid XPapth expression : fn:avg((3,4,5))
>>>>>>>> org.apache.synapse.SynapseException: Invalid XPapth expression :
>>>>>>>> fn:avg((3,4,5))
>>>>>>>> at org.apache.synapse.config.xml.MediatorPropertyFactory.getMed
>>>>>>>> iatorProperties(MediatorPropertyFactory.java:106)
>>>>>>>> at org.apache.synapse.config.xml.LogMediatorFactory.createSpeci
>>>>>>>> ficMediator(LogMediatorFactory.java:111)
>>>>>>>> .......
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> [1] Xpath 2.0.0 functions supported by ESB
>>>>>>>> [2] https://www.w3.org/TR/xpath-functions/#func-avg
>>>>>>>> Sohani Weerasinghe
>>>>>>>> Senior Software Engineer
>>>>>>>> WSO2, Inc: http://wso2.com
>>>>>>>>
>>>>>>>> Mobile  : +94 716439774
>>>>>>>> Blog     :http://christinetechtips.blogspot.com/
>>>>>>>> Twitter  : https://twitter.com/sohanichristine
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>> Regards,
>>> *Shafreen*
>>> Software Engineer
>>> WSO2 Inc
>>> Mobile : 077-556-395-1
>>>
>>
>>
>
>
> --
> Regards,
> *Shafreen*
> Software Engineer
> WSO2 Inc
> Mobile : 077-556-395-1
>
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to