Complex Types no WSDL
Quando precisamos trafegar via SOAP tipos de dados que não sejam tipos primitivos das linguagens de programação como: inteiro, string, double, eles precisam ser explícitos no corpo do WSDL. Tipos de dados não primitivos, normalmente são dados que são uma coleção (Array) ou que compõem uma, como por exemplo, os tipos “AreaNegocio” e “ColecaoAreaNegocio” visualizados na Figura 1, mais especificamente nos nodos “<xsd:complexType name=”AreaNegocio”>” e “<xsd:complexType name=”ColecaoAreaNegocio”>”. Pode-se observar na leitura simples do XML que o tipo “AreaNegocio” é composto de 4 elementos “AreaNegocioID”, “Nome”, “DescricaoResumida” e “Exclui”, respectivamente. E o tipo de dado “ColecaoAreaNegocio” é uma coleção de dados “AreaNegócio”, previamente declarado. Além do tipo primitivo de cada elemento, pode-se definir outras propriedades que podem ser úteis para a integração, neste caso foi declarado o tamanho de cada elemento de “AreaNegocio” com a propriedade “size”.

Figura 1 - Exemplo da utilização e complex types dentro de um WSDL