soap4r is unable to parse my (valid) wsdl. The wsdl validates with soapscope, and WS-I, and works with .NET and gSoap. The wsdl imports a fairly complex schema, which may be the source of the errors.
When running the following program:
require 'soap/wsdlDriver'
factory = SOAP::WSDLDriverFactory.new('http://www.symgate.com/cml/symgate.wsdl')
soap = factory.create_rpc_driver
several errors are generated. When running against the version included with Ruby 1.8.4, the following output is produced:
ignored element: {http://www.w3.org/2001/XMLSchema}choice of WSDL::XMLSchema::Sequence
ignored element: {http://www.w3.org/2001/XMLSchema}sequence of WSDL::XMLSchema::Sequence
ignored element: {http://www.w3.org/2001/XMLSchema}choice
/usr/lib64/ruby/1.8/wsdl/port.rb:36:in `find_binding': {}symbolisationBinding not found (RuntimeError)
from /usr/lib64/ruby/1.8/soap/wsdlDriver.rb:88:in `init_driver'
from /usr/lib64/ruby/1.8/soap/wsdlDriver.rb:39:in `create_rpc_driver'
from ./mksoap.rb:6
When running against the latest soap4r 1.5.5, the following output is produced:
/usr/lib64/ruby/1.8/wsdl/xmlSchema/importer.rb:31:in `import': undefined method `location=' for nil:NilClass (NoMethodError)
from /usr/lib64/ruby/1.8/wsdl/importer.rb:18:in `import'
from /usr/lib64/ruby/1.8/soap/wsdlDriver.rb:124:in `import'
from /usr/lib64/ruby/1.8/soap/wsdlDriver.rb:28:in `initialize'
from ./mksoap.rb:5
I will attach the problem wsdl and xsd files to this bug.