code: def get_reply(self, method, reply):
          
          reply = self.replyfilter(reply)
          sax = Parser()
          replyroot = sax.parse(string=reply)
          plugins = PluginContainer(self.options().plugins)
          plugins.message.parsed(reply=replyroot)
          soapenv = replyroot.getChild('Envelope')
          soapenv.promotePrefixes()
          soapbody = soapenv.getChild('Body')
          self.detect_fault(soapbody)
          soapbody = self.multiref.process(soapbody)
          nodes = self.replycontent(method, soapbody)
          rtypes = self.returned_types(method)
          if len(rtypes) > 1:
              result = self.replycomposite(rtypes, nodes)
              return (replyroot, result)
          if len(rtypes) == 1:
              if rtypes[0].unbounded():
                  result = self.replylist(rtypes[0], nodes)
                  return (replyroot, result)
              if len(nodes):
                  unmarshaller = self.unmarshaller()
                  resolved = rtypes[0].resolve(nobuiltin=True)
                  result = unmarshaller.process(nodes[0], resolved)
                  return (replyroot, result)
          return (replyroot, None)
docs: Process the I{reply} for the specified I{method} by sax parsing the
          I{reply} and then unmarshalling into python object(s).
          @param method: The name of the invoked method.
          @type method: str
          @param reply: The reply XML received after invoking the specified
              method.
          @type reply: str
          @return: The unmarshalled reply.  The returned value is an L{Object}
              for a I{list} depending on whether the service returns a single
              object or a collection.
          @rtype: tuple ( L{Element}, L{Object} )