It depends on the mode of messaging that you use.
For RPC/literal you use complex types in the WSDL message-part because the
SOAP body content isn't a top level element out of the WSDL types (XML Schema) section but is simply an element named according to the operation specified in the WSDL portType section. For the document/literal mode of messaging the SOAP body content has to be a valid top level element (i.e. document) as defined in the WSDL types (XML Schema) section - so you must use a top-level element as the one and only part in the WSDL message definition (the operation name of the WSDL portType doesn't appear anywhere in the SOAP body or message).
Which style of WSDL should I use? The "Wrapped" Document/Literal convention