0

PHP SOAP クライアントを使用して、次のように wsdl で定義された ID 要素を含むオブジェクトを送信しています。

<s:element minOccurs="1" maxOccurs="1" name="ID" type="s:int"/>

次のように、ID 値を含む配列を PHP SOAP クライアントに渡します。

ID' => string '' (length=0)

これにより、SOAP クライアントからの xml は次のようになります。

<ns1:ID>0</ns1:ID>

私はこれが欲しい:

<ns1:ID></ns1:ID>

このように ID の配列値を null に設定しようとしましたが、それでも値が 0 の xml が生成されます。

 $myarray["ID"] = null;

質問: PHP SOAP クライアントを使用して int 要素の null 値を送信する方法はありますか?

更新 「カラマズーのネイト」が示唆するように、 $myarray["ID"] = null; を変更しました。に:

$myarray["ID"] = array('_' => '','xsi:nil' => "true");

これにより、次のような別の配列である配列要素 'ID' が生成されました。

'ID' => 
array (size=2)
  '_' => ''
  'xsi:nil' => string 'true'

xml は次のようになります。

<ns1:ID>1</ns1:ID> //where did the 1 come from?

わかりやすくするために、PHP SOAP クライアントの使用方法を次に示します。

$client->SomeFunction(array('application' => $myarray));

SOAP クライアントに渡される配列は、XML 要素名として使用される要素名に関連付けられているため、渡される配列の ID 要素内の配列は何らかの形で 1 を返していると思います。しかし、いずれにしても 'xsi:ni ;' XML のどこにも表示されません。

4

1 に答える 1

0

xsi:nil="true"ID 要素に属性を追加できますか? 何かのようなもの

$myarray["ID"] = array(
            '_' => '',
            'xsi:nil' => "true");

ソース: http://radu.cotescu.com/how-to-send-null-values-in-soapui-requests/

于 2013-06-13T19:19:53.520 に答える