| Teile: | Teil: XML Teil: PHP Quellenverzeichnis |
| Pfad: | > Teil: XML > XML-Schema > Element-Inhalte |
| Benachbarte Abschnitte: | Komplexe Typen simplen Typs Gemischte Inhalte Leerer Inhalt anyType |
Die Fragestellung lautet hier: Wie deklariert man ein Element, das zwar Inhalte eines simplen Typs haben soll, jedoch auch über ein Attribut verfügen soll. Ein solches Element wäre etwa das im folgenden Beispiel.
<internationalPrice currency="EUR">423.46</internationalPrice>
Simple Typen können, wie erwähnt, nicht über Attribute verfügen. Daher muss ein komplexer Typ definiert werden, der eine Attributdeklaration aufnehmen kann. Aus diesem Grund muss in diesem Fall ein komplexer Typ vom simplen Typ abgeleitet werden.
<xsd:element name="internationalPrice">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:decimal">
<xsd:attribute name="currency" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
Zunächst wird ein complexType-Element für die Definition eines anonymen Typs verwendet. Um anzuzeigen, das der Inhalt des neuen Typs lediglich Zeichendaten enthalten darf, wird das simpleContent-Element eingesetzt. Schließlich wird vom simplen Typen decimal hergeleitet, welcher um das Attribut currency erweitert wird indem eine normale Attributdeklaration verwendet wird. Ein auf diese Art definierter Typ erfüllt die Anforderungen an ein Element, wie es in "Beispiel 31: Element simplen Typs mit Attribut" angewendet wird.






