#41004 [Asn->Csd]: minOccurs="0" and null class member variable
| From: | dmitry@php.net | Date: | Wed, 02 May 2007 09:38:46 +0000 |
| Subject: | #41004 [Asn->Csd]: minOccurs="0" and null class member variable | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-112163@lists.php.net to get a copy of this message | ||
ID: 41004
Updated by: dmitry@php.net
Reported By: w dot antoine at free dot fr
-Status: Assigned
+Status: Closed
Bug Type: SOAP related
Operating System: Windows 2000
PHP Version: 5.2.1
Assigned To: dmitry
New Comment:
Fixed in CVS HEAD and PHP_5_2.
Previous Comments:
------------------------------------------------------------------------
[2007-04-11 18:22:25] w dot antoine at free dot fr
Hi
The test case (the wsdl file and the client classes are available on:
http://w.antoine.free.fr/php-bug-41004-testCase.zip
------------------------------------------------------------------------
[2007-04-05 19:57:10] tony2001@php.net
Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves.
A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external
resources such as databases, etc. If the script requires a
database to demonstrate the issue, please make sure it creates
all necessary tables, stored procedures etc.
Please avoid embedding huge scripts into the report.
------------------------------------------------------------------------
[2007-04-05 12:12:10] w dot antoine at free dot fr
Description:
------------
I use the classmap option of the soap client constructed from the
WSDL.
In my wsdl file i have a complex type with elements where minOccurs=0
et maxOccurs=1.
When the corresponding class member is null, an empty element is send.
How i can tell the soap client to not send elements when minOccurs=0
and
the value is NULL?
The webservice server is apache axis
Reproduce code:
---------------
Complex type definition:
<complexType name="SimulateRequest">
<all>
<element name="product1Type" type="impl:Product1Type"/>
<element name="product1BankCardTypeCd"
type="impl:Product1BankCardTypeCd" minOccurs="0"/>
</all>
</complexType>
Php Code to call:
$simulationRequest[0]->setProduct1Type("CLA");
$simulationRequest[0]->setProduct1BankCardTypeCd(NULL);
Php class SimulateRequest extract:
class SimulateRequest{
private $product1Type ;
public function getProduct1Type(){
return $this->product1Type;
}
public function setProduct1Type($param){
$this->product1Type=$param;
}
private $product1BankCardTypeCd ;
public function getProduct1BankCardTypeCd(){
return $this->product1BankCardTypeCd;
}
public function setProduct1BankCardTypeCd($param){
$this->product1BankCardTypeCd=$param;
}
Expected result:
----------------
<ns1:simulationRequest>
<ns1:product1Type>REV</ns1:product1Type>
</ns1:simulationRequest>
Actual result:
--------------
<ns1:simulationRequest>
<ns1:product1Type>REV</ns1:product1Type>
<ns1:product1BankCardTypeCd/>
</ns1:simulationRequest>
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=41004&edit=1