<XML Schema Complete Reference
Définition et utilisation
L'élément complexType définit un type complexe. Un élément de type complexe est un élément XML qui contient d'autres éléments et / ou attributs.
Informations sur l'élément
- Parent elements: élément, redéfinir le schéma
Syntaxe
<complexType
id=ID
name=NCName
abstract=true|false
mixed=true|false
block=(#all|list of (extension|restriction))
final=(#all|list of (extension|restriction))
any attributes
>
(annotation?,(simpleContent|complexContent|((group|all|
choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?))))
</complexType>
(Le signe? Déclare que l'élément peut se produire zéro ou une fois, et le signe * déclare que l'élément peut se produire zéro ou plusieurs fois à l'intérieur de l'élément complexType)
Attribut | La description |
---|---|
id | Optionnel. Indique un identifiant unique pour l'élément |
name | Optionnel. Indique un nom pour l'élément |
abstract | Optionnel. Indique si le type complexe peut être utilisé dans un document d'instance. Vrai indique qu'un élément ne peut pas utiliser ce type complexe directement, mais doit utiliser un type complexe dérivé de ce type complexe. Par défaut est faux |
mixed | Optionnel. Indique si les données de caractère peuvent apparaître entre les éléments de cet élément de complexType enfant. Par défaut est faux. Si un élément simpleContent est un élément enfant, le mixed attribut est pas autorisé! |
block | Optionnel. Empêche un type complexe qui a un type de dérivation spécifié soit utilisé à la place de ce type complexe. Cette valeur peut contenir #all ou une liste qui est un sous-ensemble d'extension ou restriction:
|
final | Optionnel. Prévient un mode particulier de dérivation de cet élément de type complexe. Peut contenir #all ou une liste qui est un sous-ensemble d'extension ou de restriction.
|
any attributes | Optionnel. Indique tous les autres attributs avec non-schema espace de noms |
Exemple 1
L'exemple suivant présente un élément nommé "note" qui est d'un type complexe:
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
exemple 2
L'exemple suivant présente un type complexe, "fullpersoninfo" , qui dérive d'un autre type complexe, "personinfo" , en étendant le type hérité avec trois éléments supplémentaires (address, city and country) :
<xs:element name="employee" type="fullpersoninfo"/>
<xs:complexType name="personinfo">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="fullpersoninfo">
<xs:complexContent>
<xs:extension base="personinfo">
<xs:sequence>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
Dans l'exemple ci - dessus le "employee" élément doit contenir, dans l' ordre, les éléments suivants: "firstname" , "lastname" , "address" , "city" , et "country" .
<XML Schema Complete Reference