]> git.eshelyaron.com Git - emacs.git/commitdiff
soap-client: Allow attributes and a value
authorThomas Fitzsimmons <fitzsim@fitzsim.org>
Wed, 24 Jul 2019 08:45:07 +0000 (04:45 -0400)
committerThomas Fitzsimmons <fitzsim@fitzsim.org>
Wed, 24 Jul 2019 09:02:43 +0000 (05:02 -0400)
* lisp/net/soap-client.el (soap-encode-xs-basic-type): Allow
attributes and a value to be specified in the same element.

lisp/net/soap-client.el

index 1632ee137583056e6e059be9643aa75ce71a50bd..40c6e62500adc7575e4622c91b616b77d9def2bb 100644 (file)
@@ -464,8 +464,14 @@ position.
 
 This is a specialization of `soap-encode-value' for
 `soap-xs-basic-type' objects."
-  (let ((kind (soap-xs-basic-type-kind type)))
-
+  (let ((kind (soap-xs-basic-type-kind type))
+        ;; Handle conversions of this form:
+        ;; (Element (AttrA . "A") (AttrB . "B") "Value here")
+        ;; to:
+        ;; <ns:Element AttrA="A" AttrB="B">Value here</ns:Element>
+        ;; by assuming that if this is a list, it must have attributes
+        ;; preceding the basic value.
+        (value (if (listp value) (progn (car (last value))) value)))
     (when (eq kind 'anyType)
       (cond ((stringp value)
              (setq kind 'string))