I state not to know almost nothing about SOAP and XML,
but I tried using XML::Compile::SOAP to make a ONVIF client
to get information and move around some PTZ cameras and NVT (network video transmitter),
because I still prefer perl to other more modern languages
and this library seems to me the best and the most complete
for XML and SOAP among those present on CPAN, a very goog work.
The specifications are on the Open Network Video InterFace site:
http://www.onvif.org/onvif/ver10/schema/onvif.xsd
http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl
http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl
http://www.onvif.org/onvif/ver20/ptz/wsdl/ptz.wsdl
....

After downloading the locally .wsdl and .xsd files, I tried
./wsdl-explain.pl --wsdl /etc/onvif/wsdl/devicemgmt.wsdl --xsd /etc/onvif/schema/onvif.xsd
but give the error
error: operation GetServices has a message for its portType but no encoding in the binding

The same error is given by the compile method in all the code that I had tried to write. A look at the source and is the problem is in the sub operation of XML::Compile::WSDL11 operation, which chooses SOAP11 for a SOAP12 only webservice (the wsdl files haven't address). I did a quick and dirty change to WSDL11.pm (one line, $prefix = $prefix."12" ),
to finish quickly a first version of the script, that now work well.

But I wanted to know if there's a neat and clean way
to force the use of SOAP12 in WSDL11.

               Best Regards,
                       Sandro Magri   <[email protected]>
                       FreeNet ST      http://www.freenetst.it




_______________________________________________
Xml-compile mailing list
[email protected]
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/xml-compile

Reply via email to