2014-04-22 5 views
0

perl로 변환해야하는 유효한 SOAP 요청에서 다음 xml 출력을 얻었습니다. 나는 매개 변수를 추가하여 다른 비누 요청을 성공적으로 만들었지 만 이것은 문제가되는 xml 요소의 속성이 있다는 점에서 다릅니다. 이것은 요청입니다.SOAP :: Lite 웹 서비스 요청

<SendNotificationRequest clientIndicator="ISAAC_WFE" language="en" 
xsi:schemaLocation="http://edd.att.com/cnmeddservice EDD_Request.xsd"   xmlns="http://edd.att.com/cnmeddservice" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<ctype>TXT_TO_MGR</ctype> 
<ctn category="contact">917523xxxx</ctn> 
<data> 
<dataField name="MgrID">jz359m</dataField> 
<dataField name="SMSText">this is a test SMS message</dataField> 
</data> 
</SendNotificationRequest> 

이 작동하지 않습니다와 나는 '카테고리'과 XML 요소가 아닌 요소 자체의 속성 인 '이름'필드의 때문에 생각합니다. 이것이 내가 필요한 것에 가까운 것이면 알려주세요. Soap::Lite 페이지에서

$self->{method_name} = 'SendNotificationRequest'; 
$self->{method_attr} = { 
    "clientIndicator" => 'ISAAC_WFE', 
    "language" => "en", 
    "xsi:schemaLocation" => 'http://edd.att.com/cnmeddservice EDD_Request.xsd', 
    "xmlns" => 'http://edd.att.com/cnmeddservice', 
    "xmlns:xsi" => 'http://www.w3.org/2001/XMLSchema-instance', 
    "xmlns:cnm" => 'http://edd.att.com/cnmeddservice', 
}; 

my $data = SOAP::Data->name($self->{method_name})->attr($self->{method_attr}); 
my @params = ($data =>( 
SOAP::Data->type("")->name('ctype' => 'TXT_TO_MGR'), 
SOAP::Data->type("")->name('ctn')->attr({'category'})->value(SOAP::Data->value([ 
SOAP::Data->name('contact' => '917523xxxx')])), 
SOAP::Data->type("")->name(data => 
\SOAP::Data->type('')->value( 
SOAP::Data->type('')->name('dataField')->attr({'name'})->value(SOAP::Data->value([ 
SOAP::Data->name('MgrID' => 'jz359m')])), 
SOAP::Data->type('')->name('dataField')->attr({'name'})->value(SOAP::Data->value([ 
SOAP::Data->name('SMSText' => 'this is a test SMS message')])), 
)))); 
$self->{content} = $soap->call(@params); 
$self->{request} = $soap->serializer->envelope(method => $data, @params); 

답변

0

print SOAP::Lite 
    -> new(....) 
    -> call(SOAP::Data->name('method')->attr({xmlns => 'mynamespace'}) 
     => @parameters) 
    -> result; 

그래서 당신은 당신이 다음 SOAP URL을 게시 할 수있는 경우 쉽게

도움이됩니다

SOAP::Data->name('ctn')->attr({category =>'contact' }) 
    ->value(SOAP::Data->value('917523xxxx')) 

필요합니까