修改xquery后我无法获得BindVariables(vairblename和绑定)

时间:2016-01-15 11:12:38

标签: xquery osb

修改xquery后我无法获得BindVariables(vairblename和绑定),我添加了一个变量,后来它显示空的BindVariables。enter image description here

添加一个变量后,它只显示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)

1 个答案:

答案 0 :(得分:1)

检查是否写了类似 - var xqueryResVariable := concat (airbookRs,createDeadheadl,newVaribale)(其中xqueryResVariable是从xquery发出的响应),使newVaribale在绑定部分中可见。

概念是 - 如果你没有使用任何变量来形成xquery将返回的响应(xml),那么所有未使用的变量都不会出现在绑定部分中。