Share via


Élément <xsd:complexType>

Définit un type complexe, qui détermine l'ensemble d'attributs et le contenu d'un élément.

<complexType
  abstract = Boolean : false
  block = (#all | List of (extension | restriction))
  final = (#all | List of (extension | restriction))
  id = ID
  mixed = Boolean : false
  name = NCName
  {any attributes with non-schema Namespace...}>
Content: (annotation?, (simpleContent | complexContent | ((group | all |
choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?))))
</complexType>

Attributs

  • abstract
    Indique si le type complexe peut être utilisé dans un document d'instance. Si cette valeur est true, un élément ne peut pas utiliser directement ce type complexe, mais un type complexe dérivé du type considéré. La valeur par défaut est false.

    Facultatif.

  • block
    Type de dérivation. L'attribut block empêche d'utiliser, à la place de ce type complexe, un type complexe ayant le type de dérivation spécifié. Cette valeur peut contenir #all ou une liste constituant un sous-ensemble de l'attribut extension ou restriction. L'attribut block n'est utilisé que lorsque, au cours de la validation, un document d'instance se substitue au type normal d'un élément en utilisant l'attribut schema-instance:type. L'attribut block peut empêcher des éléments de sélectionner des types complexes définis par extension et/ou restriction pour remplacer le type d'origine spécifié pour l'élément.

    extension

    Empêche des types complexes dérivés par extension d'être utilisés à la place de ce type complexe.

    restriction

    Empêche des types complexes dérivés par restriction d'être utilisés à la place de ce type complexe.

    #all

    Empêche tous les types complexes dérivés d'être utilisés à la place de ce type complexe.

    Facultatif.

  • final
    Type de dérivation. L'attribut final empêche le type spécifié de dérivation de cet élément complexType. Cette valeur peut contenir #all ou une liste constituant un sous-ensemble de l'attribut extension ou restriction.

    extension

    Empêche la dérivation par extension.

    restriction

    Empêche la dérivation par restriction.

    #all

    Empêche toute dérivation (que ce soit par extension ou par restriction).

    Facultatif.

  • id
    ID de cet élément. La valeur id doit être du type ID et unique dans le document contenant cet élément.

    Facultatif.

  • mixed
    Indique si des données de type caractère sont autorisées à apparaître entre les éléments enfants de ce type complexe. La valeur par défaut est false.

    Si l'élément simpleContent est un élément enfant, l'attribut mixed n'est pas autorisé.

    Si l'élément complexContent est un élément enfant, cet attribut mixed peut être substitué par l'attribut mixed sur l'élément complexContent.

    Facultatif.

  • name
    Nom du type. Ce nom doit être un NCName, comme défini dans la spécification des espaces de noms XML.

    Obligatoire si l'élément conteneur est l'élément schema ; sinon, interdit.

    S'il est spécifié, le nom doit être unique parmi tous les éléments simpleType et complexType.

    Facultatif.

Informations sur l'élément

Nombre d'occurrences

Illimité dans un schéma ; peut apparaître une fois dans un élément.

Éléments parents

element, redefine, schema

Contenu

annotation, simpleContent, complexContent, group, all, choice, sequence, attribute, attributeGroup, anyAttribute

Notes

Un type complexe constitue essentiellement une définition de type pour des éléments qui peuvent contenir des attributs et des éléments. Un élément peut être déclaré avec un attribut type faisant référence à un élément complexType qui définit la structure, le contenu et les attributs de cet élément. (Un élément peut aussi accepter une référence à un simpleType dans son attribut type.)

Un type complexe peut contenir un seul des éléments suivants, qui détermine le type de contenu autorisé dans le type complexe.

Élément Description

simpleContent

Le type complexe comporte des données de type caractère ou un simpleType en tant que contenu et ne contient aucun élément, mais peut contenir des attributs.

complexContent

Le type complexe contient uniquement des éléments ou aucun contenu d'élément (vide).

group

Le type complexe contient les éléments définis dans le groupe référencé.

sequence

Le type complexe contient les éléments définis dans la séquence spécifiée.

choice

Le type complexe accepte l'un des éléments spécifiés dans l'élément choice.

all

Le type complexe permet à certains ou la totalité des éléments spécifiés dans l'élément all d'apparaître une fois.

Si group, sequence, choice ou all est spécifié en tant qu'élément enfant, les attributs de l'élément complexType peuvent être déclarés, de façon facultative, à l'aide des éléments suivants.

Élément Description

attribute

Le type complexe contient l'attribut spécifié.

attributeGroup

Le type complexe contient les attributs définis dans l'attributeGroup référencé.

anyAttribute

Le type complexe peut contenir tout attribut du ou des espaces de noms spécifiés.

Vous pouvez utiliser un nombre quelconque d'éléments attribute ou attributeGroup. Une instance d'anyAttribute peut aussi être utilisée.

Si group, sequence, choice ou all est spécifié, les éléments doivent apparaître dans l'ordre suivant.

  1. group | sequence | choice | all

  2. attribute | attributeGroup

  3. anyAttribute

Exemples

L'exemple suivant illustre un type complexe qui contient un type simple (decimal) avec un attribut et une déclaration d'élément utilisant un type complexe.

L'exemple suivant montre une instance de l'élément myShoeSize dans un document XML.

L'exemple suivant montre l'élément myShoeSize avec la définition anonyme du complexType dans l'élément. (Notez l'absence de l'attribut name.)

Voir aussi

Référence

Référence du schéma XML (XSD)
Éléments de schéma XML