my $soap = SOAP::Lite -> ns( 'http://www.w3.org/2001/XMLSchema-instance', 'xsi' ) -> ns( 'urn::sdp:profilemanager:requestmanager', 'a' ) -> ns( 'urn::sdp:profilemanager:contract:110308', 'b' ) -> uri($uri) -> on_action( sub { join '.ProcessMessage', 'urn::sdp:profilemanag +er:requestmanager:100818.ProfileScopeServiceContract', $_[1] } ) -> proxy($url); And here I assume I'm specifying the name of the first element with the Soap Body - Request. my $method = SOAP::Data->name('Request') ->attr({xmlns => 'urn::sdp:profilemanager:profilemanagerrequestman +ager:100818'});