【发布时间】:2012-10-23 12:49:02
【问题描述】:
我正在使用一个 wsdl 文件,它与 SoapUI 一起工作,但不与 PHP Soap 一起工作
代码:
<?php
$WSDL = new SoapClient('Foo/bar.wsdl');
?>
堆栈跟踪:
致命错误:未捕获的 SoapFault 异常:[WSDL] SOAP-ERROR: Parsing 架构:属性 'http://url.com/LGW/2009/:unitOfMeasure' 已经定义 在 Foo.php:2 堆栈跟踪:#0 Foo.php(2): SoapClient->SoapClient('Foo/bar.wsdl', Array) #1 {main} 抛出 foo.php上线 2
任何人都知道 PHP-SOAP 库试图告诉我什么。 WSDL 文件应该是有效的(至少 PEAR SOAP 和 SoapUI 都可以正常工作)。
WSDL 包含几个 <s:attribute ref="tns:unitOfMeasure"/> -lines 所以我猜它指的是那些,但真的不明白如何解决这个问题......
【问题讨论】:
-
我认为很清楚,该属性已经定义。它甚至会告诉你在哪里。
-
我知道,但为什么会出现这个问题?相同的文件使用 PEAR::SOAP 和 SoapUI 验证 Ok
-
这个解决了。 WSDL 毕竟是无效的。 WSDL 通知生成多个相同的命名空间属性。一些 SOAP 库似乎将其验证为良好的 XML。 PHP 没有
-
@sarte:请将解决方案发布为您自己问题的答案,并尽可能接受。
标签: php attributes wsdl defined