Пустые составные XML элементы не могут содержать контент, только атрибуты.
Пустой XML элемент:
<product prodid="1345" />
У приведенного выше элемента "product" нет никакого контента. Чтобы определить тип без контента, необходимо определить тип, который допускает в качестве контента другие элементы, однако сами эти элементы не декларируются:
<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>
В приведенном выше примере мы определяем составной тип с составным контентом. complexContent сигнализирует о том, что мы намерены ограничить или расширить модель контента составного типа, а ограничение "integer" определяет один атрибут, но не вводит никакого контента.
При этом можно декларировать элемент "product" более компактно:
<xs:element name="product">
<xs:complexType>
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>
</xs:element>
Либо можно дать элементу complexType имя, а элементу "product" задать атрибут type, в котором указать имя complexType (если используется данный метод, то один и тот же составной тип могут использовать несколько элементов):
<xs:element name="product" type="prodtype"/>
<xs:complexType name="prodtype">
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>