使用XML :: Compile :: WSDL11时,如何导入WSDL所需的模式?

时间:2011-04-09 22:39:43

标签: xml perl soap xsd wsdl

我想使用XML::Compile::WSDL11为网络服务构建客户端。这是我使用的代码:

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

但是,某些操作会返回如下错误:

  

错误:找不到ref元素   '{http://www.w3.org/2001/XMLSchema}schema'   在......

AFAIC,这意味着缺少某些架构。从联机帮助页:

  

故意你必须明确加载   您需要从本地磁盘

的文件

如何确定WSDL所需的模式文件并自动导入它们?

1 个答案:

答案 0 :(得分:3)

所需的XSD文件附带XML::Compile。您可以像这样导入它:

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

有关可以通过这种方式导入的其他模式的列表,请参阅XML::Compile::Util