Tipos complexos

Declarações de elementos de esquema XML podem ter tipos simples ou complexos. Declarações de atributos podem ter tipos simples. Em geral, elementos com atributos e tipos simples são mapeados para campos no Designer. Elementos com tipos complexos contêm outros elementos e atributos, ou outros atributos, e são geralmente mapeados para subformulários.

Tipos complexos são usados para definir todos os outros elementos. Esses tipos podem definir um conteúdo de elementos, um conteúdo simples, um conteúdo misto e um conteúdo vazio.

Qualquer elemento do tipo complexo pode ou não declarar atributos.

Como um subformulário é gerado do conteúdo de elemento em uma fonte de dados

Um elemento que tem apenas o conteúdo do elemento e, opcionalmente, atributos, gerará um subformulário quando arrastado para o design do formulário.

Esse subformulário conterá objetos para cada atributo declarado no elemento e objetos ou subformulários para cada elemento filho.

Conteúdo simples

O conteúdo simples é o local em que um elemento é declarado para conter conteúdo simples (dados de texto) e também pode declarar atributos. No caso em que o elemento não declara atributos, o mapeamento é o mesmo daquele feito para elementos simples.

Quando atributos são declarados, o mapeamento dos elementos é feito para um subformulário que é nomeado com o uso do nome do elemento. Esse subformulário conterá um campo vinculado ao elemento e campos adicionais para cada atributo. O nome do campo vinculado ao elemento será o nome do elemento com a string "_data" anexada. Um exemplo disso é um elemento (por exemplo, <phone>) que possui conteúdo numérico e um atributo com o nome type:

<phone type="work">5554567</phone>

Isto gerará um subformulário com nome phone contendo objetos nomeados como type e phone_data. O objeto type é vinculado a $data...phone.type, o campo phone_data é vinculado a $data...phone.

Conteúdo misto

O conteúdo misto existe quando um elemento é declarado para conter uma mistura de elementos filho e conteúdo de texto.

Conteúdo vazio

Tipos complexos com conteúdo vazio serão tratados como conteúdo simples, no qual o objeto criado e vinculado ao elemento não tem conteúdo permitido.

Ocorrência

Os atributos de ocorrência do Esquema XML (minOccurs e maxOccurs) para declarações de elementos, que geram subformulários, serão mapeados para as propriedades de repetição do subformulário.

Modelos de conteúdo

Sempre que o modelo de conteúdo para os filhos de um elemento é tudo, menos uma sequência, os mapeamentos tentarão modelar a opção e todos os grupos com o uso de subformSets.