我使用的是工作與了SoapUI但不與PHP肥皂一個WSDL文件-solved- PHP SOAP:屬性已經在WSDL文件中定義
代碼:
<?php
$WSDL = new SoapClient('Foo/bar.wsdl');
?>
堆棧跟蹤:
Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing Schema: attribute 'http://url.com/LGW/2009/:unitOfMeasure' already defined in Foo.php:2 Stack trace: #0 Foo.php(2): SoapClient->SoapClient('Foo/bar.wsdl', Array) #1 {main} thrown in Foo.php on line 2
任何人都知道PHP-SOAP庫試圖告訴我什麼。 WSDL文件應該是有效的(至少PEAR SOAP和SoapUI都可以正常工作)。
WSDL包含幾個<s:attribute ref="tns:unitOfMeasure"/>
-lines所以我猜測它指的是那些,但真的不知道如何解決這個問題?
我認爲這很清楚,該屬性已經定義。它甚至可以告訴你在哪裏。 – Peon
我知道,但爲什麼這是一個問題?相同的文件驗證與PEAR :: SOAP和SoapUI確定 – sarte
這個問題解決了。 WSDL畢竟無效。通知WSDL生成多個相同的名稱空間屬性。一些SOAP庫似乎驗證了它是好的XML。 PHP不會 – sarte