Re: [PHP] Re: DocBlocking SOAP types.

2010-02-17 Thread Richard Quadling
On 16 February 2010 18:20, Nathan Rixham nrix...@gmail.com wrote:
 Richard Quadling wrote:
 On 16 February 2010 16:41, Nathan Rixham nrix...@gmail.com wrote:
 Nathan Rixham wrote:
 Richard Quadling wrote:
 Hi.

 I want to docblock a set of properties to be xml primitive datatypes [1].

 Considering that this is the correct type for the XML/SOAP/WSDL
 communication, how do I bypass Zend_WSDL / Zend_AutoDiscovery so
 that these types go through cleanly. I know that as far as PHP is
 concerned, the type is loose and it will be my responsibility to
 encode the values accordingly. It is in the WSDL generation, and hence
 the docblocks, that I want these types to be valid.

 I think I can achieve this by the following steps.

 1 - Create a new concrete class from the
 Zend_Soap_Wsdl_Strategy_Abstract abstract class, say
 Zend_Soap_Wsdl_Strategy_W3C (as the type are defined by W3C).
 2 - Implement the addComplexType() method to validate the type against
 the list and return it if is OK.

 What I am stuck on is how do I cascade from the new class so that I
 can still drop back to the Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex.

 I think the Zend_Soap_Wsdl_Strategy_Composite is of use here, but I
 can't quite work out how to use it.

 Any ideas would be appreciated.

 Regards,

 Richard Quadling.

 [1] http://www.w3.org/TR/xmlschema11-2/#built-in-primitive-datatypes

 AFAIK the Zend Soap WSDL accessor already maps up php types to xsd
 types; a PHP String maps to an xsd:string, integer to xsd:int and so forth.

 XML schema 1.1 datatypes are pretty much the same as; and backwards
 compatible with the current xml schema datatypes (which are still the
 recommended standard, as 1.1 isn't a recommendation yet, work in
 progress) and use the same namespace. Thus the existing implementation
 should be xml w3c complaint both now and in the future.

 All that's said purely based on the zend docs [1] and not through
 practically using Zend_Soap_Wsdl_* though!

 sigh.. [1] = http://framework.zend.com/manual/en/zend.soap.wsdl.html
 (specifically Type mapping) - might make more sense now!




 I think you've missed the point.

 totally!

 I want to tell the outside world, via the WSDL,  that property X is an
 xsd:datetime (hmm ok, for that to make sense forget PHP's DateTime
 builtin class)

 How do I do that using AutoDiscovery?

 PHP doesn't have all the types that I can ask for.

 If I use PHP's types, they are all strings. So any junk can be put in.

 The consumer of the service isn't PHP, but (I believe) C#. So strongly typed.


 It isn't about mapping PHP types  to W3C types.

 and now i completely follow after downloading the Zend code - which
 strategy are you currently using / need to use? either way I guess the
 two simplest approaches would either be:

 1: create a class which extends
 Zend_Soap_Wsdl_Strategy_YOURCURRENTSTRATEGYCHOICE , and implement the
 addComplexType() method adding in all the xsd extra types and then
 calling parent::addComplexType when not found.

 2: create a class which extends Zend_Soap_Wsdl and overrides the
 getType() method adding in all the xsd extra types and then calling
 parent::getType when not found.

 regards!

 --
 PHP General Mailing List (http://www.php.net/)
 To unsubscribe, visit: http://www.php.net/unsub.php



I've extended the ArrayOfComplexType strategy as this is the most
common one for me.

Overwrote the addComplexType to parse the type (xsd: where  is
in the known list).

Generates the WSDL just fine.

Now need to see what the client can do with that.

(Tomorrow).


-- 
-
Richard Quadling
Standing on the shoulders of some very clever giants!
EE : http://www.experts-exchange.com/M_248814.html
EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498r=213474731
ZOPA : http://uk.zopa.com/member/RQuadling

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] Re: DocBlocking SOAP types.

2010-02-16 Thread Nathan Rixham
Richard Quadling wrote:
 Hi.
 
 I want to docblock a set of properties to be xml primitive datatypes [1].
 
 Considering that this is the correct type for the XML/SOAP/WSDL
 communication, how do I bypass Zend_WSDL / Zend_AutoDiscovery so
 that these types go through cleanly. I know that as far as PHP is
 concerned, the type is loose and it will be my responsibility to
 encode the values accordingly. It is in the WSDL generation, and hence
 the docblocks, that I want these types to be valid.
 
 I think I can achieve this by the following steps.
 
 1 - Create a new concrete class from the
 Zend_Soap_Wsdl_Strategy_Abstract abstract class, say
 Zend_Soap_Wsdl_Strategy_W3C (as the type are defined by W3C).
 2 - Implement the addComplexType() method to validate the type against
 the list and return it if is OK.
 
 What I am stuck on is how do I cascade from the new class so that I
 can still drop back to the Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex.
 
 I think the Zend_Soap_Wsdl_Strategy_Composite is of use here, but I
 can't quite work out how to use it.
 
 Any ideas would be appreciated.
 
 Regards,
 
 Richard Quadling.
 
 [1] http://www.w3.org/TR/xmlschema11-2/#built-in-primitive-datatypes
 

AFAIK the Zend Soap WSDL accessor already maps up php types to xsd
types; a PHP String maps to an xsd:string, integer to xsd:int and so forth.

XML schema 1.1 datatypes are pretty much the same as; and backwards
compatible with the current xml schema datatypes (which are still the
recommended standard, as 1.1 isn't a recommendation yet, work in
progress) and use the same namespace. Thus the existing implementation
should be xml w3c complaint both now and in the future.

All that's said purely based on the zend docs [1] and not through
practically using Zend_Soap_Wsdl_* though!

[1] http://schemas.xmlsoap.org/soap/encoding/

Regards :)

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] Re: DocBlocking SOAP types.

2010-02-16 Thread Nathan Rixham
Nathan Rixham wrote:
 Richard Quadling wrote:
 Hi.

 I want to docblock a set of properties to be xml primitive datatypes [1].

 Considering that this is the correct type for the XML/SOAP/WSDL
 communication, how do I bypass Zend_WSDL / Zend_AutoDiscovery so
 that these types go through cleanly. I know that as far as PHP is
 concerned, the type is loose and it will be my responsibility to
 encode the values accordingly. It is in the WSDL generation, and hence
 the docblocks, that I want these types to be valid.

 I think I can achieve this by the following steps.

 1 - Create a new concrete class from the
 Zend_Soap_Wsdl_Strategy_Abstract abstract class, say
 Zend_Soap_Wsdl_Strategy_W3C (as the type are defined by W3C).
 2 - Implement the addComplexType() method to validate the type against
 the list and return it if is OK.

 What I am stuck on is how do I cascade from the new class so that I
 can still drop back to the Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex.

 I think the Zend_Soap_Wsdl_Strategy_Composite is of use here, but I
 can't quite work out how to use it.

 Any ideas would be appreciated.

 Regards,

 Richard Quadling.

 [1] http://www.w3.org/TR/xmlschema11-2/#built-in-primitive-datatypes

 
 AFAIK the Zend Soap WSDL accessor already maps up php types to xsd
 types; a PHP String maps to an xsd:string, integer to xsd:int and so forth.
 
 XML schema 1.1 datatypes are pretty much the same as; and backwards
 compatible with the current xml schema datatypes (which are still the
 recommended standard, as 1.1 isn't a recommendation yet, work in
 progress) and use the same namespace. Thus the existing implementation
 should be xml w3c complaint both now and in the future.
 
 All that's said purely based on the zend docs [1] and not through
 practically using Zend_Soap_Wsdl_* though!


sigh.. [1] = http://framework.zend.com/manual/en/zend.soap.wsdl.html
(specifically Type mapping) - might make more sense now!



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] Re: DocBlocking SOAP types.

2010-02-16 Thread Richard Quadling
On 16 February 2010 16:41, Nathan Rixham nrix...@gmail.com wrote:
 Nathan Rixham wrote:
 Richard Quadling wrote:
 Hi.

 I want to docblock a set of properties to be xml primitive datatypes [1].

 Considering that this is the correct type for the XML/SOAP/WSDL
 communication, how do I bypass Zend_WSDL / Zend_AutoDiscovery so
 that these types go through cleanly. I know that as far as PHP is
 concerned, the type is loose and it will be my responsibility to
 encode the values accordingly. It is in the WSDL generation, and hence
 the docblocks, that I want these types to be valid.

 I think I can achieve this by the following steps.

 1 - Create a new concrete class from the
 Zend_Soap_Wsdl_Strategy_Abstract abstract class, say
 Zend_Soap_Wsdl_Strategy_W3C (as the type are defined by W3C).
 2 - Implement the addComplexType() method to validate the type against
 the list and return it if is OK.

 What I am stuck on is how do I cascade from the new class so that I
 can still drop back to the Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex.

 I think the Zend_Soap_Wsdl_Strategy_Composite is of use here, but I
 can't quite work out how to use it.

 Any ideas would be appreciated.

 Regards,

 Richard Quadling.

 [1] http://www.w3.org/TR/xmlschema11-2/#built-in-primitive-datatypes


 AFAIK the Zend Soap WSDL accessor already maps up php types to xsd
 types; a PHP String maps to an xsd:string, integer to xsd:int and so forth.

 XML schema 1.1 datatypes are pretty much the same as; and backwards
 compatible with the current xml schema datatypes (which are still the
 recommended standard, as 1.1 isn't a recommendation yet, work in
 progress) and use the same namespace. Thus the existing implementation
 should be xml w3c complaint both now and in the future.

 All that's said purely based on the zend docs [1] and not through
 practically using Zend_Soap_Wsdl_* though!


 sigh.. [1] = http://framework.zend.com/manual/en/zend.soap.wsdl.html
 (specifically Type mapping) - might make more sense now!




I think you've missed the point.

I want to tell the outside world, via the WSDL,  that property X is an
xsd:datetime (hmm ok, for that to make sense forget PHP's DateTime
builtin class)

How do I do that using AutoDiscovery?

PHP doesn't have all the types that I can ask for.

If I use PHP's types, they are all strings. So any junk can be put in.

The consumer of the service isn't PHP, but (I believe) C#. So strongly typed.


It isn't about mapping PHP types  to W3C types.




-- 
-
Richard Quadling
Standing on the shoulders of some very clever giants!
EE : http://www.experts-exchange.com/M_248814.html
EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498r=213474731
ZOPA : http://uk.zopa.com/member/RQuadling

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] Re: DocBlocking SOAP types.

2010-02-16 Thread Nathan Rixham
Richard Quadling wrote:
 On 16 February 2010 16:41, Nathan Rixham nrix...@gmail.com wrote:
 Nathan Rixham wrote:
 Richard Quadling wrote:
 Hi.

 I want to docblock a set of properties to be xml primitive datatypes [1].

 Considering that this is the correct type for the XML/SOAP/WSDL
 communication, how do I bypass Zend_WSDL / Zend_AutoDiscovery so
 that these types go through cleanly. I know that as far as PHP is
 concerned, the type is loose and it will be my responsibility to
 encode the values accordingly. It is in the WSDL generation, and hence
 the docblocks, that I want these types to be valid.

 I think I can achieve this by the following steps.

 1 - Create a new concrete class from the
 Zend_Soap_Wsdl_Strategy_Abstract abstract class, say
 Zend_Soap_Wsdl_Strategy_W3C (as the type are defined by W3C).
 2 - Implement the addComplexType() method to validate the type against
 the list and return it if is OK.

 What I am stuck on is how do I cascade from the new class so that I
 can still drop back to the Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex.

 I think the Zend_Soap_Wsdl_Strategy_Composite is of use here, but I
 can't quite work out how to use it.

 Any ideas would be appreciated.

 Regards,

 Richard Quadling.

 [1] http://www.w3.org/TR/xmlschema11-2/#built-in-primitive-datatypes

 AFAIK the Zend Soap WSDL accessor already maps up php types to xsd
 types; a PHP String maps to an xsd:string, integer to xsd:int and so forth.

 XML schema 1.1 datatypes are pretty much the same as; and backwards
 compatible with the current xml schema datatypes (which are still the
 recommended standard, as 1.1 isn't a recommendation yet, work in
 progress) and use the same namespace. Thus the existing implementation
 should be xml w3c complaint both now and in the future.

 All that's said purely based on the zend docs [1] and not through
 practically using Zend_Soap_Wsdl_* though!

 sigh.. [1] = http://framework.zend.com/manual/en/zend.soap.wsdl.html
 (specifically Type mapping) - might make more sense now!



 
 I think you've missed the point.

totally!

 I want to tell the outside world, via the WSDL,  that property X is an
 xsd:datetime (hmm ok, for that to make sense forget PHP's DateTime
 builtin class)
 
 How do I do that using AutoDiscovery?
 
 PHP doesn't have all the types that I can ask for.
 
 If I use PHP's types, they are all strings. So any junk can be put in.
 
 The consumer of the service isn't PHP, but (I believe) C#. So strongly typed.
 
 
 It isn't about mapping PHP types  to W3C types.

and now i completely follow after downloading the Zend code - which
strategy are you currently using / need to use? either way I guess the
two simplest approaches would either be:

1: create a class which extends
Zend_Soap_Wsdl_Strategy_YOURCURRENTSTRATEGYCHOICE , and implement the
addComplexType() method adding in all the xsd extra types and then
calling parent::addComplexType when not found.

2: create a class which extends Zend_Soap_Wsdl and overrides the
getType() method adding in all the xsd extra types and then calling
parent::getType when not found.

regards!

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php