diff options
| author | Michael Albinus | 2011-02-16 20:56:31 +0100 |
|---|---|---|
| committer | Michael Albinus | 2011-02-16 20:56:31 +0100 |
| commit | 274c2d34f170815260af2339c52cfc52ea1de3f7 (patch) | |
| tree | 76e500f8a71a6aafcdcc1a4f5822d81c74b773f6 | |
| parent | 12fe5bcc834428825cb182f77c4e58ed317b33f8 (diff) | |
| download | emacs-274c2d34f170815260af2339c52cfc52ea1de3f7.tar.gz emacs-274c2d34f170815260af2339c52cfc52ea1de3f7.zip | |
* soap-client.el (soap-well-known-xmlns, soap-local-xmlns)
(soap-default-xmlns, soap-target-xmlns, soap-multi-refs)
(soap-decoded-multi-refs, soap-current-wsdl)
(soap-encoded-namespaces): Rename CL-style *...* variables.
| -rw-r--r-- | lisp/ChangeLog | 7 | ||||
| -rw-r--r-- | lisp/net/soap-client.el | 88 |
2 files changed, 51 insertions, 44 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index fa0820d23ac..d8831d56c0e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2011-02-16 Alex Harsanyi <AlexHarsanyi@gmail.com> | ||
| 2 | |||
| 3 | * soap-client.el (soap-well-known-xmlns, soap-local-xmlns) | ||
| 4 | (soap-default-xmlns, soap-target-xmlns, soap-multi-refs) | ||
| 5 | (soap-decoded-multi-refs, soap-current-wsdl) | ||
| 6 | (soap-encoded-namespaces): Rename CL-style *...* variables. | ||
| 7 | |||
| 1 | 2011-02-16 Michael Albinus <michael.albinus@gmx.de> | 8 | 2011-02-16 Michael Albinus <michael.albinus@gmx.de> |
| 2 | 9 | ||
| 3 | * net/soap-client.el: Add "comm" and "hypermedia" to the | 10 | * net/soap-client.el: Add "comm" and "hypermedia" to the |
diff --git a/lisp/net/soap-client.el b/lisp/net/soap-client.el index 68067d69314..bad6ca1e431 100644 --- a/lisp/net/soap-client.el +++ b/lisp/net/soap-client.el | |||
| @@ -63,7 +63,7 @@ | |||
| 63 | ;; "well known" namespace tag and the local namespace tag in the document | 63 | ;; "well known" namespace tag and the local namespace tag in the document |
| 64 | ;; being parsed. | 64 | ;; being parsed. |
| 65 | 65 | ||
| 66 | (defconst *soap-well-known-xmlns* | 66 | (defconst soap-well-known-xmlns |
| 67 | '(("apachesoap" . "http://xml.apache.org/xml-soap") | 67 | '(("apachesoap" . "http://xml.apache.org/xml-soap") |
| 68 | ("soapenc" . "http://schemas.xmlsoap.org/soap/encoding/") | 68 | ("soapenc" . "http://schemas.xmlsoap.org/soap/encoding/") |
| 69 | ("wsdl" . "http://schemas.xmlsoap.org/wsdl/") | 69 | ("wsdl" . "http://schemas.xmlsoap.org/wsdl/") |
| @@ -76,18 +76,18 @@ | |||
| 76 | ("mime" . "http://schemas.xmlsoap.org/wsdl/mime/")) | 76 | ("mime" . "http://schemas.xmlsoap.org/wsdl/mime/")) |
| 77 | "A list of well known xml namespaces and their aliases.") | 77 | "A list of well known xml namespaces and their aliases.") |
| 78 | 78 | ||
| 79 | (defvar *soap-local-xmlns* nil | 79 | (defvar soap-local-xmlns nil |
| 80 | "A list of local namespace aliases. | 80 | "A list of local namespace aliases. |
| 81 | This is a dynamically bound variable, controlled by | 81 | This is a dynamically bound variable, controlled by |
| 82 | `soap-with-local-xmlns'.") | 82 | `soap-with-local-xmlns'.") |
| 83 | 83 | ||
| 84 | (defvar *soap-default-xmlns* nil | 84 | (defvar soap-default-xmlns nil |
| 85 | "The default XML namespaces. | 85 | "The default XML namespaces. |
| 86 | Names in this namespace will be unqualified. This is a | 86 | Names in this namespace will be unqualified. This is a |
| 87 | dynamically bound variable, controlled by | 87 | dynamically bound variable, controlled by |
| 88 | `soap-with-local-xmlns'") | 88 | `soap-with-local-xmlns'") |
| 89 | 89 | ||
| 90 | (defvar *soap-target-xmlns* nil | 90 | (defvar soap-target-xmlns nil |
| 91 | "The target XML namespace. | 91 | "The target XML namespace. |
| 92 | New XSD elements will be defined in this namespace, unless they | 92 | New XSD elements will be defined in this namespace, unless they |
| 93 | are fully qualified for a different namespace. This is a | 93 | are fully qualified for a different namespace. This is a |
| @@ -97,9 +97,9 @@ dynamically bound variable, controlled by | |||
| 97 | (defun soap-wk2l (well-known-name) | 97 | (defun soap-wk2l (well-known-name) |
| 98 | "Return local variant of WELL-KNOWN-NAME. | 98 | "Return local variant of WELL-KNOWN-NAME. |
| 99 | This is done by looking up the namespace in the | 99 | This is done by looking up the namespace in the |
| 100 | `*soap-well-known-xmlns*' table and resolving the namespace to | 100 | `soap-well-known-xmlns' table and resolving the namespace to |
| 101 | the local name based on the current local translation table | 101 | the local name based on the current local translation table |
| 102 | `*soap-local-xmlns*'. See also `soap-with-local-xmlns'." | 102 | `soap-local-xmlns'. See also `soap-with-local-xmlns'." |
| 103 | (let ((wk-name-1 (if (symbolp well-known-name) | 103 | (let ((wk-name-1 (if (symbolp well-known-name) |
| 104 | (symbol-name well-known-name) | 104 | (symbol-name well-known-name) |
| 105 | well-known-name))) | 105 | well-known-name))) |
| @@ -107,14 +107,14 @@ the local name based on the current local translation table | |||
| 107 | ((string-match "^\\(.*\\):\\(.*\\)$" wk-name-1) | 107 | ((string-match "^\\(.*\\):\\(.*\\)$" wk-name-1) |
| 108 | (let ((ns (match-string 1 wk-name-1)) | 108 | (let ((ns (match-string 1 wk-name-1)) |
| 109 | (name (match-string 2 wk-name-1))) | 109 | (name (match-string 2 wk-name-1))) |
| 110 | (let ((namespace (cdr (assoc ns *soap-well-known-xmlns*)))) | 110 | (let ((namespace (cdr (assoc ns soap-well-known-xmlns)))) |
| 111 | (cond ((equal namespace *soap-default-xmlns*) | 111 | (cond ((equal namespace soap-default-xmlns) |
| 112 | ;; Name is unqualified in the default namespace | 112 | ;; Name is unqualified in the default namespace |
| 113 | (if (symbolp well-known-name) | 113 | (if (symbolp well-known-name) |
| 114 | (intern name) | 114 | (intern name) |
| 115 | name)) | 115 | name)) |
| 116 | (t | 116 | (t |
| 117 | (let* ((local-ns (car (rassoc namespace *soap-local-xmlns*))) | 117 | (let* ((local-ns (car (rassoc namespace soap-local-xmlns))) |
| 118 | (local-name (concat local-ns ":" name))) | 118 | (local-name (concat local-ns ":" name))) |
| 119 | (if (symbolp well-known-name) | 119 | (if (symbolp well-known-name) |
| 120 | (intern local-name) | 120 | (intern local-name) |
| @@ -124,7 +124,7 @@ the local name based on the current local translation table | |||
| 124 | (defun soap-l2wk (local-name) | 124 | (defun soap-l2wk (local-name) |
| 125 | "Convert LOCAL-NAME into a well known name. | 125 | "Convert LOCAL-NAME into a well known name. |
| 126 | The namespace of LOCAL-NAME is looked up in the | 126 | The namespace of LOCAL-NAME is looked up in the |
| 127 | `*soap-well-known-xmlns*' table and a well known namespace tag is | 127 | `soap-well-known-xmlns' table and a well known namespace tag is |
| 128 | used in the name. | 128 | used in the name. |
| 129 | 129 | ||
| 130 | nil is returned if there is no well-known namespace for the | 130 | nil is returned if there is no well-known namespace for the |
| @@ -137,15 +137,15 @@ namespace of LOCAL-NAME." | |||
| 137 | ((string-match "^\\(.*\\):\\(.*\\)$" l-name-1) | 137 | ((string-match "^\\(.*\\):\\(.*\\)$" l-name-1) |
| 138 | (setq name (match-string 2 l-name-1)) | 138 | (setq name (match-string 2 l-name-1)) |
| 139 | (let ((ns (match-string 1 l-name-1))) | 139 | (let ((ns (match-string 1 l-name-1))) |
| 140 | (setq namespace (cdr (assoc ns *soap-local-xmlns*))) | 140 | (setq namespace (cdr (assoc ns soap-local-xmlns))) |
| 141 | (unless namespace | 141 | (unless namespace |
| 142 | (error "Soap-l2wk(%s): no namespace for alias %s" local-name ns)))) | 142 | (error "Soap-l2wk(%s): no namespace for alias %s" local-name ns)))) |
| 143 | (t | 143 | (t |
| 144 | (setq name l-name-1) | 144 | (setq name l-name-1) |
| 145 | (setq namespace *soap-default-xmlns*))) | 145 | (setq namespace soap-default-xmlns))) |
| 146 | 146 | ||
| 147 | (if namespace | 147 | (if namespace |
| 148 | (let ((well-known-ns (car (rassoc namespace *soap-well-known-xmlns*)))) | 148 | (let ((well-known-ns (car (rassoc namespace soap-well-known-xmlns)))) |
| 149 | (if well-known-ns | 149 | (if well-known-ns |
| 150 | (let ((well-known-name (concat well-known-ns ":" name))) | 150 | (let ((well-known-name (concat well-known-ns ":" name))) |
| 151 | (if (symbol-name local-name) | 151 | (if (symbol-name local-name) |
| @@ -166,9 +166,9 @@ name of the element itself. For example \"xsd:string\" is | |||
| 166 | converted to \(\"http://www.w3.org/2001/XMLSchema\" . \"string\"\). | 166 | converted to \(\"http://www.w3.org/2001/XMLSchema\" . \"string\"\). |
| 167 | 167 | ||
| 168 | The USE-TNS argument specifies what to do when LOCAL-NAME has no | 168 | The USE-TNS argument specifies what to do when LOCAL-NAME has no |
| 169 | namespace tag. If USE-TNS is non-nil, the `*soap-target-xmlns*' | 169 | namespace tag. If USE-TNS is non-nil, the `soap-target-xmlns' |
| 170 | will be used as the element's namespace, otherwise | 170 | will be used as the element's namespace, otherwise |
| 171 | `*soap-default-xmlns*' will be used. | 171 | `soap-default-xmlns' will be used. |
| 172 | 172 | ||
| 173 | This is needed because different parts of a WSDL document can use | 173 | This is needed because different parts of a WSDL document can use |
| 174 | different namespace aliases for the same element." | 174 | different namespace aliases for the same element." |
| @@ -178,14 +178,14 @@ different namespace aliases for the same element." | |||
| 178 | (cond ((string-match "^\\(.*\\):\\(.*\\)$" local-name-1) | 178 | (cond ((string-match "^\\(.*\\):\\(.*\\)$" local-name-1) |
| 179 | (let ((ns (match-string 1 local-name-1)) | 179 | (let ((ns (match-string 1 local-name-1)) |
| 180 | (name (match-string 2 local-name-1))) | 180 | (name (match-string 2 local-name-1))) |
| 181 | (let ((namespace (cdr (assoc ns *soap-local-xmlns*)))) | 181 | (let ((namespace (cdr (assoc ns soap-local-xmlns)))) |
| 182 | (if namespace | 182 | (if namespace |
| 183 | (cons namespace name) | 183 | (cons namespace name) |
| 184 | (error "Soap-l2fq(%s): unknown alias %s" local-name ns))))) | 184 | (error "Soap-l2fq(%s): unknown alias %s" local-name ns))))) |
| 185 | (t | 185 | (t |
| 186 | (cons (if use-tns | 186 | (cons (if use-tns |
| 187 | *soap-target-xmlns* | 187 | soap-target-xmlns |
| 188 | *soap-default-xmlns*) | 188 | soap-default-xmlns) |
| 189 | local-name))))) | 189 | local-name))))) |
| 190 | 190 | ||
| 191 | (defun soap-extract-xmlns (node &optional xmlns-table) | 191 | (defun soap-extract-xmlns (node &optional xmlns-table) |
| @@ -224,18 +224,18 @@ different namespace aliases for the same element." | |||
| 224 | "Install a local alias table from NODE and execute BODY." | 224 | "Install a local alias table from NODE and execute BODY." |
| 225 | (declare (debug (form &rest form)) (indent 1)) | 225 | (declare (debug (form &rest form)) (indent 1)) |
| 226 | (let ((xmlns (make-symbol "xmlns"))) | 226 | (let ((xmlns (make-symbol "xmlns"))) |
| 227 | `(let ((,xmlns (soap-extract-xmlns ,node *soap-local-xmlns*))) | 227 | `(let ((,xmlns (soap-extract-xmlns ,node soap-local-xmlns))) |
| 228 | (let ((*soap-default-xmlns* (or (nth 0 ,xmlns) *soap-default-xmlns*)) | 228 | (let ((soap-default-xmlns (or (nth 0 ,xmlns) soap-default-xmlns)) |
| 229 | (*soap-target-xmlns* (or (nth 1 ,xmlns) *soap-target-xmlns*)) | 229 | (soap-target-xmlns (or (nth 1 ,xmlns) soap-target-xmlns)) |
| 230 | (*soap-local-xmlns* (nth 2 ,xmlns))) | 230 | (soap-local-xmlns (nth 2 ,xmlns))) |
| 231 | ,@body)))) | 231 | ,@body)))) |
| 232 | 232 | ||
| 233 | (defun soap-get-target-namespace (node) | 233 | (defun soap-get-target-namespace (node) |
| 234 | "Return the target namespace of NODE. | 234 | "Return the target namespace of NODE. |
| 235 | This is the namespace in which new elements will be defined." | 235 | This is the namespace in which new elements will be defined." |
| 236 | (or (xml-get-attribute-or-nil node 'targetNamespace) | 236 | (or (xml-get-attribute-or-nil node 'targetNamespace) |
| 237 | (cdr (assoc "tns" *soap-local-xmlns*)) | 237 | (cdr (assoc "tns" soap-local-xmlns)) |
| 238 | *soap-target-xmlns*)) | 238 | soap-target-xmlns)) |
| 239 | 239 | ||
| 240 | (defun soap-xml-get-children1 (node child-name) | 240 | (defun soap-xml-get-children1 (node child-name) |
| 241 | "Return the children of NODE named CHILD-NAME. | 241 | "Return the children of NODE named CHILD-NAME. |
| @@ -477,7 +477,7 @@ elements named \"foo\" exist in the WSDL you could use: | |||
| 477 | 477 | ||
| 478 | (soap-wsdl-get \"foo\" WSDL 'soap-message-p) | 478 | (soap-wsdl-get \"foo\" WSDL 'soap-message-p) |
| 479 | 479 | ||
| 480 | If USE-LOCAL-ALIAS-TABLE is not nil, `*soap-local-xmlns*` will be | 480 | If USE-LOCAL-ALIAS-TABLE is not nil, `soap-local-xmlns` will be |
| 481 | used to resolve the namespace alias." | 481 | used to resolve the namespace alias." |
| 482 | (let ((alias-table (soap-wsdl-alias-table wsdl)) | 482 | (let ((alias-table (soap-wsdl-alias-table wsdl)) |
| 483 | namespace element-name element) | 483 | namespace element-name element) |
| @@ -486,7 +486,7 @@ used to resolve the namespace alias." | |||
| 486 | (setq name (symbol-name name))) | 486 | (setq name (symbol-name name))) |
| 487 | 487 | ||
| 488 | (when use-local-alias-table | 488 | (when use-local-alias-table |
| 489 | (setq alias-table (append *soap-local-xmlns* alias-table))) | 489 | (setq alias-table (append soap-local-xmlns alias-table))) |
| 490 | 490 | ||
| 491 | (cond ((consp name) ; a fully qualified name, as returned by `soap-l2fq' | 491 | (cond ((consp name) ; a fully qualified name, as returned by `soap-l2fq' |
| 492 | (setq element-name (cdr name)) | 492 | (setq element-name (cdr name)) |
| @@ -780,7 +780,7 @@ calls." | |||
| 780 | 780 | ||
| 781 | ;; Add the local alias table to the wsdl document -- it will be used for | 781 | ;; Add the local alias table to the wsdl document -- it will be used for |
| 782 | ;; all types in this document even after we finish parsing it. | 782 | ;; all types in this document even after we finish parsing it. |
| 783 | (setf (soap-wsdl-alias-table wsdl) *soap-local-xmlns*) | 783 | (setf (soap-wsdl-alias-table wsdl) soap-local-xmlns) |
| 784 | 784 | ||
| 785 | ;; Add the XSD types to the wsdl document | 785 | ;; Add the XSD types to the wsdl document |
| 786 | (let ((ns (soap-default-xsd-types))) | 786 | (let ((ns (soap-default-xsd-types))) |
| @@ -1121,17 +1121,17 @@ contents." | |||
| 1121 | 1121 | ||
| 1122 | ;;;; SOAP type decoding | 1122 | ;;;; SOAP type decoding |
| 1123 | 1123 | ||
| 1124 | (defvar *soap-multi-refs* nil | 1124 | (defvar soap-multi-refs nil |
| 1125 | "The list of multi-ref nodes in the current SOAP response. | 1125 | "The list of multi-ref nodes in the current SOAP response. |
| 1126 | This is a dynamically bound variable used during decoding the | 1126 | This is a dynamically bound variable used during decoding the |
| 1127 | SOAP response.") | 1127 | SOAP response.") |
| 1128 | 1128 | ||
| 1129 | (defvar *soap-decoded-multi-refs* nil | 1129 | (defvar soap-decoded-multi-refs nil |
| 1130 | "List of decoded multi-ref nodes in the current SOAP response. | 1130 | "List of decoded multi-ref nodes in the current SOAP response. |
| 1131 | This is a dynamically bound variable used during decoding the | 1131 | This is a dynamically bound variable used during decoding the |
| 1132 | SOAP response.") | 1132 | SOAP response.") |
| 1133 | 1133 | ||
| 1134 | (defvar *soap-current-wsdl* nil | 1134 | (defvar soap-current-wsdl nil |
| 1135 | "The current WSDL document used when decoding the SOAP response. | 1135 | "The current WSDL document used when decoding the SOAP response. |
| 1136 | This is a dynamically bound variable.") | 1136 | This is a dynamically bound variable.") |
| 1137 | 1137 | ||
| @@ -1148,19 +1148,19 @@ decode function to perform the actual decoding." | |||
| 1148 | ;; NODE is actually a HREF, find the target and decode that. | 1148 | ;; NODE is actually a HREF, find the target and decode that. |
| 1149 | ;; Check first if we already decoded this multiref. | 1149 | ;; Check first if we already decoded this multiref. |
| 1150 | 1150 | ||
| 1151 | (let ((decoded (cdr (assoc href *soap-decoded-multi-refs*)))) | 1151 | (let ((decoded (cdr (assoc href soap-decoded-multi-refs)))) |
| 1152 | (when decoded | 1152 | (when decoded |
| 1153 | (throw 'done decoded))) | 1153 | (throw 'done decoded))) |
| 1154 | 1154 | ||
| 1155 | (string-match "^#\\(.*\\)$" href) ; TODO: check that it matched | 1155 | (string-match "^#\\(.*\\)$" href) ; TODO: check that it matched |
| 1156 | 1156 | ||
| 1157 | (let ((id (match-string 1 href))) | 1157 | (let ((id (match-string 1 href))) |
| 1158 | (dolist (mr *soap-multi-refs*) | 1158 | (dolist (mr soap-multi-refs) |
| 1159 | (let ((mrid (xml-get-attribute mr 'id))) | 1159 | (let ((mrid (xml-get-attribute mr 'id))) |
| 1160 | (when (equal id mrid) | 1160 | (when (equal id mrid) |
| 1161 | ;; recurse here, in case there are multiple HREF's | 1161 | ;; recurse here, in case there are multiple HREF's |
| 1162 | (let ((decoded (soap-decode-type type mr))) | 1162 | (let ((decoded (soap-decode-type type mr))) |
| 1163 | (push (cons href decoded) *soap-decoded-multi-refs*) | 1163 | (push (cons href decoded) soap-decoded-multi-refs) |
| 1164 | (throw 'done decoded))))) | 1164 | (throw 'done decoded))))) |
| 1165 | (error "Cannot find href %s" href)))) | 1165 | (error "Cannot find href %s" href)))) |
| 1166 | (t | 1166 | (t |
| @@ -1177,7 +1177,7 @@ decode function to perform the actual decoding." | |||
| 1177 | ;; If the NODE has type information, we use that... | 1177 | ;; If the NODE has type information, we use that... |
| 1178 | (let ((type (soap-xml-get-attribute-or-nil1 node 'xsi:type))) | 1178 | (let ((type (soap-xml-get-attribute-or-nil1 node 'xsi:type))) |
| 1179 | (if type | 1179 | (if type |
| 1180 | (let ((wtype (soap-wsdl-get type *soap-current-wsdl* 'soap-type-p))) | 1180 | (let ((wtype (soap-wsdl-get type soap-current-wsdl 'soap-type-p))) |
| 1181 | (if wtype | 1181 | (if wtype |
| 1182 | (soap-decode-type wtype node) | 1182 | (soap-decode-type wtype node) |
| 1183 | ;; The node has type info encoded in it, but we don't know how | 1183 | ;; The node has type info encoded in it, but we don't know how |
| @@ -1210,7 +1210,7 @@ decode function to perform the actual decoding." | |||
| 1210 | ;; Type is in the format "someType[NUM]" where NUM is the number of | 1210 | ;; Type is in the format "someType[NUM]" where NUM is the number of |
| 1211 | ;; elements in the array. We discard the [NUM] part. | 1211 | ;; elements in the array. We discard the [NUM] part. |
| 1212 | (setq type (replace-regexp-in-string "\\[[0-9]+\\]\\'" "" type)) | 1212 | (setq type (replace-regexp-in-string "\\[[0-9]+\\]\\'" "" type)) |
| 1213 | (setq wtype (soap-wsdl-get type *soap-current-wsdl* 'soap-type-p)) | 1213 | (setq wtype (soap-wsdl-get type soap-current-wsdl 'soap-type-p)) |
| 1214 | (unless wtype | 1214 | (unless wtype |
| 1215 | ;; The node has type info encoded in it, but we don't know how to | 1215 | ;; The node has type info encoded in it, but we don't know how to |
| 1216 | ;; decode it... | 1216 | ;; decode it... |
| @@ -1337,7 +1337,7 @@ WSDL is used to decode the NODE. | |||
| 1337 | SOAP-BODY is the body of the SOAP envelope (of which | 1337 | SOAP-BODY is the body of the SOAP envelope (of which |
| 1338 | RESPONSE-NODE is a sub-node). It is used in case RESPONSE-NODE | 1338 | RESPONSE-NODE is a sub-node). It is used in case RESPONSE-NODE |
| 1339 | reference multiRef parts which are external to RESPONSE-NODE." | 1339 | reference multiRef parts which are external to RESPONSE-NODE." |
| 1340 | (let* ((*soap-current-wsdl* wsdl) | 1340 | (let* ((soap-current-wsdl wsdl) |
| 1341 | (op (soap-bound-operation-operation operation)) | 1341 | (op (soap-bound-operation-operation operation)) |
| 1342 | (use (soap-bound-operation-use operation)) | 1342 | (use (soap-bound-operation-use operation)) |
| 1343 | (message (cdr (soap-operation-output op)))) | 1343 | (message (cdr (soap-operation-output op)))) |
| @@ -1354,8 +1354,8 @@ reference multiRef parts which are external to RESPONSE-NODE." | |||
| 1354 | (soap-element-name message))))) | 1354 | (soap-element-name message))))) |
| 1355 | 1355 | ||
| 1356 | (let ((decoded-parts nil) | 1356 | (let ((decoded-parts nil) |
| 1357 | (*soap-multi-refs* (xml-get-children soap-body 'multiRef)) | 1357 | (soap-multi-refs (xml-get-children soap-body 'multiRef)) |
| 1358 | (*soap-decoded-multi-refs* nil)) | 1358 | (soap-decoded-multi-refs nil)) |
| 1359 | 1359 | ||
| 1360 | (dolist (part (soap-message-parts message)) | 1360 | (dolist (part (soap-message-parts message)) |
| 1361 | (let ((tag (car part)) | 1361 | (let ((tag (car part)) |
| @@ -1390,7 +1390,7 @@ reference multiRef parts which are external to RESPONSE-NODE." | |||
| 1390 | 1390 | ||
| 1391 | ;;;; SOAP type encoding | 1391 | ;;;; SOAP type encoding |
| 1392 | 1392 | ||
| 1393 | (defvar *soap-encoded-namespaces* nil | 1393 | (defvar soap-encoded-namespaces nil |
| 1394 | "A list of namespace tags used during encoding a message. | 1394 | "A list of namespace tags used during encoding a message. |
| 1395 | This list is populated by `soap-encode-value' and used by | 1395 | This list is populated by `soap-encode-value' and used by |
| 1396 | `soap-create-envelope' to add aliases for these namespace to the | 1396 | `soap-create-envelope' to add aliases for these namespace to the |
| @@ -1414,7 +1414,7 @@ work." | |||
| 1414 | (when (symbolp xml-tag) | 1414 | (when (symbolp xml-tag) |
| 1415 | (setq xml-tag (symbol-name xml-tag))) | 1415 | (setq xml-tag (symbol-name xml-tag))) |
| 1416 | (funcall encoder xml-tag value type)) | 1416 | (funcall encoder xml-tag value type)) |
| 1417 | (add-to-list '*soap-encoded-namespaces* (soap-element-namespace-tag type))) | 1417 | (add-to-list 'soap-encoded-namespaces (soap-element-namespace-tag type))) |
| 1418 | 1418 | ||
| 1419 | (defun soap-encode-basic-type (xml-tag value type) | 1419 | (defun soap-encode-basic-type (xml-tag value type) |
| 1420 | "Encode inside XML-TAG the LISP VALUE according to TYPE. | 1420 | "Encode inside XML-TAG the LISP VALUE according to TYPE. |
| @@ -1577,7 +1577,7 @@ document." | |||
| 1577 | 1577 | ||
| 1578 | (insert "<soap:Body>\n") | 1578 | (insert "<soap:Body>\n") |
| 1579 | (when (eq use 'encoded) | 1579 | (when (eq use 'encoded) |
| 1580 | (add-to-list '*soap-encoded-namespaces* (soap-element-namespace-tag op)) | 1580 | (add-to-list 'soap-encoded-namespaces (soap-element-namespace-tag op)) |
| 1581 | (insert "<" (soap-element-fq-name op) ">\n")) | 1581 | (insert "<" (soap-element-fq-name op) ">\n")) |
| 1582 | 1582 | ||
| 1583 | (let ((param-table (loop for formal in parameter-order | 1583 | (let ((param-table (loop for formal in parameter-order |
| @@ -1613,7 +1613,7 @@ document." | |||
| 1613 | "Create a SOAP request envelope for OPERATION using PARAMETERS. | 1613 | "Create a SOAP request envelope for OPERATION using PARAMETERS. |
| 1614 | WSDL is the wsdl document used to encode the PARAMETERS." | 1614 | WSDL is the wsdl document used to encode the PARAMETERS." |
| 1615 | (with-temp-buffer | 1615 | (with-temp-buffer |
| 1616 | (let ((*soap-encoded-namespaces* '("xsi" "soap" "soapenc")) | 1616 | (let ((soap-encoded-namespaces '("xsi" "soap" "soapenc")) |
| 1617 | (use (soap-bound-operation-use operation))) | 1617 | (use (soap-bound-operation-use operation))) |
| 1618 | 1618 | ||
| 1619 | ;; Create the request body | 1619 | ;; Create the request body |
| @@ -1624,9 +1624,9 @@ WSDL is the wsdl document used to encode the PARAMETERS." | |||
| 1624 | (insert "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<soap:Envelope\n") | 1624 | (insert "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<soap:Envelope\n") |
| 1625 | (when (eq use 'encoded) | 1625 | (when (eq use 'encoded) |
| 1626 | (insert " soapenc:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\"\n")) | 1626 | (insert " soapenc:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\"\n")) |
| 1627 | (dolist (nstag *soap-encoded-namespaces*) | 1627 | (dolist (nstag soap-encoded-namespaces) |
| 1628 | (insert " xmlns:" nstag "=\"") | 1628 | (insert " xmlns:" nstag "=\"") |
| 1629 | (let ((nsname (cdr (assoc nstag *soap-well-known-xmlns*)))) | 1629 | (let ((nsname (cdr (assoc nstag soap-well-known-xmlns)))) |
| 1630 | (unless nsname | 1630 | (unless nsname |
| 1631 | (setq nsname (cdr (assoc nstag (soap-wsdl-alias-table wsdl))))) | 1631 | (setq nsname (cdr (assoc nstag (soap-wsdl-alias-table wsdl))))) |
| 1632 | (insert nsname) | 1632 | (insert nsname) |