Strukturfragen
Teil 7: XML-Kurs 3
- XML-Kurs 3
- Teil 2: XML-Kurs 3
- Teil 3: XML-Kurs 3
- Teil 4: XML-Kurs 3
- Teil 5: XML-Kurs 3
- Teil 6: XML-Kurs 3
- Teil 7: XML-Kurs 3
- Teil 8: XML-Kurs 3
Ein Schema steht immer innerhalb von <schema>-Tags. Der Namespace ist der offizielle, vom W3C vorgegebene:
<xs:schema xmlns:xs='https://
www.w3.org/2001/XMLSchema'>
Zum besseren Verständnis ändern wir die Reihenfolge der Elemente ein wenig. Zuerst kommt bei uns das news-Wurzelelement des XML-Dokuments:
<xs:element name='news'>
<xs:complexType><xs:sequence><xs:element ref='nachricht' minOccurs='1'
maxOccurs='unbounded'/></xs:sequence></xs:complexType></xs:element>
Sie erkennen hier schon den grundlegenden Aufbau eines Schemas: Ein Element wird mit -Tags eingeschlossen. Darin folgen die Elemente, die es enthält. Das Wurzelelement enthält bei uns nur nachricht-Tags, und zwar beliebig viele von 1 (minOccurs legt dies fest) bis unendlich (maxOccurs='unbounded').
Das Element nachricht wiederum wird im Anschluss definiert. Es enthält zwei Elemente und ein Attribut:
<xs:element name='nachricht'>
<xs:complexType><xs:sequence><xs:element ref='titel' minOccurs='1'
maxOccurs='unbounded'/><xs:element ref='inhalt' minOccurs='0'
maxOccurs='1'/></xs:sequence><xs:attribute name='id' use='required'
type='xs:ID'/></xs:complexType></xs:element>
Zum Schluss folgen noch die beiden Elemente titel und inhalt:
<xs:element name='titel'>
<xs:complexType mixed='true'></xs:complexType></xs:element><xs:element name='inhalt'><xs:complexType mixed='true'></xs:complexType></xs:element>
Hier könnten wir statt eines komplexen Datentyps (complexType) einen einfachen Datentyp wie beispielsweise einen String oder einen Wahrheitswert angeben:
<xs:element name='inhalt'>
<xs:simpleType><xs:restriction base="xs:String"></xs:simpleType></xs:element>
Wenn Sie mehr über Schemata erfahren möchten, beginnen Sie auf der offiziellen Seite des W3Cs am besten mit dem Primer, einer Art Einführung: www.w3.org/TR/xmlschema-0/.
Diese - relativ einfache - Syntax macht ein Schema-Dokument zu einem flexiblen Werkzeug. Der einzige Nachteil: Sie wird relativ lang. Hier helfen Werkzeuge wie das oben schon erwähnte "dtd2xs". Das W3C listet unter www.w3.org/XML/Schema#Tools selbst einige Werkzeuge auf. Dazu kommen natürlich die kommerziellen Editoren wie der beim W3C erwähnte "XML Spy" und das nicht erwähnte "XMetal" von Corel.