XSD - Tipi complessi

L'elemento complesso è un elemento XML che può contenere altri elementi e / o attributi. Possiamo creare un elemento complesso in due modi:

  • Definisci un tipo complesso e quindi crea un elemento utilizzando il type attributo

  • Definisci un tipo complesso direttamente nominando

Definire un tipo complesso e quindi creare un elemento utilizzando l'attributo 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' />

Definisci un tipo complesso direttamente nominando.

<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>

Di seguito è riportato l'elenco dei tipi complessi supportati da XSD.

S.No. Tipo e descrizione semplici
1

Vuoto

Complesso L'elemento di tipo complesso vuoto può avere solo attributi ma nessun contenuto.

2

Solo elementi

L'elemento di tipo complesso Solo elementi può contenere solo elementi

3

Solo testo

L'elemento di tipo complesso Solo testo può contenere solo attributi e testo.

4

Misto

L'elemento di tipo complesso misto può contenere elemento, attributo e testo.

5

Indicatori

Gli indicatori controllano il modo in cui gli elementi devono essere organizzati in un documento XML.

6

<qualsiasi>

L'elemento <any> viene utilizzato per gli elementi che non sono definiti dallo schema

7

<anyAttribute>

L'attributo <anyAttribute> viene utilizzato per attributi non definiti dallo schema.