Issue

ZF-9214: Allowing non complex types (WSDL XSD) in WSDL output.

Issue Type: Patch Created: 2010-02-19T07:38:51.000+0000 Last Updated: 2012-11-20T21:37:48.000+0000 Status: Open Fix version(s): Reporter: Richard Quadling (rquadling) Assignee: None Tags: - Zend_Soap_Wsdl

Related issues: Attachments: - w3c.php

Description

Currently, the types that are catered for within the PHP->Zend->WSDL process are limited to PHP types and complex types comprised on PHP types.

Considering that the WSDL file can act as a contract between the client and the server, allowing for the standard types as defined in http://w3.org/TR/xmlschema11-2/… would seem to be a worthwhile step.

The patch I've attached allows the server to supply a class name to Zend_Soap_AutoDiscover. The default is Zend_Soap_Wsdl, so backwards compatability is maintained.

The class must be a subclass of Zend_Soap_Wsdl. By overriding Zend_Soap_Wsdl::getType() in the subclass, you can allow for additional types.

In my case, a subset of the W3C XSD data types.

This allows the WSDL file to be generated with the W3C XSD types being used in the DocBlocks for the SOAP service.

It does NOT deal with the content of the properties purporting to be these types. It is just to make a WSDL file.

Comments

Posted by Richard Quadling (rquadling) on 2010-02-19T08:00:03.000+0000

This patch will allow you to subclass Zend_Soap_Wsdl and supply the name of the subclass to Zend_Soap_AutoDiscover to allow you to define additional non-complex types by overriding Zend_Soap_Wsdl::getType() and calling the parent::getType() if the requested type is not known.

Posted by Richard Quadling (rquadling) on 2010-02-19T08:03:27.000+0000

Typo

Posted by Richard Quadling (rquadling) on 2010-02-19T08:04:25.000+0000

Example of a Zend_Soap_Wsdl subclass.

Posted by Richard Quadling (rquadling) on 2010-02-19T08:06:35.000+0000

Example usage (just a snippet) of the use of the $wsdlClass parameter in the constructor of Zend_Soap_AutoDiscover.

Have you found an issue?

See the Overview section for more details.

Copyright

© 2006-2019 by Zend, a Rogue Wave Company. Made with by awesome contributors.

This website is built using zend-expressive and it runs on PHP 7.

Contacts