Zend Soap:复杂类型结构未按预期显示在SoapUI / WSDL中

时间:2018-09-04 12:19:30

标签: web-services soap wsdl soapui zend-soap

我在服务文件中定义了一个复杂的类型

/**
 * 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){ ... }

很酷,一切正常,但是$jobs元素的wsdl文件中没有子结构

<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验证。

0 个答案:

没有答案