[BioRuby] esoap.rb

David Wheeler wheeler at ncbi.nlm.nih.gov
Sat Dec 11 09:37:53 EST 2004


Toshiaki:

Great!  In case it helps, I've been exploring the wsdl we're using in
eutils_a.wsdl and I can eliminate most of the problems by replacing the
wsdl:import statements with xsd:import statements and including the xsd
namespace. Hence, if I replace the original import block, commented out
below, with the wsdl:types block that follows, problem Number Two goes
away.  From what I read on the web, the syntax of the second block is not
considered to be correct.

David

#need to add this to use xsd:schema tag
xmlns:xsd="http://www.w3.org/2001/XMLSchema"

#new import block that seems to work

 <wsdl:types>
    <xsd:schema
targetNamespace="http://eutils.ncbi.nlm.nih.gov/entrez/eutils/soap/">
    <xsd:import
namespace="http://eutils.ncbi.nlm.nih.gov/entrez/eutils/soap/"
      schemaLocation="egquery.xsd"/>
      <xsd:import
namespace="http://eutils.ncbi.nlm.nih.gov/entrez/eutils/soap/"
      schemaLocation="einfo.xsd"/>
      <xsd:import
namespace="http://eutils.ncbi.nlm.nih.gov/entrez/eutils/soap/"
      schemaLocation="elink.xsd"/>
      <xsd:import
namespace="http://eutils.ncbi.nlm.nih.gov/entrez/eutils/soap/"
      schemaLocation="esearch.xsd"/>
      <xsd:import
namespace="http://eutils.ncbi.nlm.nih.gov/entrez/eutils/soap/"
      schemaLocation="efetch.xsd"/>
      <xsd:import
namespace="http://eutils.ncbi.nlm.nih.gov/entrez/eutils/soap/"
      schemaLocation="esummary.xsd"/>

    </xsd:schema>
  </wsdl:types>


#old import block that is giving parse errors

<!--
  <wsdl:import namespace="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/"
location="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/egquery.xsd" />
  <wsdl:import namespace="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/"
location="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/einfo.xsd" />
  <wsdl:import namespace="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/"
location="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/elink.xsd" />
  <wsdl:import namespace="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/"
location="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/esearch.xsd" />
  <wsdl:import namespace="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/"
location="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/esummary.xsd" />
  <wsdl:import namespace="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/"
location="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/efetch.xsd" />

-->

On Sat, 11 Dec 2004, Toshiaki Katayama wrote:

> Hi David,
>
> I have contacted the author of SOAP4R.
> He will implement this function soon so that we can use eutils_a.wsdl
> without any modification on server side, hopefully. :)
>
> Regards,
> Toshiaki Katayama
>
> On 2004/12/11, at 1:17, david wheeler wrote:
>
> > Moses, Toshiaki:
> >
> > Looks like the relative urls you saw in the wsdl were one problem...
> > Our
> > SOAP specialist has created a new wsdl for testing with absolute urls
> > at:
> >
> > http://eutils.ncbi.nlm.nih.gov/entrez/eutils/soap/eutils_a.wsdl
> >
> > Using this one, gets me to the new error that you also see when you
> > curl the
> > XSD files:
> >
> > /usr/lib/ruby/1.8/wsdl/xmlSchema/element.rb:76:in `parse_attr':
> > NotImplementedError (NotImplementedError)
> >         from /usr/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:141:in
> > `decode_tag'
> >         from /usr/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:121:in `each'
> >         from /usr/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:121:in
> > `decode_tag'
> >         from /usr/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:79:in
> > `start_element'
> >         from /usr/lib/ruby/1.8/xsd/xmlparser/parser.rb:67:in
> > `start_element'
> >         from /usr/lib/ruby/1.8/xsd/xmlparser/rexmlparser.rb:34:in
> > `tag_start'
> >         from /usr/lib/ruby/1.8/rexml/parsers/streamparser.rb:17:in
> > `parse'
> >         from /usr/lib/ruby/1.8/rexml/document.rb:166:in `parse_stream'
> >          ... 18 levels...
> >         from /usr/lib/ruby/1.8/soap/wsdlDriver.rb:70:in `import'
> >         from /usr/lib/ruby/1.8/soap/wsdlDriver.rb:34:in `initialize'
> >         from ./ncbi_soap.rb:8:in `new'
> >         from ./ncbi_soap.rb:8
> >
> > I'll pursue this on our end but if you have any ideas, let me know.
> >
> >
> > David
> >
> >
> > -----Original Message-----
> > From: bioruby-bounces at portal.open-bio.org
> > [mailto:bioruby-bounces at portal.open-bio.org] On Behalf Of Moses Hohman
> > Sent: Friday, December 10, 2004 2:21 AM
> > To: bioruby at portal.open-bio.org
> > Cc: BioRuby Project Discussion List
> > Subject: Re: [BioRuby] esoap.rb
> >
> > I get a different error:
> >
> > /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1283:in `initialize':
> > Can't assign requested address - connect(2) (Errno::EADDRNOTAVAIL)
> >          from /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1283:in
> > `new'
> >          from /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1283:in
> > `create_socket'
> >          from /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1252:in
> > `connect'
> >          from /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1251:in
> > `timeout'
> >          from /usr/local/lib/ruby/1.8/timeout.rb:55:in `timeout'
> >          from /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1251:in
> > `connect'
> >          from /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1111:in
> > `query'
> >          from /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:833:in
> > `query'
> >           ... 26 levels...
> >          from /usr/local/lib/ruby/1.8/soap/wsdlDriver.rb:71:in `import'
> >          from /usr/local/lib/ruby/1.8/soap/wsdlDriver.rb:35:in
> > `initialize'
> >          from test_eruby.rb:12:in `new'
> >
> > The full backtrace is after the rest of my message.
> >
> > This seems to have something to do with the fact that eutils.wsdl has
> > <wsdl:import> tags with locations that don't specify a base URL or
> > something
> > (I'm not very familiar with WSDL). soap4r apparently can't handle
> > this, or
> > maybe there's an option one has to set that I don't know. If you curl
> > the
> > various imported XSD files, the error goes away and a new error occurs:
> >
> > /usr/local/lib/ruby/1.8/wsdl/xmlSchema/element.rb:76:in `parse_attr':
> > NotImplementedError (NotImplementedError)
> >          from /usr/local/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:142:in
> > `decode_tag'
> >          from /usr/local/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:122:in
> > `each'
> >          from /usr/local/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:122:in
> > `decode_tag'
> >          from /usr/local/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:79:in
> > `start_element'
> >          from /usr/local/lib/ruby/1.8/xsd/xmlparser/parser.rb:67:in
> > `start_element'
> >          from
> > /usr/local/lib/ruby/1.8/xsd/xmlparser/xmlscanner.rb:139:in
> > `on_stag_end'
> >          from
> > /usr/local/lib/ruby/1.8/xsd/xmlparser/xmlscanner.rb:134:in
> > `on_stag_end_empty'
> >          from
> > /usr/local/lib/ruby/site_ruby/1.8/xmlscan/scanner.rb:470:in
> > `on_stag_end_empty'
> >           ... 28 levels...
> >          from /usr/local/lib/ruby/1.8/soap/wsdlDriver.rb:71:in `import'
> >          from /usr/local/lib/ruby/1.8/soap/wsdlDriver.rb:35:in
> > `initialize'
> >          from test_eruby.rb:12:in `new'
> >          from test_eruby.rb:12
> >
> >
> > I'm running 1.8.2 preview 3 on OS X 10.3.6. I've also installed a ton
> > of
> > ruby stuff, so it's possible my setup's errors will be unique : )
> >
> > Moses
> >
> > /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1283:in `initialize'
> > /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1283:in `new'
> > /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1283:in
> > `create_socket'
> > /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1252:in `connect'
> > /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1251:in `timeout'
> > /usr/local/lib/ruby/1.8/timeout.rb:55:in `timeout'
> > /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1251:in `connect'
> > /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1111:in `query'
> > /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:833:in `query'
> > /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:383:in `do_get_block'
> > /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:327:in `conn_request'
> > /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:259:in `request'
> > /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:234:in `get'
> > /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:209:in `get_content'
> > /usr/local/lib/ruby/1.8/wsdl/importer.rb:39:in `import'
> > /usr/local/lib/ruby/1.8/wsdl/importer.rb:20:in `import'
> > /usr/local/lib/ruby/1.8/wsdl/import.rb:65:in `import'
> > /usr/local/lib/ruby/1.8/wsdl/import.rb:49:in `parse_attr'
> > /usr/local/lib/ruby/1.8/wsdl/parser.rb:143:in `decode_tag'
> > /usr/local/lib/ruby/1.8/wsdl/parser.rb:126:in `each'
> > /usr/local/lib/ruby/1.8/wsdl/parser.rb:126:in `decode_tag'
> > /usr/local/lib/ruby/1.8/wsdl/parser.rb:81:in `start_element'
> > /usr/local/lib/ruby/1.8/xsd/xmlparser/parser.rb:67:in `start_element'
> > /usr/local/lib/ruby/1.8/xsd/xmlparser/xmlscanner.rb:139:in
> > `on_stag_end'
> > /usr/local/lib/ruby/1.8/xsd/xmlparser/xmlscanner.rb:134:in
> > `on_stag_end_empty'
> > /usr/local/lib/ruby/site_ruby/1.8/xmlscan/scanner.rb:470:in
> > `on_stag_end_empty'
> > /usr/local/lib/ruby/site_ruby/1.8/xmlscan/scanner.rb:794:in `scan_stag'
> > /usr/local/lib/ruby/site_ruby/1.8/xmlscan/scanner.rb:826:in
> > `scan_content'
> > /usr/local/lib/ruby/site_ruby/1.8/xmlscan/scanner.rb:1051:in
> > `scan_prolog'
> > /usr/local/lib/ruby/site_ruby/1.8/xmlscan/scanner.rb:1058:in
> > `scan_document'
> > /usr/local/lib/ruby/site_ruby/1.8/xmlscan/scanner.rb:1073:in `parse'
> > /usr/local/lib/ruby/1.8/xsd/xmlparser/xmlscanner.rb:25:in `do_parse'
> > /usr/local/lib/ruby/1.8/wsdl/parser.rb:62:in `parse'
> > /usr/local/lib/ruby/1.8/wsdl/importer.rb:43:in `import'
> > /usr/local/lib/ruby/1.8/wsdl/importer.rb:20:in `import'
> > /usr/local/lib/ruby/1.8/soap/wsdlDriver.rb:71:in `import'
> > /usr/local/lib/ruby/1.8/soap/wsdlDriver.rb:35:in `initialize'
> > test_eruby.rb:12:in `new'
> >
> >
> > On Dec 9, 2004, at 10:53 PM, Toshiaki Katayama wrote:
> >
> >> Hi,
> >>
> >> I have not completed esoap.rb yet. :)
> >>
> >> It seems that wsdl:import fails when loading eutils.wsdl in Ruby 1.8.1
> >> (comes with SOAP4R).  Any ideas?
> >>
> >> Regards,
> >> Toshiaki Katayama
> >>
> >> esoap_test.rb:
> >> -------------------------
> >> #!/usr/bin/env ruby
> >>
> >> require 'soap/wsdlDriver'
> >>
> >> wsdl = "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/soap/eutils.wsdl"
> >>
> >> driver = SOAP::WSDLDriverFactory.new(wsdl).create_driver
> >> -------------------------
> >>
> >> % ruby esoap.rb
> >> /usr/local/lib/ruby/1.8/soap/netHttpClient.rb:121:in
> >> `create_connection': Cannot connect to egquery.xsd (Not HTTP.)
> >> (RuntimeError)
> >>         from /usr/local/lib/ruby/1.8/soap/netHttpClient.rb:91:in
> >> `start'
> >>         from /usr/local/lib/ruby/1.8/soap/netHttpClient.rb:82:in
> >> `get_content'
> >>         from /usr/local/lib/ruby/1.8/wsdl/importer.rb:39:in `import'
> >>         from /usr/local/lib/ruby/1.8/wsdl/importer.rb:20:in `import'
> >>         from /usr/local/lib/ruby/1.8/wsdl/import.rb:65:in `import'
> >>         from /usr/local/lib/ruby/1.8/wsdl/import.rb:49:in `parse_attr'
> >>         from /usr/local/lib/ruby/1.8/wsdl/parser.rb:141:in
> >> `decode_tag'
> >>         from /usr/local/lib/ruby/1.8/wsdl/parser.rb:124:in `each'
> >>          ... 9 levels...
> >>         from /usr/local/lib/ruby/1.8/soap/wsdlDriver.rb:69:in `import'
> >>         from /usr/local/lib/ruby/1.8/soap/wsdlDriver.rb:33:in
> >> `initialize'
> >>         from esoap_test.rb:5:in `new'
> >>         from esoap_test.rb:5
> >>
> >>
> >>
> >> On 2004/12/10, at 7:51, Moses Hohman wrote:
> >>
> >>> It would be great if you could help out. esoap.rb is not in CVS, so
> >>> Toshiaki will have to email it : )
> >>>
> >>> Moses
> >>>
> >>> On Dec 9, 2004, at 4:35 PM, david wheeler wrote:
> >>>
> >>>> Hi:
> >>>>
> >>>> Is it still true that esoap.rb is not working? Is the current
> >>>> version available?  If so, I'd be happy to help if I could get a
> >>>> copy.
> >>>>
> >>>> David Wheeler, NCBI
> >>>>
> >>>>
> >>>> _______________________________________________
> >>>> BioRuby mailing list
> >>>> BioRuby at open-bio.org
> >>>> http://portal.open-bio.org/mailman/listinfo/bioruby
> >>>>
> >>>
> >>> _______________________________________________
> >>> BioRuby mailing list
> >>> BioRuby at open-bio.org
> >>> http://portal.open-bio.org/mailman/listinfo/bioruby
> >>
> >> _______________________________________________
> >> BioRuby mailing list
> >> BioRuby at open-bio.org
> >> http://portal.open-bio.org/mailman/listinfo/bioruby
> >>
> >
> > _______________________________________________
> > BioRuby mailing list
> > BioRuby at open-bio.org
> > http://portal.open-bio.org/mailman/listinfo/bioruby
> >
> >
> > _______________________________________________
> > BioRuby mailing list
> > BioRuby at open-bio.org
> > http://portal.open-bio.org/mailman/listinfo/bioruby
>
> _______________________________________________
> BioRuby mailing list
> BioRuby at open-bio.org
> http://portal.open-bio.org/mailman/listinfo/bioruby
>


More information about the BioRuby mailing list