Использование WSDL с абстрактными типами в PHP
Я работаю над интеграцией нашего веб-приложения с Microsoft Exchange 2007. Я использую веб-службы Exchange (EWS) для связи с Exchange Server. Тем не менее, я сталкиваюсь с некоторыми проблемами с WSDL. В WSDL есть несколько типов, которые содержат элементы абстрактных типов. Например:
SearchExpression является абстрактным типом. Существует несколько типов, расширяющих SearchExpression, например ExistsType:
...
Я ожидаю, что смогу сделать правильный вызов, который производит следующий XML:
...
Тем не менее, когда я пытаюсь сделать вызов с помощью PHP 's класс SoapClient Я получаю следующую ошибку:
Запрос не прошел проверку схемы: элемент 'http://schemas.microsoft.com/exchange/services/2006/types:SearchExpression» абстрактный или его тип абстрактный.
Если я изменю определение типа RestrictionType следующим образом, вызов сработает:
Это PHPОбработка SOAP не в состоянии правильно обрабатывать абстрактные типы в WSDL, или может быть что-то не так с самим WSDL? WSDL хранится локально, поэтому я могу внести в него изменения, если возникнет такая необходимость.
Спасибо за вашу помощь заранее.
Редактировать:
Я просто хотел уточнить, что я сам не формирую XML. Я использую следующий код, который должен создавать правильный XML:
$request->Restriction->IsGreaterThan->FieldURI->FieldURI =
'item:DateTimeReceived';
$request->Restriction->IsGreaterThan->FieldURIOrConstant
->Constant->Value = date('c', $last_checked_time);