#39179 [Opn->Fbk]: Abstract types not handled by SoapClient in WSDL mode
| From: | tony2001@php.net | Date: | Tue, 17 Oct 2006 17:52:43 +0000 |
| Subject: | #39179 [Opn->Fbk]: Abstract types not handled by SoapClient in WSDL mode | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-103637@lists.php.net to get a copy of this message | ||
ID: 39179
Updated by: tony2001@php.net
Reported By: jchernia at netsuite dot com
-Status: Open
+Status: Feedback
Bug Type: SOAP related
Operating System: Windows XP
PHP Version: 5.1.6
New Comment:
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5.2-win32-latest.zip
Previous Comments:
------------------------------------------------------------------------
[2006-10-17 17:47:11] jchernia at netsuite dot com
Description:
------------
This is very similar to bug 36575
http://bugs.php.net/bug.php?id=36575), but I
still see this in the
latest code.
If an operation takes an abstract type, I can not get SoapClient (in
WSDL mode) to produce one of the subclass instances of it, even if I
set type, etc.
Both Axis and .NET generated client classes will send the correct
subclass if you specify it.
NuSoap does not, but allows you to specify additional attributes in
WSDL mode.
Reproduce code:
---------------
Operation
<complexType name="GetRequest">
<sequence>
<element name="baseRef" type="platformCore:BaseRef"/>
</sequence>
</complexType>
<element name="get" type="platformMsgs:GetRequest"/>
XSD:
<complexType name="BaseRef" abstract="true">
<sequence>
<element name="name" type="xsd:string" minOccurs="0"/>
<!-- record name -->
</sequence>
</complexType>
<element name="baseRef" type="platformCore:BaseRef"/>
<complexType name="RecordRef">
<complexContent>
<extension base="platformCore:BaseRef">
<attribute name="internalId" type="xsd:string"/>
<attribute name="externalId" type="xsd:string"/>
<attribute name="type" type="platformCoreTyp:RecordType"/>
</extension>
</complexContent>
</complexType>
Expected result:
----------------
<ns1:get>
<ns1:baseRef internalId="17" type="customer"
xsi:type="ns1:RecordRef"/>
</get>
Either this, or the ability to set these attributes in WSDL mode.
Actual result:
--------------
<ns1:get>
<ns1:baseRef/>
</ns1:get>
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=39179&edit=1