1.1 --- a/libxml2dom/soap.py Sat Oct 06 19:33:47 2007 +0000
1.2 +++ b/libxml2dom/soap.py Sat Oct 06 20:46:13 2007 +0000
1.3 @@ -32,7 +32,7 @@
1.4 from libxml2dom.macrolib import *
1.5 from libxml2dom.macrolib import \
1.6 createDocument as Node_createDocument
1.7 -from libxml2dom.rpc import ParameterName
1.8 +from libxml2dom.rpc import ParameterName, ParameterValue
1.9
1.10 # SOAP-related namespaces.
1.11
1.12 @@ -225,13 +225,13 @@
1.13 def _parameters(self):
1.14 return self.xpath("*")
1.15
1.16 - def _rawParameterValues(self):
1.17 + def _parameterValues(self):
1.18 values = []
1.19 for parameter in self.parameters:
1.20 values.append(self._get_value(parameter))
1.21 return values
1.22
1.23 - def _setRawParameterValues(self, parameters):
1.24 + def _setParameterValues(self, parameters):
1.25 for node in self.parameters:
1.26 self.removeChild(node)
1.27
1.28 @@ -240,27 +240,23 @@
1.29 for parameter in parameters:
1.30 self._add_value(self, parameter)
1.31
1.32 - def _parameterValues(self):
1.33 - return libxml2dom.rpc.convert(self.rawParameterValues, getattr(self.ownerDocument, "converters", None))
1.34 -
1.35 # Internal methods.
1.36
1.37 def _add_value(self, value, parameter):
1.38
1.39 "Add to the 'value' element the given 'parameter'."
1.40
1.41 - parameter_name, parameter_value = parameter
1.42 - container = self.ownerDocument.createElementNS(*parameter_name)
1.43 + container = self.ownerDocument.createElementNS(parameter.name.ns, parameter.name.name)
1.44 value.appendChild(container)
1.45 - if isinstance(parameter_value, (list, dict)):
1.46 - if isinstance(parameter_value, dict):
1.47 - items = parameter_value.items()
1.48 + if isinstance(parameter.value, (list, dict)):
1.49 + if isinstance(parameter.value, dict):
1.50 + items = parameter.value.items()
1.51 else:
1.52 - items = parameter_value
1.53 + items = parameter.value
1.54 for item in items:
1.55 self._add_value(container, item)
1.56 else:
1.57 - text = self.ownerDocument.createTextNode(unicode(parameter_value))
1.58 + text = self.ownerDocument.createTextNode(unicode(parameter.value))
1.59 container.appendChild(text)
1.60
1.61 def _get_value(self, parameter):
1.62 @@ -272,16 +268,15 @@
1.63 items = []
1.64 for element in elements:
1.65 items.append(self._get_value(element))
1.66 - return ParameterName(parameter.namespaceURI, parameter.name), items
1.67 + return ParameterValue(ParameterName(parameter.namespaceURI, parameter.name), items)
1.68 else:
1.69 - return ParameterName(parameter.namespaceURI, parameter.name), parameter.textContent.strip()
1.70 + return ParameterValue(ParameterName(parameter.namespaceURI, parameter.name), parameter.textContent.strip())
1.71
1.72 methodName = property(_methodName)
1.73 resultParameter = property(_resultParameter)
1.74 resultParameterValue = property(_resultParameterValue)
1.75 parameters = property(_parameters)
1.76 - rawParameterValues = property(_rawParameterValues, _setRawParameterValues)
1.77 - parameterValues = property(_parameterValues)
1.78 + parameterValues = property(_parameterValues, _setParameterValues)
1.79
1.80 class SOAPFaultElement(SOAPNode):
1.81