[Xml-compile] ONVIF wsdl and XML::Compile::WSDL11
Sandro Magrí
sandro at freenetst.it
Sun Feb 7 14:20:25 GMT 2016
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 <sandro at freenetst.it>
FreeNet ST http://www.freenetst.it
More information about the Xml-compile
mailing list