def METHOD_NAME(self, method):
    #
    # Get parameter definitions for document literal.
    # The I{wrapped} vs I{bare} style is detected in 2 ways.
    # If there is 2+ parts in the message then it is I{bare}.
    # If there is only (1) part and that part resolves to a builtin then
    # it is I{bare}.  Otherwise, it is I{wrapped}.
    #
    pts = self.bodypart_types(method)
    wrapped = method.soap.input.body.wrapped
    if not wrapped:
        return pts
    result = []
    # wrapped
    for p in pts:
        resolved = p[1].resolve()
        for child, ancestry in resolved:
            if child.isattr():
                continue
            if self.bychoice(ancestry):
                log.debug(
                    '%s\ncontained by <choice/>, excluded as param for %s()',
                    child,
                    method.name)
                continue
            result.append((child.name, child))
    return result