SYNOPSIS
Used by Bio::DB::ESoap
# url
$wsdl = Bio::DB::ESoap::WSDL->new(
-url => "http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/v2.0/eutils.wsdl"
);
# local copy
$wsdl = Bio::DB::ESoap::WSDL->new(
-wsdl => "local/eutils.wsdl"
);
%opns = %{ $wsdl->operations };
DESCRIPTION
This module is a lightweight parser and container for WSDL XML files associated with the NCBI EUtilities SOAP server. XML facilities are provided by XML::Twig.The following accessors provide names and structures useful for creating SOAP messages using SOAP::Lite (e.g.):
service() : the URL of the SOAP service operations() : hashref of the form {.., $operation_name => $soapAction, ...} request_parameters($operation) : request field names and namelists as an array of hashes result_parameters($operation) : result field names and namelists as an array of hashes
The following accessors provide XML::Twig::Elt objects pointing at key locations in the WSDL:
root : the root of the WSDL docment _types_elt : the <types> element _portType_elt : the <portType> element _binding_elt : the <binding> element _service_elt : the <service> element _message_elts : an array of all top-level <message> elements _operation_elts : an array of all <operation> elements contained in <binding>
Parsing occurs lazily (on first read, not on construction); all information is cached. To clear the cache and force re-parsing, run
$wsdl->clear_cache;
The globals $NCBI_BASEURL, $NCBI_ADAPTOR, and %WSDL are exported.
$NCBI_ADAPTOR : the soap service cgi
To construct a URL for a WSDL:
$wsdl_eutils = $NCBI_BASEURL.$WSDL{'eutils'} $wsdl_efetch_omim = $NCBI_BASEURL.$WSDL{'f_omim'} # etc.
FEEDBACK
Mailing Lists
User feedback is an integral part of the evolution of this and other Bioperl modules. Send your comments and suggestions preferably to the Bioperl mailing list. Your participation is much appreciated.
[email protected] - General discussion http://bioperl.org/wiki/Mailing_lists - About the mailing lists
Support
Please direct usage questions or support issues to the mailing list:rather than to the module maintainer directly. Many experienced and reponsive experts will be able look at the problem and quickly address it. Please include a thorough description of the problem with code and data examples if at all possible.
Reporting Bugs
Report bugs to the Bioperl bug tracking system to help us keep track of the bugs and their resolution. Bug reports can be submitted via the web:
http://redmine.open-bio.org/projects/bioperl/
AUTHOR - Mark A. Jensen
Email maj -at- fortinbras -dot- usAPPENDIX
The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _new
Title : new Usage : my $obj = new Bio::DB::ESoap::WSDL(); Function: Builds a new Bio::DB::ESoap::WSDL object Returns : an instance of Bio::DB::ESoap::WSDL Args : named args: -URL => $url_of_desired_wsdl -OR- -WSDL => $filename_of_local_wsdl_copy ( -WSDL will take precedence if both specified )
Getters
request_parameters()
Title : request_parameters Usage : @params = $wsdl->request_parameters($operation_name) Function: get array of request (input) fields required by specified operation, according to the WSDL Returns : hash of arrays of hashes... Args : scalar string (operation or action name)
result_parameters()
Title : result_parameters Usage : $result_hash = $wsdl->result_parameters Function: retrieve a hash structure describing the result of running the specified operation according to the WSDL Returns : hash of arrays of hashes... Args : operation (scalar string)
operations()
Title : operations Usage : @opns = $wsdl->operations; Function: get a hashref with elts ( $operation_name => $soapAction ) for all operations defined by this WSDL Returns : array of scalar strings Args : none
service()
Title : service Usage : $wsdl->service Function: gets the SOAP service url associated with this WSDL Returns : scalar string Args : none
db()
Title : db Usage : Function: If this is an efetch WSDL, returns the db name associated with it Returns : scalar string or undef Args : none
Internals
_operation_bookmarks()
Title : _operation_bookmarks Usage : Function: find useful WSDL elements associated with the specified operation; return a hashref of the form { $key => $XML_Twig_Elt_obj, } Returns : hashref with keys: portType namespace schema i_msg_type i_msg_elt o_msg_type o_msg_elt Args : operation name (scalar string) Note : will import schema if necessary
_parse()
Title : _parse Usage : $wsdl->_parse Function: parse the wsdl at url and create accessors for section twig elts Returns : self Args :
root()
Title : root Usage : $obj->root($newval) Function: holds the root Twig elt of the parsed WSDL Example : Returns : value of root (an XML::Twig::Elt) Args : on set, new value (an XML::Twig::Elt or undef, optional)
url()
Title : url Usage : $obj->url($newval) Function: get/set the WSDL url Example : Returns : value of url (a scalar string) Args : on set, new value (a scalar or undef, optional)
wsdl()
Title : wsdl Usage : $obj->wsdl($newval) Function: get/set wsdl XML filename Example : Returns : value of wsdl (a scalar string) Args : on set, new value (a scalar string or undef, optional)
_twig()
Title : _twig Usage : $obj->_twig($newval) Function: XML::Twig object for handling the wsdl Example : Returns : value of _twig (a scalar) Args : on set, new value (a scalar or undef, optional)
_sections()
Title : _sections Usage : $obj->_sections($newval) Function: holds hashref of twigs corresponding to main wsdl elements; filled by _parse() Example : Returns : value of _sections (a scalar) Args : on set, new value (a scalar or undef, optional)
_cache()
Title : _cache Usage : $wsdl->_cache($newval) Function: holds the wsdl info cache Example : Returns : value of _cache (a scalar) Args : on set, new value (a scalar or undef, optional)
_parsed()
Title : _parsed Usage : $obj->_parsed($newval) Function: flag to indicate wsdl already parsed Example : Returns : value of _parsed (a scalar) Args : on set, new value (a scalar or undef, optional)