XSD - Tipos complejos

El elemento complejo es un elemento XML que puede contener otros elementos y / o atributos. Podemos crear un elemento complejo de dos formas:

  • Defina un tipo complejo y luego cree un elemento usando el type atributo

  • Definir un tipo complejo directamente nombrando

Defina un tipo complejo y luego cree un elemento usando el atributo de tipo.

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

Defina un tipo complejo directamente nombrando.

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

A continuación se muestra la lista de tipos complejos que admite XSD.

S.No. Tipo y descripción simples
1

Vacío

Complejo El elemento de tipo complejo vacío solo puede tener atributos pero no contenido.

2

Solo elementos

El elemento de tipo complejo solo elementos solo puede contener elementos

3

Solo texto

El elemento de tipo complejo de solo texto solo puede contener atributos y texto.

4

Mezclado

El elemento de tipo complejo mixto puede contener elemento, atributo y texto.

5

Indicadores

Los indicadores controlan las formas en que se organizarán los elementos en un documento XML.

6

<cualquier>

El elemento <any> se usa para elementos que no están definidos por el esquema

7

<cualquier atributo>

El atributo <anyAttribute> se usa para atributos que no están definidos por el esquema.