Zend Soap: структура сложного типа не отображается в SoapUI / WSDL, как ожидалось - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть сложный тип, определенный следующим образом в моем служебном файле

/**
 * Class EmployerJob
 */
class EmployerJob{
/** @var string $job_title */
public $job_title;
/** @var string $job_description */
public $job_description;
...
}

Тогда я называю коллекцию этого EmployerJob параметром в моей другой сервисной функции следующим образом:

/**
 * Create Employer
 *
 * @param \common\models\EmployerJob[] $jobs
 *
 * @return \common\models\EmployerResponse $response
 */
public function employerCreate($jobs = null){ ... }

Все классно и работает нормально, но в wsdl-файле не отображается подструктура для $jobs элемента

<xsd:element name="employerCreate">
  <xsd:complexType>
   <xsd:sequence>
   <xsd:element name="jobs" type="tns:ArrayOfEmployerJob"nillable="true"/>
   </xsd:sequence>
  </xsd:complexType>
</xsd:element>

Он отображается как tns:ArrayOfEmployerJob (также часть wsdl) вместо подструктуры прямо под ним. И это тоже хорошо. Но мне нужно показать подструктуру, как показано ниже:

<xsd:element name="employerCreate">
  <xsd:complexType>
   <xsd:sequence>
   <xsd:element name="jobs" type="tns:ArrayOfEmployerJob"nillable="true">
    <EmployerJob>
     <job_title></job_title>
     <job_description></job_description>
    </EmployerJob>
   </jobs>
   </xsd:sequence>
  </xsd:complexType>
</xsd:element>

Что я могу изменить в коде, чтобы сделать его как выше? Помните, мне нужна указанная выше структура для валидаций на валидациях SAP.

...