0

繰り返し不可のフィールドを定義する xsd タイプで SOAP Web サービスを定義しました。

このフィールドを何度も指定すると、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