Um elemento complexo vazio não pode ter conteúdo, somente atributos.
Elementos vazios complexos
Um elemento XML vazio:
<product prodid="1345" />
O "product" elemento acima tem nenhum conteúdo de todo. Para definir um tipo sem conteúdo, é preciso definir um tipo que permite que os elementos no seu conteúdo, mas nós realmente não declarar quaisquer elementos, como este:
<xs:element name="product">
<xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:integer">
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:element>
No exemplo acima, define-se um tipo de complexo, com um teor de complexo. Os sinais elemento complexContent que pretendemos restringir ou alargar o modelo de conteúdo de um tipo complexo, ea restrição de número inteiro declara um atributo mas não introduz qualquer conteúdo elemento.
No entanto, é possível declarar o "product" elemento mais compacta, como este:
<xs:element name="product">
<xs:complexType>
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>
</xs:element>
Ou você pode dar o elemento complexType um nome, e deixar que o "product" elemento tem um atributo do tipo que se refere ao nome do complexType (se você usar esse método, vários elementos podem se referem ao mesmo tipo complexo):
<xs:element name="product" type="prodtype"/>
<xs:complexType name="prodtype">
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>