Les déclarations d’élément de schéma XML peuvent être de types simples ou complexes. Les déclarations d’attribut peuvent être de types simples. En règle générale, les éléments de types et d’attributs simples sont associés à des champs dans Designer. Les éléments de types complexes contiennent d’autres éléments ou attributs et sont généralement associés à des sous-formulaires.
Les types complexes servent à définir tous les autres éléments. Ils peuvent définir un contenu d’élément, un contenu simple, un contenu mixte et un contenu vide.
Tout élément de type complexe peut déclarer ou non des attributs.
Génération d’un sous-formulaire à partir d’un élément d’une source de données
Un élément qui ne comporte que du contenu d’élément et, facultativement, des attributs, génère un sous-formulaire lorsqu’on le glisse dans un modèle de formulaire.
Ce sous-formulaire contient des objets pour chacun des attributs déclarés dans l’élément et des objets ou des sous-formulaires pour chacun des éléments enfant.
Contenu simple
Un contenu est simple lorsqu’un élément est déclaré comme ayant un contenu simple (données texte) et qu’il peut aussi déclarer des attributs. Si l’élément ne déclare aucun attribut, l’association est la même que celle des éléments simples.
Lorsque des attributs sont déclarés, les éléments sont associés à un sous-formulaire portant le même nom que celui de l’élément. Ce sous-formulaire contient un champ lié à l’élément et des champs supplémentaires pour chacun des attributs. Le champ lié porte le même nom que l’élément auquel il est lié, avec la chaîne _data en suffixe. Par exemple, l’élément<phone> a un contenu numérique et un attribut nommé type :
<phone type="professionnel">5554567</phone>
Cela générera un sous-formulaire nommé phone qui contient les objets nommés type et phone_data. L’objet type est lié à $data...phone.type, le champ phone_data est lié à $data...phone.
Contenu mixte
Un contenu est considéré comme mixte lorsque la déclaration d’un élément indique qu’il contient un mélange d’éléments enfants et de contenu de texte brut.
Contenu vide
Les types complexes qui ont un contenu vide sont traités comme s’ils avaient un contenu simple. Ainsi, l’objet qui est créé et lié à l’élément ne peut pas avoir de contenu.
Occurrence
Les attributs d’occurrence d’un schéma XML (minOccurs et maxOccurs) pour les déclarations d’élément, qui génèrent des sous-formulaires, sont associés aux propriétés de répétition du sous-formulaire.
Modèles de contenu
Lorsque le modèle de contenu d’un élément enfant n’est pas une séquence, les associations tentent de modéliser le choix et tous les groupes à l’aide d’ensembles de sous-formulaires.