'Get the soap message for the specified method, args and soapheaders.
This is the entry point for creating the outbound soap message.
@param method: The method being invoked.
@type method: I{service.Method}
@param args: A list of args for the method invoked.
@type args: list
@param kwargs: Named (keyword) args for the method invoked.
@type kwargs: dict
@return: The soap envelope.
@rtype: L{Document}'

def get_message(self, method, args, kwargs):

    content = self.headercontent(method)
    header = self.header(content)
    content = self.bodycontent(method, args, kwargs)
    body = self.body(content)
    env = self.envelope(header, body)
    if self.options().prefixes:
        body.normalizePrefixes()
        env.promotePrefixes()
    else:
        env.refitPrefixes()
    return Document(env)
