L'élément complexContent permet de définir un contenu complexe pour un élément XML.
<xsd:complexContent
id = ID
mixed = booléen
{tout attribut ayant un espace de noms
différent de celui du schéma...}>
Contenu : (annotation?, (restriction | extension))
</xsd:complexContent>
L'élément complexContent possède deux attributs définissant le contenu complexe.
| Attributs | Description |
|---|---|
| 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. |
L'élément complexContent ne peut être inclus que dans l'élément suivant :
Exemple [voir]<?xml version="1.0"?>
<element_racine
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="c:\schema.xsd">
<personne xsi:type="type_francaise">
<nom>FRAGIL</nom>
<prenom>Antoine</prenom>
<adresse>10 rue des Anges</adresse>
<code_postal>77200</code_postal>
<ville>Torcy</ville>
</personne>
<personne xsi:type="type_autre">
<nom>FARUGGI</nom>
<prenom>Marco</prenom>
<adresse>Via G.B. Vico, 33</adresse>
<code_postal>00144</code_postal>
<ville>Roma</ville>
<pays>Italia</pays>
</personne>
<personne xsi:type="type_francaise">
<nom>LEGER</nom>
<prenom>Bruno</prenom>
<adresse>22 rue des Poissonniers</adresse>
<code_postal>75000</code_postal>
<ville>Paris</ville>
</personne>
</element_racine>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xsd:complexType name="type_personne" block="restriction">
<xsd:sequence>
<xsd:element name="nom" type="xsd:string"/>
<xsd:element name="prenom" type="xsd:string"/>
<xsd:element name="adresse" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="type_francaise">
<xsd:complexContent>
<xsd:extension base="type_personne">
<xsd:sequence>
<xsd:element name="code_postal"
type="xsd:positiveInteger"/>
<xsd:element name="ville" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="type_autre">
<xsd:complexContent>
<xsd:extension base="type_personne">
<xsd:sequence>
<xsd:element name="code_postal"
type="xsd:positiveInteger"/>
<xsd:element name="ville" type="xsd:string"/>
<xsd:element name="pays" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="element_racine">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="personne"
type="type_personne"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema> |