Link zu www.kneller-gifs.de

XML-Schema - Einführung

Der Zweck von XML-Schemata ist, XML-Schnittstellen so genau wie möglich zu beschreiben. XML-Schnittstellen können zum Beispiel Datenschnittstellen zwischen Computersystemen sein. Die Beschreibung der im XML zulässigen Datenstrukturen und Dateninhalten erfolgt über ein oder mehrere XML-Schemata. Ein XML-Schema wird auch als XSD (XML-Schema-Definition) bezeichnet und mit der Endung ".xsd" gespeichert.

Konkret wird per XML-Schema beschrieben:

Mit Hilfe eines Parsers oder eines anderen XML-Tools kann ein XML-Dokument gegen ein XMNL-Schema geprüft werden. Es wird geprüft, ob der XML-Datenstrom den Regeln des XML-Schemas entspricht.

Ein XML-Schema ist genau wie eine XML-Datei aufgebaut, also mit öffnenden und schließenen Elementtags.

Beispiel für ein XML-Dokument, das Fahrzeugdaten enthält (gespeichert als "fahrzeug.xml"):
<?xml version="1.0" encoding="UTF-8"?>
<Fahrzeug>
  <Farbe>Rot</Farbe>
  <Kw>111</Kw>
  <Verbrauch>9.5</Verbrauch>
</Fahrzeug>
Das XML-Dokument beginnt standardmäßig in der ersten Zeile mit dem Hinweis auf die verwendete XML-Version und die Zeichenkodierung.
Es folgt das Wurzelelement "Fahrzeug" und darunter drei Unterelemente "Farbe", "Kw" und "Verbrauch".

Beispiel für eine XML-Schemadatei, die Regeln für obiges XML-Dokument vorgibt (gespeichert als "fahrzeug.xsd"):
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Fahrzeug">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Farbe" type="xs:string"/>
        <xs:element name="Kw" type="xs:integer"/>
        <xs:element name="Verbrauch" type="xs:decimal"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
Das XML-Schema beginnt standardmäßig mit dem Hinweis auf die verwendete XML-Version und die Zeichenkodierung.
Dann wird ein Namespace definiert und durch das Kürzel "xs" (könnte auch "xsd" oder "abc" sein) ein Bezug zum verwendeten W3C-Namespace hergestellt.
(Durch Namespaces können z.B. mehrere Elemente mit gleichem Namen aus unterschiedlichen Namespaces konfliktfrei in einem XML-Dokument genutzt werden.

Das Element "Fahrzeug" beinhaltet keine eigentlichen Daten, sondern weitere Elemente, deshalb wird es als komplexer Typ einer Sequenz definiert.
Dieser komplexe Typ beinhaltet drei Unterlemente und deren Typdefinitionen (also was im jeweiligen Element als Inhalt erlaubt ist).
Jedes Element und jeder Typ hat das Präfix "xs" und wird dadurch dem W3C-Schema-Vokabular zugeordnet.


Validieren/Testen einer XML-Datei gegen ein XML-Schema:
Bei validome.org können XML und XSD online getestet werden. Alternativ bei tools.decisionsoft.com/schemaValidate.
Oder man nimmt ein kostenloses XML-Freeware- oder Sharewaretool ("XMLSPEAR"), Profis nutzen Sax-/Xerces-Parser oder XML-Spy...