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))))