開発中の Web サービスからの SOAP 出力を見ていると、興味深いことに気付きました。
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Body>
<ns1:CreateEntityTypesResponse xmlns:ns1="http://somedomain.com/wsinterface">
<newKeys>
<value>1234</value>
</newKeys>
<newKeys>
<value>2345</value>
</newKeys>
<newKeys>
<value>3456</value>
</newKeys>
<newKeys xsi:nil="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<newKeys xsi:nil="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<errors>Error1</errors>
<errors>Error2</errors>
</ns1:CreateEntityTypesResponse>
</soapenv:Body>
</soapenv:Envelope>
nil である 2 つの newKeys 要素があり、両方の要素が xsi の名前空間参照を挿入します。名前空間参照が 1 回だけ送信されるように、その名前空間を soapenv:Envelope 要素に含めたいと思います。
私は WSDL2Java を使用してサービス スケルトンを生成しているため、Axis2 API に直接アクセスすることはできません。