#!/usr/bin/perl -w use strict; # -- Nested attributes use SOAP::Lite proxy => ['mailto:reto@example.com', smtp => 'localhost', From => 'reto@tertius.example.com', Subject => 'SOAP message -> ns(urn:foo, urn), prefix=urn'] # SMTP transport , ; my $client = SOAP::Lite ->readable(1) ; $client->ns('urn:catalogue.eshop.ws.crm.example.net', 'urn'); # Add namespace my $temp_elements; my @params = (); my $method = SOAP::Data->name('AddItemRequest')->attr({ xmlns => 'urn:catalogue.eshop.ws.crm.example.net'}, 'urn'); $temp_elements = SOAP::Data ->name("TargetStaging" => 'foo') ->type(""); push(@params, $temp_elements); $temp_elements = SOAP::Data ->name("urn:Item" => \SOAP::Data->value( SOAP::Data->name("urn:type" => 'ADSL_CF_HARDWARE'), SOAP::Data->name("urn:external_id" => 4711), SOAP::Data->name("urn:category" => \SOAP::Data->name("name" => 'ADSL_CF'), ), SOAP::Data->name("urn:attribute" => \SOAP::Data->value( SOAP::Data->name("key" => "ORDERBY"), SOAP::Data->name("value" => 1) ) ), SOAP::Data->name("urn:attribute" => \SOAP::Data->value( SOAP::Data->name("key" => "LINE_TYPE"), SOAP::Data->name("value" => 'analog') ) ), ) ) ; push(@params, $temp_elements); my $response = $client->call($method => @params); # my $response = $client->AddItemRequest(@params);