1. XML-Allgemein
1.1. Wann und warum wurden XML - Schema eingeführt ?2. Beispiele/Anwendung
1.2. Grenzen/Nachteile der DTDs
1.3. Neuerungen in XML Schema
2.1. Struktur eines XML-Elementes3. XML-Allgemein
2.2. Definition eines Elementtyps: complexType
2.3. Deklaration von Elementen: element
2.4. Deklaration von Attributen: attribute
2.5. Einfache Datentypen: simpleType
2.6. Schlüsselbeziehungen: key, keyref
2.7. Typdefinition ausgehend von bestehenden Typen: extension
2.8. Kommentare in XML Schema: annotation
4. Beispielschema und -instanz
<RechnungAn Land="Deutschland">
<Name>Werner Hansen</Name>
<Strasse>An der Kogge 12</Strasse>
<Stadt>Lüttenklein</Stadt>
<Bundesland>Schleswig-Holstein</Bundesland>
<Postleitzahl>21098</Postleitzahl>
</RechnungAn>
<xs:element name="RechnungAn">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Strasse" type="xs:string"/>
<xs:element name="Stadt" type="xs:string"/>
<xs:element name="Bundesland" type="xs:string"/>
<xs:element name="Postleitzahl" type="xs:decimal"/>
</xs:sequence>
<xs:attribute name="Land" type="xs:NMTOKEN">
</xs:complexType>
</xs:element>
<Kaufauftrag KaufDatum="1999-10-20">
<RechnungAn Land="Deutschland">
<Name>Mathilde Hüppenberger</Name>
<Strasse>Am Dorfteich 33</Strasse>
<Stadt>Eckarnförde</Stadt>
<Bundesland>Mecklenburg-Vorpommern</Bundesland>
<Postleitzahl>25678</Postleitzahl>
</RechnungAn>
</Kaufauftrag>
<xs:complexType name="Kaufauftrag">
<xs:element name="RechnungAn" type="deutscheAddresse"/>
<xs:attribute name="KaufDatum" type="xs:date"/>
</xs:complexType>
Angabe eines Wertebereichs:
<xs:element name="Anzahl">
<xs:simpleType>
<xs:restriction base="xs:positiveInteger">
<xs:maxExclusive value="333"/>
<xs:minInclusive value="111"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Definition eines String-Musters durch reguläre Ausdrücke:
<xs:simpleType name="DatumBRD">
<xs:restriction base="xs:string">
<xs:pattern value="\d{2}-\d{2}-\d{4}"/>
</xs:restriction>
</xs:simpleType>
Explizites Angeben aller möglichen Werte:
<xs:simpleType name="NeueBundesländer">
<xs:restriction base="xs:string">
<xs:enumeration value="Berlin"/>
<xs:enumeration value="Mecklenburg-Vorpommern"/>
<xs:enumeration value="Brandenburg"/>
<xs:enumeration value="Thüringen"/>
<xs:enumeration value="Sachsen"/>
<xs:enumeration value="Sachsen-Anhalt"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Bundesländerliste">
<xs:list itemType="NeueBundesländer"/>
</xs:simpleType>
<xs:simpleType name="ZweiBundesländer">
<xs:restriction base="Bundesländerliste">
<xs:length value="4"/>
</xs:restriction>
</xs:simpleType>
Beispiel:
<xs:element name="Person" minOccurs="5" maxOccurs="50">
<xs:complexType>
<xs:sequence>
<xs:element name="Vorname" type="xs:string"/>
<xs:element name="Nachname" type="xs:string"/>
</xs:sequence>
<xs:attribute name="Kennung" type="xs:integer"/>
</xs:complexType>
</xs:element>
<xs:key name="Schlüssel">
<xs:selector xpath = "Person" />
<xs:field xpath = "@Kennung" />
</xs:key>
<xs:element name="Chef">
<xs:keyref refer="Schlüssel"/>
</xs:element>
Die wichtigsten Vorteile der XML Schema Sprache gegenüber den DTDs sind die stark verbesserten Möglichkeiten zur internen Strukturierung und Modularisierung von Schema Dokumenten sowie die höhere Ausdrucksmächtigkeit, insbesondere bei der Beschreibung von semantischen Gültigkeitsbedingungenen und Wertebereichen. Mittelfristig wird XML Schema parallel zum DTD-Mechanismus existieren und ergänzend eingesetzt werden, langfristig ist mit breiter Marktakzeptanz und damit Ablösung der DTDs zu rechnen.