| Teile: | Teil: XML Teil: PHP Quellenverzeichnis |
| Pfad: | > Teil: XML > XML-Schema > Element-Inhalte |
| Benachbarte Abschnitte: | Komplexe Typen simplen Typs Gemischte Inhalte Leerer Inhalt anyType |
Angenommen, man möchte im internationalPrice Element sowohl die Währung als auch den Betrag als Attribut angeben, und das Element ansonsten leer belassen.
<internationalPrice currency="EUR" value="423.46"/>
Um dies zu erreichen, deklariert man ein Element, welches ausschließlich Kindelemente als Inhalt haben darf, ohne jedoch Kindelemente anzugeben.
<xsd:element name="internationalPrice">
<xsd:complexType>
<xsd:complexContent>
<xsd:restriction base="xsd:anyType">
<xsd:attribute name="currency" type="xsd:string"/>
<xsd:attribute name="value" type="xsd:decimal"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
In diesem Beispiel wird ein anonymer Typ mit complexContent (also nur Elemente) definiert, Das complexContent-Element deutet an, dass das Inhaltsmodell anschliessend eingeschränkt oder erweitert werden soll und die Restriktion von anType deklariert zwei Attribute, führt allerdings keine Elemente ein.
Die hier gezeigte Deklaration ist allerdings ziemlich umständlich.
<xsd:element name="internationalPrice">
<xsd:complexType>
<xsd:attribute name="currency" type="xsd:string"/>
<xsd:attribute name="value" type="xsd:decimal"/>
</xsd:complexType>
</xsd:element>
Diese kürzere Schreibweise funktioniert ohne simpleContent und complexContent, da sie als Kurzschreibweise interpretiert wird für complexContent mit der Restriktion von anyType.






