XML
Data Islands
DTD
Namensräume
Schema
XLink
XPath
Links
ASCII Table
ISO-8859-1
Impressum

XML Schema Kompaktwissen

XML Schema wurde am 02.05.2001 verabschiedet. Die Definition findet sich unter folgenden URLs:

Anforderungen

  • Definition der Objekte und Regeln eines Vokabulars
  • Gebrauch der XML Syntax für die Definition des Schemas
  • Einführung von Datentypen
  • Validierung eines Dokuments gegen mehrere Namensräume

Die folgende Datei sei eine XML Schema Datei mit dem Namen "meinSchema.xsd":

<?xml version="1.0"?>
<!-- Es folgt das Root-Element der Schema Datei (*.xsd) -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<!-- hier stehen die Definitionen der Elemente und Typen -->

</xsd:schema>

Die Datei wird folgendermaßen in das Root Element eines XML Dokumentes eingebunden:

<?xml version="1.0"?>
<root
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="meinSchema.xsd"
>
</root>

Definition von atomaren Elementen
(Simple Types)

Elemente die keine Subelemente oder Attribute enthalten heißen atomare Elemente.

Die allgemeine Form für die Definition eines einfachen Datentypen sieht folgendermaßen aus:

<xsd:element name="Bezeichnung" type="xsd:Datentyp"/>

Im folgenden Beispiel wird ein einfaches Element namens "Wertung" erzeugt, das die ganzen Zahlen von 0 bis 10 annehmen kann.

<xsd:simpleType name="Wertung">
  <xsd:restriction base="xsd:integer">
    <xsd:minInclusive value="0"/>
    <xsd:maxInclusive value="10"/>
  </xsd:restriction>
</xsd:simpleType>

Definition von zusammengesetzten Elementen
(Complex Types)

Elemente die Subelemente oder Attribute enthalten heißen zusammengesetzte Elemente.

Die Definition dieser Elemente erfolgt in zwei Schritten.

  1. Über die Typangabe wird auf die Definition eines Typs verwiesen.
  2. Der Typ wird durch eine eigene Definition spezifiziert.

<xsd:element name="aufnahmen" type="aufnahmenTyp">

Sequence

<xsd:complexType name="aufnahmenTyp">
  <xsd:sequence>
    <xsd:element name="aufnahme“ type="aufnahmeTyp“
    minOccurs="0“
    maxOccurs="unbounded"/>
  </xsd:sequence>
</xsd:complexType>

Kardinalitäten

  • werden durch die Attibute minOccurs und maxOccurs festgelegt. 
  • mögliche Werte sind alle natürlichen Zahlen und "unbounded" für unbestimmt viele.
  • Defaultwert ist jeweils 1.

 

Definition von Attributen

Attribute werden als Child des zugehörigen Elementtyps definiert.

<xsd:complexType name="Element_Typ">
  <xsd:attribute name="Attributname" type="Attribut_Typ" use="required"/>
</xsd:complexType>

Die eigentliche Definition erfolgt dann über den Attribut Typ, analog zur Definition eines Elementtyps.

Das Attribut "use" kann folgende Werte annehmen:

  • required
  • optional
  • default (Wert)
  • fixed (Wert)
  • prohibitet