Hi
I have soap server that has WSDL with request containing
<xsd:element name=“mode” type=“ons:ModeT” />
where ModeT is defined as
<xsd:simpleType name="ModeT">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="abc"/>
<xsd:enumeration value="xyz"/>
</xsd:restriction>
</xsd:simpleType>
I created client using
SOAP::WSDLDriverFactory.new(*).create_rpc_driver
and it fails with
/usr/lib/ruby/1.8/soap/mapping/wsdlencodedregistry.rb:151:in
base2soap': undefined method
<=’ for nil:NilClass (NoMethodError)
from
/usr/lib/ruby/1.8/soap/mapping/wsdlencodedregistry.rb:127:in
simpleobj2soap' from /usr/lib/ruby/1.8/soap/mapping/wsdlencodedregistry.rb:118:in
obj2typesoap’
from /usr/lib/ruby/1.8/soap/mapping/wsdlencodedregistry.rb:44:in
obj2soap' from /usr/lib/ruby/1.8/soap/mapping/mapping.rb:127:in
_obj2soap’
from
/usr/lib/ruby/1.8/soap/mapping/wsdlencodedregistry.rb:210:in
elements2soap' from /usr/lib/ruby/1.8/soap/mapping/wsdlencodedregistry.rb:206:in
each’
from
/usr/lib/ruby/1.8/soap/mapping/wsdlencodedregistry.rb:206:in
elements2soap' from /usr/lib/ruby/1.8/soap/mapping/wsdlencodedregistry.rb:167:in
struct2soap’
… 18 levels…
changing xsd:token to xsd:string in client fixes problem (but It won’t
be
easy to force such change in oryginal WSDL).
Is it just a bug in soap4r, is there anything I could fix on my side?
greetings