我必须构建以下WSDL结构:
<xs:element name="sobre">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="encabezado" type="tns:encabezadoSobre"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="cuerpo" type="tns:cuerpoSobre"/>
</xs:sequence>
</xs:complexType>
</xs:element>
但看起来nuSOAP架构不允许我这样做。
使用以下代码:
$server->wsdl->addComplexType(
'sobre',
'complexType',
'struct',
'sequence',
'',
array(
'encabezado' => array('name' => 'aem:encabezado', 'type' => 'tns:encabezadoSobre'),
'cuerpo' => array('name' => 'aem:cuerpo' , 'type' => 'tns:cuerpoSobre')
)
);
我有以下结构:
<xsd:complexType name="sobre">
<xsd:sequence>
<xsd:element name="encabezado" type="tns:encabezadoSobre"/>
<xsd:element name="cuerpo" type="tns:cuerpoSobre"/>
</xsd:sequence>
</xsd:complexType>
我在here中发现了类似的问题,但那里的答案并没有帮助我。
总而言之,我需要做的是创建一个名为“sobre”的元素,并在此元素中创建一个complexType。
我平均有20个具有相同问题的web服务,所以使用另一个框架或php native soap重建它将是最后一个最后一个选项。
答案 0 :(得分:0)
试试这个:
$server->wsdl->addComplexType(
'sobre',
'complexType',
'struct',
'sequence',
'',
array(
'encabezado' => array('name' => 'aem:encabezado', 'minOccurs' => '0', 'maxOccurs' => '1', 'type' => 'tns:encabezadoSobre'),
'cuerpo' => array('name' => 'aem:cuerpo', 'minOccurs' => '0', 'maxOccurs' => 'unbounded', 'type' => 'tns:cuerpoSobre')
)
);