Передать массив с SOAP-клиента на сервис - как?

GRIG

Новичок
Пишу SOAP-клиента, который должен работать с некоторым давно существующим SOAP-сервисом. При этом хотеть чего-то от сервиса - это за пределами моих полномочий. Как он существует - так и надо с ним работать.
В ходе работы клиент должен сделать запрос к собственной базе данных и передать результаты на сервис.
Нужно получить что-то вроде такого:
PHP:
... какие-то объемлющие теги ...
  <Answer>
    <Data>
      <TicketDatum>
         ... первая найденная строка из базы данных ...
      </TicketDatum>
      <TicketDatum>
         ... вторая найденная строка из базы данных ...
      </TicketDatum>
      ...
    </Data>
  </Answer>
... еще какие-то теги и закрытие всех тегов ...
Пробую так:
PHP:
$sql = "SELECT ... FROM ... WHERE .. ORDER BY ... "
$stmt = ociparse( $conn, $sql );
$r = ociexecute( $stmt );
$cnt = ocifetchstatement( $stmt, $results, 0, -1, OCI_FETCHSTATEMENT_BY_ROW  );

$tickets = Array();
foreach( $results as $row )
{
  $tmp = new TicketDatum( $row['col1'], $row['col2'], ... );
  $tickets[] = new SOAPVar( $tmp, SOAP_ENC_OBJECT, NULL, NULL, "TicketDatum", NULL );
}
$tmp1 = new Data( $tickets );
$ticketData = new SOAPVar( $tmp1, SOAP_ENC_ARRAY, NULL, NULL, "Data", NULL );
$tmp2 = new Answer( $ticketData );
$answer = new SOAPVar( $tmp, SOAP_ENC_OBJECT, NULL, NULL, "Answer", NULL );
Но получается что-то не то что нужно:
PHP:
... что-то снаружи ...
  <Answer>
    <Data>
      <TicketDatum>
        <SOAP-ENC:Struct xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
          ... первая запись из базы ... 
        </SOAP-ENC:Struct>
        <SOAP-ENC:Struct xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
          ... вторая запись из базы ... 
        </SOAP-ENC:Struct>
      </TicketDatum>
    </Data>
  </Answer>
Чего я сделал неправильно?
 
Сверху