Как создать переменную SOAP абстрактного типа в PHP - PullRequest
0 голосов
/ 20 мая 2019

Мне нужно создать переменную абстрактного типа, чтобы передать ее в функцию SOAP.

Я успешно вызвал функцию с помощью WebServiceStudio, но не смог ее создать с помощью PHP.XML, созданный вызовом WebServiceStudio, выглядит так:

  <PositionSelection>
    <Drivers />
    <Vehicles />
    <Trailers />
    <DataSource>OBC</DataSource>
    <DateStrategySelection xsi:type="ChangedAfter">
      <Since>0001-01-01T00:00:00</Since>
    </DateStrategySelection>
    <IncludeCodriverInfo>false</IncludeCodriverInfo>
    <ExcludeActivities xsi:nil="true" />
  </PositionSelection>

Я делаю разные вещи, но безрезультатно.Моя последняя (глупая) попытка выглядит так:

    $sel = new stdClass();
    $sel->DataSource = 'OBC';
    $sel->IncludeCodriverInfo = true;
    $sel->DateStrategySelection = "xsi:type=ChangedAfter";
    $sel->DateStrategySelection->Since = $startDate;
    $this->customer->wsdlData->PositionSelection = $sel;

Полученный XML-код этой конструкции:

  <ns1:PositionSelection>
    <ns1:DataSource>OBC</ns1:DataSource>
    <ns1:DateStrategySelection/>
    <ns1:IncludeCodriverInfo>true</ns1:IncludeCodriverInfo>
    <ns1:ExcludeActivities xsi:nil="true"/>
  </ns1:PositionSelection>

Как видите, здесь отсутствует DateStrategySelection, и в результате появляется сообщение об ошибке.is: 'Серверу не удалось прочитать запрос.---> В документе XML есть ошибка (2, 622).---> Указанный тип является абстрактным: name = 'DateStrategySelection', namespace = 'http://transics.org', at http://transics.org'>.'

Как я могу создать эту вещь xsi: type?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...