L'élément complexType définit un type de données complexe pour des éléments XML.
<xsd:complexType
abstract = booléen : false
block = (#all | Liste de (extension | restriction))
final = (#all | Liste de (extension | restriction))
id = ID
mixed = booléen : false
name = NCName
{tout attribut ayant un espace de noms
différent de celui du schéma...}>
Contenu : (annotation?, (simpleContent | complexContent |
((group | all | choice | séquence)?,
((attribute | attributeGroup)*, anyAttribute?))))
</xsd:complexType>
L'élément complexType possède plusieurs attributs destinés à définir les caractéristiques du type de données complexe.
| Attributs | Description |
|---|---|
| abstract | provoque l'abstraction (true) de l'élément XML, devant être remplacé par un autre élément. |
| block | spécifie une valeur de blocage du type dans des éléments attendant le type de base. |
| default | précise une valeur par défaut pour l'élément. |
| final | empêche la dérivation de type par restriction, extension ou les deux. |
| id | précise un identificateur unique pour l'élément. |
| mixed | indique un contenu mixte (true) ou un contenu à base d'éléments seuls (false) par défaut. |
| name | indique le nom de l'élément XML. |
L'élément complexType ne peut être inclus que dans les éléments suivants :
Exemple [voir]<?xml version="1.0" encoding="ISO-8859-1"?>
<element_racine
attribut_racine="valeur"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="c:\schema.xsd">
<element_enfant attribut_enfant="valeur">
10 000 000 euros
</element_enfant>
<element_enfant
attribut_enfant="valeur"
snd_attribut_enfant="valeur">
<element_petit_enfant attribut_petit_enfant="valeur"/>
Chaîne de caractères...
</element_enfant>
<![CDATA[<p>Un texte...</p>]]>
</element_racine>
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xsd:complexType name="element_enfantType" mixed="true">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="element_petit_enfant"
type="element_petit_enfantType"/>
</xsd:choice>
<xsd:attribute name="attribut_enfant"
type="xsd:string" use="required"/>
<xsd:attribute name="snd_attribut_enfant"
type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="element_petit_enfantType">
<xsd:attribute name="attribut_petit_enfant"
type="xsd:string"
use="required"/>
</xsd:complexType>
<xsd:element name="element_racine">
<xsd:complexType mixed="true">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="element_enfant"
type="element_enfantType"/>
</xsd:choice>
<xsd:attribute name="attribut_racine"
type="xsd:string"
use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:schema> |