修改xquery后我无法获得BindVariables(vairblename和绑定),我添加了一个变量,后来它显示空的BindVariables。
添加一个变量后,它只显示2个变量,它应该显示3个变量。任何人都可以帮助解决这个问题。
这是我正在使用的xquery:
`(:: pragma bea:global-element-parameter parameter="$createDeadheadReservationRQ1" element="ns1:CreateDeadheadReservationRQ" location="../../wsdl/imported/CreateDeadheadReservation/2.0/CreateDeadheadReserv ationMsg.xsd" ::)
(:: pragma bea:global-element-return element="ns2:PassengerDetailsRQ" location="../../wsdl/imported/PassengerDetailsRQ/v2.0.0/PassengerDetails2.0.0RQ. xsd" ::)
(:: pragma bea:global-element-parameter parameter="$CreateDeadHeadReservationAdapterSelectRS" element="ns3:RefTickettypeCollection" location="../../wsdl/CreateDeadHeadReservationAdapter/CreateDeadHeadReservationA dapter_table.xsd" ::)
declare namespace ns2 = "http://webservices.sabre.com/sabreXML/2011/10";
declare namespace ns3 ="http://xmlns.oracle.com/pcbpel/adapter/db/top/CreateDeadHeadReservationAdapter ";
declare namespace ns1 = "urn:www.virginaustralia.com:model:schema:reservation-management";
declare namespace flightCategory = "urn:www.virginaustralia.com:model:schema:network-operations";
declare namespace xf = "http://tempuri.org/CreateDeadheadReservationOSB/xquery/request/CreateDeadheadRe servationRQ_to_PassengerDetailsRQ/";
declare variable $rankCode_DL3UJ :=("CPT","FO","FM");
declare variable $rankCode_DL4UJ :=("CRFO","CL");
declare variable $type :=("DOM","ISH");
declare function local:getboardingPriorityCode($flightType as element(), $rankCode as element()) as xs:string
{
if(data($flightType) = $type) then
'DHD'
else
if(data($rankCode) = $rankCode_DL3UJ) then
'DL3UJ'
else if(data($rankCode) = $rankCode_DL4UJ) then
'DL4UJ'
else
'DL5UJ'
};
declare function local:getPreferredClass($flightType as element(flightCategory:Code)) as xs:string
{
if(data($flightType) = $type) then
'Y'
else
'J'
};
declare function xf:createDeadheadReservationRQ-to- PassengerDetailsRQ($createDeadheadReservationRQ1 as element(ns1:CreateDeadheadReservationRQ),
$airBookRS as element(flightCategory:GetFlightCategoryRS),$CreateDeadHeadReservationAdapterSel ectRS as element(ns3:RefTickettypeCollection))
as element(ns2:PassengerDetailsRQ) {
<ns2:PassengerDetailsRQ Version = "2.0.0">
<ns2:SpecialReqDetails>
<ns2:AddRemarkRQ>
<ns2:RemarkInfo>
<ns2:Remark Type = "General">
<ns2:Text>{ data($createDeadheadReservationRQ1/ns1:SpecialRequestDetails/ns1:Remark) }</ns2:Text>
</ns2:Remark>
</ns2:RemarkInfo>
</ns2:AddRemarkRQ>
<ns2:SpecialServiceRQ>
<ns2:SpecialServiceInfo>
<ns2:SecureFlight SegmentNumber = "A" SSR_Code = "DOCS">
<ns2:PersonName DateOfBirth = "{ data($createDeadheadReservationRQ1/ns1:PassengerInfo/ns1:DateOfBirth) }"
Gender = "{ data($createDeadheadReservationRQ1/ns1:PassengerInfo/ns1:Gender) }"
NameNumber = "1.1">
<ns2:GivenName>{ data($createDeadheadReservationRQ1/ns1:PassengerInfo/ns1:PassengerName/ns1:GivenName) }</ns2:GivenName>
<ns2:Surname>{ data($createDeadheadReservationRQ1/ns1:PassengerInfo/ns1:PassengerName/ns1:Surname) }</ns2:Surname>
</ns2:PersonName>
<ns2:VendorPrefs>
<ns2:Airline Hosted = "true"/>
</ns2:VendorPrefs>
</ns2:SecureFlight>
<ns2:Service SSR_Code = "{ data($createDeadheadReservationRQ1/ns1:SpecialRequestDetails/ns1:RankBasedSSR) }">
<ns2:VendorPrefs>
<ns2:Airline Hosted = "true"/>
</ns2:VendorPrefs>
</ns2:Service>
</ns2:SpecialServiceInfo>
</ns2:SpecialServiceRQ>
</ns2:SpecialReqDetails>
<ns2:TravelItineraryAddInfoRQ>
<ns2:AgencyInfo>
<ns2:Ticketing TicketType = "{fn:concat('7PS-', local:getboardingPriorityCode($airBookRS/flightCategory:ServiceType/flightCategory:Code, $createDeadheadReservationRQ1/ns1:PassengerInfo/ns1:RankCode), local:getPreferredClass($airBookRS/flightCategory:ServiceType/flightCategory:Code))}"/>
</ns2:AgencyInfo>
<ns2:CustomerInfo>
<ns2:PersonName>
<ns2:GivenName>{
xs:string(fn:concat($createDeadheadReservationRQ1/ns1:PassengerInfo/ns1:PassengerName/ns1:GivenName,' ',
$createDeadheadReservationRQ1/ns1:PassengerInfo/ns1:PassengerName/ns1:Title))
}</ns2:GivenName>
<ns2:Surname>{ xs:string($createDeadheadReservationRQ1/ns1:PassengerInfo/ns1:PassengerName/ns1:Surname) }</ns2:Surname>
</ns2:PersonName>
</ns2:CustomerInfo>
</ns2:TravelItineraryAddInfoRQ>
</ns2:PassengerDetailsRQ>
};
declare variable $createDeadheadReservationRQ1 as element(ns1:CreateDeadheadReservationRQ) external;
declare variable $airBookRS as element(flightCategory:GetFlightCategoryRS) external;
declare variable $CreateDeadHeadReservationAdapterSelectRS as element(ns3:RefTickettypeCollection) external;
xf:createDeadheadReservationRQ-to- PassengerDetailsRQ($createDeadheadReservationRQ1, $airBookRS, $CreateDeadHeadReservationAdapterSelectRS)
答案 0 :(得分:1)
检查是否写了类似 - var xqueryResVariable := concat (airbookRs,createDeadheadl,newVaribale)
(其中xqueryResVariable是从xquery发出的响应),使newVaribale在绑定部分中可见。
概念是 - 如果你没有使用任何变量来形成xquery将返回的响应(xml),那么所有未使用的变量都不会出现在绑定部分中。