Проблема клиента PHP Soap при импорте схемы из WSDL: исключение Uncaught SoapFault: [WSDL] SOAP-ERROR: схема синтаксического анализа: невозможно импортировать схему из

Я использую протокол Soap с WSDL на стороне сервера. По какой-то причине PHP не может импортировать схему. Но ссылки на импорт схемы открываются в браузере без проблем. Ссылки schema — это ссылки https, но я включил openssl в PHP.

Код PHP:

<?php

$client = new SoapClient("https://domain:460/path/RemittanceRequest1.wsdl");

Ошибка

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing Schema: can't import schema from 'https://domain:460/Service/mex2.xsd', unexpected 'targetNamespace'='http://schemas.datacontract.org/2004/07/RMTService' in E:\xampp\htdocs\wsdl\GetCurrencyCodesReq.php:3

Версия PHP – 7.0.4


person Varun Kakumani    schedule 21.04.2016    source источник


Ответы (1)


У вас есть импортированный файл xsd?

Обычно это связано с несоответствием между атрибутами: namespace из тега <import> и targetNamespace из тега схемы в импортированном файле xsd.

person Christopher Arzur    schedule 21.04.2016
comment
WSDL можно найти здесь: royalexchange.co.in:460/RoyalMoneyCashnBankService/ - person Varun Kakumani; 21.04.2016
comment
Попробуйте сначала изменить значение schemaLocation только с именем файла: mex.xsd. Согласно документации ссылка Этот атрибут имеет два значения, разделенных пробелом. Первое значение — это используемое пространство имен. Второе значение — это расположение XML-схемы, используемой для этого пространства имен. - person Christopher Arzur; 21.04.2016
comment
Не могли бы вы привести пример? Я не понял. - person Varun Kakumani; 21.04.2016
comment
Замените <xsd:import schemaLocation="https://royalexchange.co.in:460/RoyalMoneyCashnBankService/mex.xsd" namespace="http://tempuri.org/"/> на <xsd:import schemaLocation="https://royalexchange.co.in:460/RoyalMoneyCashnBankService mex.xsd" /> - person Christopher Arzur; 21.04.2016