0

我已经定义了一个 SOAP webservice,它的 xsd 类型定义了一个不可重复的字段。

如果我提供了该字段的多次出现,我希望 PHPSoap 抛出异常或错误,但它会将其转换为数组(如果允许重复,则如预期的那样)。

这是 WSDL 的 XSD 部分的摘录:

<xsd:complexType name="OrderItem">
    <xsd:sequence>
        <xsd:element type="xsd:string" name="orderId" maxOccurs="1"/> <!-- maxOccurs is useless as default value is 1 but to be suremore than ... -->
        <xsd:element type="xsd:string" name="sku"/>
    </xsd:sequence>
</xsd:complexType>

如果我发送此请求消息,我会在 SOAP 层后面得到一个数组(我预计会出现异常):

<OrderItem>
    <orderId>12345685</orderId>
    <sku>SKU123456</sku>
    <orderId>12345686</orderId>
</OrderItem>

这是收到的 OrderItem 对象的 var_dump:

OrderItem::__set_state(array(
  'orderId' => 
    array (
      0 => '12345685',
      1 => '12345686',
   ),
  'sku' => 'SKU123456',

)

这是正常的吗?

4

0 回答 0