Function: soap-resolve-references-for-xs-simple-type

soap-resolve-references-for-xs-simple-type is a byte-compiled function defined in soap-client.el.gz.

Signature

(soap-resolve-references-for-xs-simple-type TYPE WSDL)

Documentation

Replace names in TYPE with the referenced objects in the WSDL.

This is a specialization of soap-resolve-references for soap-xs-simple-type objects.

See also soap-wsdl-resolve-references.

Source Code

;; Defined in /usr/src/emacs/lisp/net/soap-client.el.gz
(defun soap-resolve-references-for-xs-simple-type (type wsdl)
  "Replace names in TYPE with the referenced objects in the WSDL.
This is a specialization of `soap-resolve-references' for
`soap-xs-simple-type' objects.

See also `soap-wsdl-resolve-references'."

  (let ((namespace (soap-element-namespace-tag type)))
    (when namespace
      (let ((nstag (car (rassoc namespace (soap-wsdl-alias-table wsdl)))))
        (when nstag
          (setf (soap-element-namespace-tag type) nstag)))))

  (let ((base (soap-xs-simple-type-base type)))
    (cond
     ((soap-name-p base)
      (setf (soap-xs-simple-type-base type)
            (soap-wsdl-get base wsdl 'soap-xs-type-p)))
     ((soap-xs-type-p base)
      (soap-resolve-references base wsdl))
     ((listp base)
      (setf (soap-xs-simple-type-base type)
            (mapcar (lambda (type)
                      (cond ((soap-name-p type)
                             (soap-wsdl-get type wsdl 'soap-xs-type-p))
                            ((soap-xs-type-p type)
                             (soap-resolve-references type wsdl)
                             type)
                            (t     ; signal an error?
                             type)))
                    base)))
     (t (error "Oops"))))
  (dolist (attribute (soap-xs-type-attributes type))
    (soap-resolve-references attribute wsdl))
  (dolist (attribute-group (soap-xs-type-attribute-groups type))
    (soap-resolve-references attribute-group wsdl)))