FW: Interop between PEAR-SOAP and Visual Studio - complex types
| From: | Artyom Kamshilin | Date: | Mon, 24 Oct 2005 16:41:06 +0000 |
| Subject: | FW: Interop between PEAR-SOAP and Visual Studio - complex types | ||
| Groups: | php.pear.general | ||
| Request: | Send a blank email to pear-general+get-21616@lists.php.net to get a copy of this message | ||
> > It worked when I change it manually - but I use SOAP_DISCO_Server()
> > class to generate WSDL - and it maps all my custom types to
> "xsd". I
> > found that the type namespace is assigned inside
> addMethodsFromMap(),
> > and is coming from $disco->_getTypeNs() method - and _getTypeNs()
> > fails to determine custom defined types, returning XSD for
> any type,
> > be it custom or not. Did I miss a certain way of defining a
> custom type, so that it maps to "tns"
> > automatically?
> >
> In my experience the implementation af Disco in PEAR_SOAP is
> useless if server uses nested types or use types with
> refences. You can overcome this limitation by constructing
> your own typemaps in your server but to the best of my
> knowledge it simple not worth the effort. Write you own WSDL.
>
> If you change to PHP5 and it's soap-ext there is work in
> progress of making a php2wsdl and wsdl2php which seems more reliable.
Well this script is intended to end up on a production server, and we're not
yet ready to move to PHP5. Meanwhile, I found a way to handle nested types -
a few simple modifications done to DISCO allowed it to pick "tns" instead of
"xsd" automatically as needed. After this modification, VS.NET was able to
import the resulting WSDL, including nested complex types and interops
pretty nicely. Can/should I somehow offer this modification for official
inclusion into DISCO code - if yes, how do I do that? I'd love to avoid
redoing the mods in case there's a need to upgrade PEAR package on my
server.
Thanks,
Artyom