Leere XSD -Elemente
Ein leeres komplexes Element kann keinen Inhalt haben, sondern nur Attribute.
Komplexe leere Elemente
Ein leeres XML-Element:
<product prodid="1345" />
Das obige Element "Produkt" hat überhaupt keinen Inhalt. Um einen Typ ohne Inhalt zu definieren, müssen wir einen Typ definieren, der Elemente in seinem Inhalt zulässt, aber wir deklarieren eigentlich keine Elemente, wie hier:
<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>
Im obigen Beispiel definieren wir einen komplexen Typ mit einem komplexen Inhalt. Das Element complexContent signalisiert, dass wir beabsichtigen, das Inhaltsmodell eines komplexen Typs einzuschränken oder zu erweitern, und die Einschränkung von integer deklariert ein Attribut, führt aber keinen Elementinhalt ein.
Es ist jedoch möglich, das Element "product" kompakter zu deklarieren, wie folgt:
<xs:element name="product">
<xs:complexType>
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>
</xs:element>
Oder Sie geben dem complexType-Element einen Namen und lassen das "product"-Element ein type-Attribut haben, das auf den Namen des complexType verweist (wenn Sie diese Methode verwenden, können mehrere Elemente auf denselben komplexen Typ verweisen):
<xs:element name="product" type="prodtype"/>
<xs:complexType name="prodtype">
<xs:attribute name="prodid" type="xs:positiveInteger"/>
</xs:complexType>