NAKAMURA, Hiroshi
6/16/2007 9:32:00 AM
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi,
bradrover wrote:
> I've been banging my head against the wall on this problem. I have a
> soap::mapping::object result from a web service call, and all is well
> except there are some XML elements in the response that are empty.
> When I output these values in a UI (puts, etc) the value for those
> elements always says something like #<soap::mapping::object::0x...>
Can you show me a sample response XML? I don't understand 'empty element'.
irb(main):001:0> require 'xsd/mapping'
=> true
irb(main):002:0> xml = <<__XML__
irb(main):003:0" <foo>
irb(main):004:0" <bar/>
irb(main):005:0" <baz>qux</baz>
irb(main):006:0" </foo>
irb(main):007:0" __XML__
=> "<foo>\n <bar/>\n <baz>qux</baz>\n</foo>\n"
irb(main):008:0> obj = XSD::Mapping.xml2obj(xml)
=> #<SOAP::Mapping::Object:0x..fdbd9b682 {}bar="" {}baz="qux">
irb(main):009:0> obj.bar
=> ""
irb(main):010:0> obj.baz
=> "qux"
Is the above 'bar' empty? Do you mean an ommitted element?
> output it ? Is there a more elegant way to handle this than doing a
> check for this particular string literal ? I didn't see any methods on
> soap::mapping::object to determine if it has a text element or not.
Sometimes generating stub files with wsdl2ruby.rb is of help. Generated
Driver can use type information while parsing XML to help extracting
values from it.
Regards,
// NaHi
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.1 (Cygwin)
iQEVAwUBRnOt4h9L2jg5EEGlAQIJ8QgAnqBqN/Q0ijMA8fGhe74JM5VTtRY9q+3+
PUNimT2tLhX9BAYb++Uw93+klTgHI/itziJNj72k9uO5+WSBcYqjIkKgnRd4xOyF
W2MosTBH0X4LvFmijkvIwN89kGflQkoghS3IgX7Fl8trf0LM8clrhZzeFz/JtGRf
AX/+xRaphu19Lj6BZ9vP7FSefr89RsoXHutKbjL7dlK16Ds9zucYuX/iFXbv/X3Z
6ypbCuYZxU1c/1AF7Dlq6Jhzy/Dda0JTzNYCdeFCtgxzYBF0TIgyCV2TlbMywCoe
xN+z12qFFR47EB77vLGXkAvXuVrQKjPdkzBBQahte/3G1bkivrz3lg==
=92kR
-----END PGP SIGNATURE-----