XPath expression for Web Service Variable returning only first result

Document ID : KB000004460
Last Modified Date : 14/02/2018
Show Technical Document Details
Issue:

Web Service Variable is created as below :

adminuiconfig.jpg

SOAP Response :

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<soapenv:Body>

<Permissions>

<Permission>SuperUser</Permission>

<Permission>Manager</Permission>

<Permission>HR</Permission>

<Permission>Accountant</Permission>

</Permissions>

</soapenv:Body>

</soapenv:Envelope>

 

XPath Expression : /*/*/*/*[local-name()='Permission']/text()

If using standard XPATH 1.0/2.0 API, the above XPath Expression parse the result as :

working.jpg

 

Reference : http://www.freeformatter.com/xpath-tester.html

However, for the same SOAP response and XPath combination, Policy server fetches only the first result and hence resolves this Web Service variable to value (only) "SUPERUSER"

Policy server Java Util.log

October 16, 2016 9:04:30.76 PM[17008593:AEC Variable Resolution] After resolution resolved variables: <RVARS><Var name="EmptyString" rtype="3"><![CDATA[""]]></Var><Var name="BBHWSVariable" rtype="3"><![CDATA[SUPERUSER]]></Var></RVARS> 

 

 

Environment:
Policy Server : 12.52 SP1 and abovePolicy Server OS : ANY
Cause:

This is as per the policy server design and is currently the limitation. Policy server is designed to evaluate to only the first node from the list. 

The other nodes are ignored.

Resolution:

There is no workaround/resolution for this functionality at the moment.

Customer might implement their own web service client and XML parser using the custom Active Expression.

 

 

Additional Information:

N/A