XSD - Types complexes

L'élément complexe est un élément XML qui peut contenir d'autres éléments et / ou attributs. Nous pouvons créer un élément complexe de deux manières -

  • Définissez un type complexe puis créez un élément à l'aide du type attribut

  • Définissez un type complexe directement en le nommant

Définissez un type complexe, puis créez un élément à l'aide de l'attribut type.

<xs:complexType name = "StudentType">
   <xs:sequence>
      <xs:element name = "firstname" type = "xs:string"/>
      <xs:element name = "lastname" type = "xs:string"/>
      <xs:element name = "nickname" type = "xs:string"/>
      <xs:element name = "marks" type = "xs:positiveInteger"/>
   </xs:sequence>
   <xs:attribute name = 'rollno' type = 'xs:positiveInteger'/>
</xs:complexType>

<xs:element name = 'student' type = 'StudentType' />

Définissez un type complexe directement en le nommant.

<xs:element name = "student">
   <xs:complexType>   
      <xs:sequence>
         <xs:element name = "firstname" type = "xs:string"/>
         <xs:element name = "lastname" type = "xs:string"/>
         <xs:element name = "nickname" type = "xs:string"/>
         <xs:element name = "marks" type = "xs:positiveInteger"/>
      </xs:sequence>
   <xs:attribute name = 'rollno' type = 'xs:positiveInteger'/>
   </xs:complexType>
<xs:element>

Voici la liste des types complexes pris en charge par XSD.

S.No. Type et description simples
1

Vide

Complex L'élément de type complexe vide ne peut avoir que des attributs mais pas de contenu.

2

Éléments seulement

L'élément de type complexe Elements-Only ne peut contenir que des éléments

3

Texte seulement

L'élément de type complexe Texte uniquement ne peut contenir que des attributs et du texte.

4

Mixte

L'élément de type complexe mixte peut contenir un élément, un attribut et du texte.

5

Indicateurs

Les indicateurs contrôlent la manière dont les éléments doivent être organisés dans un document XML.

6

<any>

L'élément <any> est utilisé pour les éléments qui ne sont pas définis par le schéma

sept

<anyAttribute>

L'attribut <anyAttribute> est utilisé pour les attributs qui ne sont pas définis par le schéma.