Как я могу импортировать схемы, требуемые WSDL при использовании XML :: Compile :: WSDL11? - PullRequest
1 голос
/ 10 апреля 2011

Я хочу построить клиент для веб-сервиса, используя XML::Compile::WSDL11.Вот код, который я использую:

my $wsdl = XML::Compile::WSDL11->new($wsdlfile);
my $call = $wsdl->compileClient('MyMethod', port => 'MyPort');
$call->();

Однако некоторые операции возвращают ошибки, подобные этой:

error: невозможно найти элемент ref '{http://www.w3.org/2001/XMLSchema}schema' at ...

AFAIC, это означает, что некоторые схемы отсутствуют.С man-страницы:

специально вы должны явно загрузить нужные вам файлы с локального диска

Как определить, какие файлы схемы требуются WSDL, и импортировать ихавтоматически

1 Ответ

3 голосов
/ 12 апреля 2011

Требуемый файл XSD поставляется с XML::Compile.Вы можете импортировать его следующим образом:

my $wsdl = XML::Compile::WSDL11->new($wsdlfile);
$wsdl->importDefinitions('http://www.w3.org/2001/XMLSchema');

См. XML::Compile::Util для списка других схем, которые можно импортировать таким образом.

...