схема синтаксического анализа soapclient: не удается импортировать схему из

#php #soap-client

#php #soap-клиент

Вопрос:

Пример скрипта :

 try {
        $client = new SoapClient("http://webservices.sabre.com/wsdl/sabreXML1.0.00/GHT/HotelDirectUpdate.wsdl", array("trace" => 0));
    } catch (Exception $ex) {
        var_dump($ex->faultcode, $ex->faultstring, $ex->faultactor, $ex->detail, $ex->_name, $ex->headerfault);
    }
  

Вывод :

 string(4) "WSDL"
string(216) "SOAP-ERROR: Parsing Schema: can't import schema from 'http://webservices.sabre.com/wsdl/sabreXML1.0.00/GHT/HotelDirectUpdateRQ.xsd', unexpected 'targetNamespace'='http://webservices.sabre.com/hgc/hoteldirectupdaterq'"
NULL
NULL
NULL
NULL
  

Я знаю, что файл wsdl верен. Я проверил файл wsdl через http://www.soapclient.com/interop/interopTest.html и все выглядит нормально. но когда я вызываю файл wsdl из php, он выдает указанную выше ошибку.

Есть идея / совет?

Ответ №1:

Мы также обнаружили, что SoapClient не способен обрабатывать определенные схемы, хотя и не с той ошибкой, которую вы получаете. Наименее плохим решением, по-видимому, является использование Java для взаимодействия со службой SOAP, с помощью PHP-Java Bridge или Gearman для взаимодействия PHP-Java.

Ответ №2:

В некоторых версиях PHP известны некоторые ошибки, возможно, вы используете более старую версию PHP?

Комментарии:

1. это не должно быть проблемой, последние проблемы, которые я заметил, были, по-моему, в ранних версиях 5.0.0.

2. аналогичная проблема с PHP версии 5.2.13… возможно, проблема в версии? :-S