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>