unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#10331: Feature request: SOAP simpleType
@ 2011-12-19 21:27 Ken Harris
  2011-12-20 12:09 ` Michael Albinus
  0 siblings, 1 reply; 6+ messages in thread
From: Ken Harris @ 2011-12-19 21:27 UTC (permalink / raw)
  To: 10331

Hi, emacs!  I hope this is the right place to send feature requests.

I've been playing with Emacs 24's soap-client.el library, which is a
fantastic concept.

The "soap-load-wsdl-from-url" function seems to work in some cases,
but not in others.  I am certainly not an expert on SOAP or
soap-client but one thing that I've discovered is that it does not
seem to know about "simpleType".  (The term "simpleType" does not
appear in the source code.  The function soap-parse-schema looks at
only xsd:complexType and xsd:element.)

Here's an example of a WSDL that fails on a simpleType (called "AdultOption"):

    (soap-load-wsdl-from-url "http://api.search.live.net/search.wsdl")

Rather than parsing and returning a WSDL object, it gives a backtrace.
 Here's the top of it (the interesting part):

Debugger entered--Lisp error: (error
"Soap-wsdl-get((http://schemas.microsoft.com/LiveSearch/2008/03/Search
. AdultOption)): cannot find element")
  signal(error ("Soap-wsdl-get((http://schemas.microsoft.com/LiveSearch/2008/03/Search
. AdultOption)): cannot find element"))
  error("Soap-wsdl-get(%s): cannot find element"
("http://schemas.microsoft.com/LiveSearch/2008/03/Search" .
"AdultOption"))
  (if element nil (error "Soap-wsdl-get(%s): cannot find element" name))
  (unless element (error "Soap-wsdl-get(%s): cannot find element" name))
  (let ((alias-table ...) namespace element-name element) (when
(symbolp name) (setq name ...)) (when use-local-alias-table (setq
alias-table ...)) (cond (... ... ... ... ...) (... ... ...) (t ...))
(setq element (soap-namespace-get element-name namespace ...)) (unless
element (error "Soap-wsdl-get(%s): cannot find element" name)) (if
(soap-namespace-link-p element) (soap-wsdl-get ... wsdl predicate)
element))
  soap-wsdl-get(("http://schemas.microsoft.com/LiveSearch/2008/03/Search"
. "AdultOption") [cl-struct-soap-wsdl nil ([cl-struct-soap-port
"BingPort" nil "http://api.search.live.net:80/soap.asmx" ...]) (("ns1"
. "urn:BingPortType") ("soapenc" .
"http://schemas.xmlsoap.org/soap/encoding/") ("xsd" .
"http://www.w3.org/2001/XMLSchema") ("tns" .
"http://schemas.microsoft.com/LiveSearch/2008/03/Search") ("wsa" .
"http://schemas.xmlsoap.org/ws/2004/08/addressing") ("wsdl" .
"http://schemas.xmlsoap.org/wsdl/") ("soap" .
"http://schemas.xmlsoap.org/wsdl/soap/") ("xsi" .
"http://www.w3.org/2001/XMLSchema-instance") ("xsd" .
"http://www.w3.org/2001/XMLSchema")) ([cl-struct-soap-namespace
"urn:BingPortType" #s(hash-table size 65 test equal rehash-size 1.5
rehash-threshold 0.8 data ("Search" ... "SearchRequestMessage" ...
"SearchResponseMessage" ... ...))] [cl-struct-soap-namespace
"http://schemas.microsoft.com/LiveSearch/2008/03/Search" #s(hash-table
size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data
("SearchRequest" ... "ArrayOfSearchOption" ... "ArrayOfSourceType" ...
"WebRequest" ... "ArrayOfWebSearchOption" ... "ArrayOfString" ...
"ImageRequest" ... "PhonebookRequest" ... "VideoRequest" ...
"NewsRequest" ... "MobileWebRequest" ...
"ArrayOfMobileWebSearchOption" ... "TranslationRequest" ...
"SearchResponse" ... "Query" ... "SpellResponse" ...
"ArrayOfSpellResult" ... "SpellResult" ... "WebResponse" ...
"ArrayOfWebResult" ... "WebResult" ... "ArrayOfWebSearchTag" ...
"WebSearchTag" ... "ArrayOfDeepLink" ... "DeepLink" ...
"ImageResponse" ... "ArrayOfImageResult" ... "ImageResult" ...
"Thumbnail" ... "RelatedSearchResponse" ...
"ArrayOfRelatedSearchResult" ... "RelatedSearchResult" ...
"PhonebookResponse" ... "ArrayOfPhonebookResult" ... "PhonebookResult"
... "VideoResponse" ... "ArrayOfVideoResult" ... "VideoResult" ...
"InstantAnswerResponse" ... "ArrayOfInstantAnswerResult" ...
"InstantAnswerResult" ... "NewsResponse" ...
"ArrayOfNewsRelatedSearch" ... "NewsRelatedSearch" ...
"ArrayOfNewsResult" ... "NewsResult" ... "ArrayOfNewsCollection" ...
"NewsCollection" ... "ArrayOfNewsArticle" ... "NewsArticle" ... ...))]
[cl-struct-soap-namespace "http://schemas.xmlsoap.org/soap/encoding/"
#s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8
data ("string" ... "dateTime" ... "boolean" ... "long" ... "int" ...
"integer" ... "byte" ... "float" ... "base64Binary" ... "anyType" ...
"anyURI" ... "Array" ... "byte[]" ... ...))] [cl-struct-soap-namespace
"http://www.w3.org/2001/XMLSchema" #s(hash-table size 65 test equal
rehash-size 1.5 rehash-threshold 0.8 data ("string" ... "dateTime" ...
"boolean" ... "long" ... "int" ... "integer" ... "byte" ... "float"
... "base64Binary" ... "anyType" ... "anyURI" ... "Array" ... "byte[]"
... ...))])] soap-type-p)

[...and more...]

I've found that with my own application's WSDL, if I comment out all
uses of simpleType, then soap-client.el can load it just fine.

I have no idea how hard it would be to implement simpleType, but it
would definitely be very useful!  I may take a stab at this myself,
but no promises.


- Ken





^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-12-30  9:47 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-19 21:27 bug#10331: Feature request: SOAP simpleType Ken Harris
2011-12-20 12:09 ` Michael Albinus
2011-12-20 22:35   ` Michael Albinus
2011-12-21 17:13     ` Michael Albinus
2011-12-30  9:46       ` Michael Albinus
2011-12-30  9:47         ` Michael Albinus

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).