Function: soap-parse-message

soap-parse-message is a byte-compiled function defined in soap-client.el.gz.

Signature

(soap-parse-message NODE)

Documentation

Parse NODE as a wsdl:message and return the corresponding type.

Source Code

;; Defined in /usr/src/emacs/lisp/net/soap-client.el.gz
(defun soap-parse-message (node)
  "Parse NODE as a wsdl:message and return the corresponding type."
  (cl-assert (eq (soap-l2wk (xml-node-name node)) 'wsdl:message)
             nil
             "expecting wsdl:message node, got %s"
             (soap-l2wk (xml-node-name node)))
  (let ((name (xml-get-attribute-or-nil node 'name))
        parts)
    (dolist (p (soap-xml-get-children1 node 'wsdl:part))
      (let ((name (xml-get-attribute-or-nil p 'name))
            (type (xml-get-attribute-or-nil p 'type))
            (element (xml-get-attribute-or-nil p 'element)))

        (when type
          (setq type (soap-l2fq type 'tns)))

        (if element
            (setq element (soap-l2fq element 'tns))
          ;; else
          (setq element (make-soap-xs-element
                         :name name
                         :namespace-tag soap-target-xmlns
                         :type^ type)))

        (push (cons name element) parts)))
    (make-soap-message :name name :parts (nreverse parts))))