Элемент 'xmlData' не может быть разрешен в действительном сообщении XML.Умер.в C: /Perl/site/lib/SOAP/Lite.pm строка 1412 - PullRequest
2 голосов
/ 13 апреля 2011

В качестве клиента у меня есть код ниже:

my $soap = SOAP::Lite
-> uri('$uri_address')
-> on_action( sub { join '/', '$uri_address', $_[1] } )
-> proxy('$url_address');

my $method = SOAP::Data->name('MyMethod')
->attr({xmlns => '$uri_address'});

#The parameters are held in @params
my @params = ( SOAP::Data->name(xmlData => $xml_string));

my $result = $soap
                        ->soapversion('1.2')
                        ->call($method => @params);

i    f ($result->fault)
{
   print $result->faultstring;
}
else
{
   print $result->result;
}

Я использовал +trace=>all, и в логе я получил:

SOAP::Transport::new: ()
SOAP::Serializer::new: ()
SOAP::Deserializer::new: ()
SOAP::Parser::new: ()
SOAP::Lite::new: ()
SOAP::Transport::HTTP::Client::new: ()
SOAP::Data::new: ()
SOAP::Data::new: ()
SOAP::Lite::call: ()
SOAP::Serializer::envelope: ()
SOAP::Serializer::envelope: SOAP::Data=HASH(0x35bb7f4) SOAP::Data=HASH(0x35bba94)
SOAP::Data::new: ()
SOAP::Data::new: ()
SOAP::Data::new: ()
SOAP::Data::new: ()
Element 'xmlData' can't be allowed in valid XML message. Died. at C:/Perl/site/lib/SOAP/Lite.pm line 1412.
SOAP::Lite::DESTROY: ()
SOAP::Serializer::DESTROY: ()
SOAP::Data::DESTROY: ()
SOAP::Data::DESTROY: ()
SOAP::Data::DESTROY: ()
SOAP::Data::DESTROY: ()
SOAP::Data::DESTROY: ()
SOAP::Data::DESTROY: ()
SOAP::Transport::DESTROY: ()
SOAP::Transport::HTTP::Client::DESTROY: ()
SOAP::Deserializer::DESTROY: ()
SOAP::Parser::DESTROY: ()

У кого-нибудь есть решение?

Заранее спасибо!

1 Ответ

2 голосов
/ 13 апреля 2011

XML §2.3

Имена, начинающиеся со строки «xml» […], зарезервированы для стандартизации в этой или будущих версиях этой спецификации.

...