2010-08-05 54 views
0

這是我想用SOAP :: Lite建模的SOAP文檔。Perl + SOAP :: Lite

<SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<SOAP-ENV:Body> 
<GetOrderByPartnerOrderID xmlns="http://api.geotrust.com/webtrust/query"> 
    <Request> 
     <QueryRequestHeader> 
      <PartnerCode>partnercode</PartnerCode> 
      <AuthToken> 
       <UserName>username</UserName> 
       <Password>password</Password> 
      </AuthToken> 
     </QueryRequestHeader> 
     <PartnerOrderID>partnerid</PartnerOrderID> 
    </Request> 
</GetOrderByPartnerOrderID> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

這是我用來模擬此文檔的Perl代碼。

my $params = SOAP::Data->name("Request" => 
       \SOAP::Data->value => (
        \SOAP::Data->name("QueryRequestHeader" => 
         \SOAP::Data->value(
          SOAP::Data->name("PartnerCode" => $partnercode), 
          SOAP::Data->name("AuthToken" => 
          \SOAP::Data->value(
           SOAP::Data->name("UserName" => $username), 
           SOAP::Data->name("Password" => $password) 
          ) 
          ) 
         ) 
        ), 
        \SOAP::Data->name("PartnerOrderID" => $poid) 
       ); 

但是,(我使用SOAP ::精簡版與軌跡)這個代碼生成的SOAP文檔如下:

<SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<SOAP-ENV:Body> 
    <GetOrderByPartnerOrderID xmlns="http://api.geotrust.com/webtrust/query"> 
     <Request> 
      <QueryRequestHeader> 
       <PartnerCode>partnercode</PartnerCode> 
       <AuthToken> 
        <UserName>username</UserName> 
        <Password>password</Password> 
       </AuthToken> 
      </QueryRequestHeader> 
     </Request> 
     <Request> 
      <PartnerOrderID>partnerid</PartnerOrderID> 
     </Request> 
    </GetOrderByPartnerOrderID> 
    </SOAP-ENV:Body> 
    </SOAP-ENV:Envelope> 

出於某種原因,它會關閉請求標籤,然後再打開它。它似乎應該是一個簡單的解決方案,但我已經嘗試了所有我能想到的並且無法解決的問題。任何幫助將不勝感激。

回答

1

想通了。有\SOAP::Data->value => (而不是\SOAP::Data->value(

相關問題