元素标记中的PHP nuSOAP complexType

时间:2015-09-30 13:01:46

标签: php nusoap complextype

我必须构建以下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重建它将是最后一个最后一个选项。

1 个答案:

答案 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')

)

);