The $inbound variable is:
<con:endpoint name="ProxyService$pierreTests$identifyFlow$identifyFlowPS" xmlns:con="http://www.bea.com/wli/sb/context">
<con:service/>
<con:transport>
<con:uri>/pierreTests/identifyFlow/identifyFlowPS</con:uri>
<con:mode>request-response</con:mode>
<bla/>
</con:transport>
</con:endpoint>
so, if you use the name attribute of inbound you have this Xquery:
xquery version "1.0" encoding "Cp1252";
(:: pragma parameter="$anyType1" type="xs:anyType" ::)
declare namespace xf = "http://tempuri.org/PVTests/getOriginFromInbound/";
declare namespace con = "http://www.bea.com/wli/sb/context";
declare namespace tran = "http://www.bea.com/wli/sb/transports";
declare function xf:getEndpointFromInbound($inbound1 as element())
as xs:string {
let $myendpoint := $inbound1/./@name
return
fn:tokenize($myendpoint, '\$')[last()]
};
declare variable $inbound1 as element() external;
xf:getEndpointFromInbound($inbound1)
result=identifyFlowPS
This method is far better than using the transport/uri, since the latter is present only in HTTP Proxies, while the inbound/@name is present in ALL proxies.
No comments:
Post a Comment