XSD - Apenas Elemento Complexo

Somente os elementos complexos podem ter outros elementos. Veja o seguinte exemplo -

<student>	 
   <firstname>Vaneet</firstname>
   <lastname>Gupta</lastname>
   <nickname>Vinni</nickname>
   <marks>95</marks>
</student>

Podemos declarar o elemento complexo apenas de elementos usando os seguintes métodos -

Use o atributo de tipo

Defina um elemento de tipo complexo "StudentType" e, em seguida, crie um elemento chamado student do tipo StudentType.

<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:string"/>
   </xs:sequence>
</xs:complexType>

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

No exemplo acima, usamos sequence. É usado para manter a ordem em que os elementos devem estar presentes no XML. Se o pedido não for mantido, o XML não será validado.

Use ComplexType sozinho

Defina um elemento de complexType apenas com o elemento de atributo necessário.

<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:string"/>
      </xs:sequence>
      <xs:attribute name = 'rollno' type = 'xs:positiveInteger'/>
   </xs:complexType>			  
</xs:element>