Function: soap-resolve-references-for-message
soap-resolve-references-for-message is a byte-compiled function
defined in soap-client.el.gz.
Signature
(soap-resolve-references-for-message MESSAGE WSDL)
Documentation
Replace names in MESSAGE with the referenced objects in the WSDL.
This is a generic function, called by soap-resolve-references,
you should use that function instead.
See also soap-wsdl-resolve-references.
Source Code
;; Defined in /usr/src/emacs/lisp/net/soap-client.el.gz
(defun soap-resolve-references-for-message (message wsdl)
"Replace names in MESSAGE with the referenced objects in the WSDL.
This is a generic function, called by `soap-resolve-references',
you should use that function instead.
See also `soap-wsdl-resolve-references'."
(let (resolved-parts)
(dolist (part (soap-message-parts message))
(let ((name (car part))
(element (cdr part)))
(when (stringp name)
(setq name (intern name)))
(if (soap-name-p element)
(setq element (soap-wsdl-get
element wsdl
(lambda (x)
(or (soap-xs-type-p x) (soap-xs-element-p x)))))
;; else, inline element, resolve recursively, as the element
;; won't be reached.
(soap-resolve-references element wsdl)
(unless (soap-element-namespace-tag element)
(setf (soap-element-namespace-tag element)
(soap-element-namespace-tag message))))
(push (cons name element) resolved-parts)))
(setf (soap-message-parts message) (nreverse resolved-parts))))