XML Schema Language
Aufbau und Bedeutung der XML Schema Sprache und Vergleich mit der DTD-Sprache
... [ Inhalt ] ... [ Seminar XML ] ...
Einführung
Was ist XML Schema ?
XML Schema ist ein neuer Ansatz zur Definition von Dokument Typen und damit zur Spezifikation von XML-Sprachen. Die endgültige Verabschiedung durch das Worl Wide Web Konsortium (W3C) steht noch aus, ist jedoch im Laufe des nächsten Jahres zu
erwarten.
Mit der Erhebung der eXtensible Markup Language (XML) zum Industriestandard 1998 hatte sich zunächst die von der Standardized Generalized Markup Language (SGML) übernommene Document Type Definition (DTD) als Format zur Beschreibung konkreter
XML-Sprachen etabliert.
Doch mit der starken Verbreitung von XML in der Praxis machten sich zunehmend die Grenzen und Nachteile der DTD's bemerkbar; insbesondere die dokumentenzentrierte Sichtweise der DTD's unter Vernachlaessigung von Datentypen erweist sich
in Zeiten der Annährung der Programmiersprachen an die Datenmodellierung als Problem.
So lassen sich zwar mittels dem XML Metadata Interchange Format (XMI) auch jetzt schon aus ojektorientierten Datenmodellen, beschrieben etwa durch die Unified Modeling Language (UML), oder auch direkt aus z.B. einer Javaklasse, passende XML Sprachen automatisch
generieren, doch lassen DTDs weder die Beschreibung bestimmter semantischer Bedingungen noch die Festlegung von Wertebereichen zu.
Gerade die zunehmende Verbreitung verteilter und u.U. inhomogener Anwendungen (Konzepte z.B. CORBA, COM, DCE) erfordert eine Möglichkeit, Daten in einem einheitlichen, dabei aber flexiblen und leicht modifizierbaren Format, welches sich zudem leicht
auswerten (parsen) lässt, zu transportieren.
Der bisher unvermeidbare Bruch zwischen applikationsinterner Datenhaltung und abgeleiteter XML-Sprache soll nun durch XML Schema als Nachfolger der DTD's überwunden werden. Die XML Schema Sprache stellt dabei eine Obermenge der DTD Sprache dar.
Genau wie eine DTD stellt ein XML Schema Regeln zur Verfügung, nach denen ein XML Dokument auf seine Gültigkeit hin überprüft wird (Validierung). Da jedes XML Schema auch ein XML Dokument ist, lässt es sich selbst auch durch ein
Schema oder eine DTD beschreiben.
Abb.1: Beziehung zwischen XML Dokument und XML Schema Definition (Quelle:http://www.jeckle.de)
Grenzen/Nachteile der DTD's
- DTD's haben eine eigene (nicht XML konforme) Syntax
Das Erstellen von DTD'S macht das Erlernen einer neuen Sprache notwendig, was kurzzeitig einen höheren Aufwand und damit höhere Kosten verursacht.
- Namensräume werden nicht unterstützt
Setzen sich die Beschreibungsregeln eines XML Dokuments aus mehreren DTDs aus verschiedenen Namensräumen zusammen, so lässt sich die Mehrfachverwendung von Bezeichnern nicht explizit ausschließen. Die so auftretenden Namenskollisionen
verletzen die Bedingung der Wohlgeformtheit von XML Dokumenten.
- Stark eingegrenzter Typvorrat
Ausser einiger Stringtypen und expliziter Aufzählung verfügen DTD's über keine Möglichkeit zur Beschreibung weiterer Datenformate (wie z.B. number, date, currency, etc.). Das Definieren eigener Datentypen ist damit ebenfalls nicht
möglich.
Dieses erweist sich vor allem bei der Kommunikation zweier Webapplikationen (e-commerce) als schwerer Nachteil, da es Aufgabe der Zielapplikation (z.B. einer Datenbank) bleibt, die Gültigkeit des empfangenen Dokumentes, bzw. der enthaltenen Daten
zu prüfen. Damit geht ein großer Vorteil von XML, die Flexibilität, verloren.
- Rudimentäres Konzept zur Erweiterbarkeit
Die Erweiterungsmöglichkeiten von DTD's lassen sich im Wesentlichen reduzieren auf einfache String-Ersetzung (über Parameter Entities). Eine systematische und von außen nachvollziebare Modularisierung lässt sich damit nur schwer
durchführen.
Wichtige Neuerungen von XML Schema
- XML Schema ist XML.
D.h. es existiert sowohl eine DTD zur Beschreibung von XML Schema als auch ein sellbstbeschreibendes XML Schema.
Ein gegen ein XML Schema geprüftes XML Dokument (document instance) kann wohlgeformt (well-formed) sein oder gültig (valid). Der Test auf Gültigkeit beinhaltet neben der Überprüfung auf korrekte Reihenfolge und Struktur der tags
auch die Überprüfung auf Einhaltung der Wertebereiche und gültige Datentypen.
- Umfangreicher Vorrat an vordefinierten, einfachen Datentypen.
XML Schema bietet zahlreiche Datentypen an zusammen mit der Möglichkeit, den Wertebereich explizit anzugeben. Mit diesen Basistypen können weitere, komplexe Elementtypen definiert werden.
Die einmalige Definition von Daten- oder Elementtypen bei u.U. häufiger Verwendung fördert zum einen die Lesbarkeit des Schemas als auch die spätere Verarbeitung durch einen parser/validator, etc.
- XML Schema erlaubt explizites Gruppieren von Attributen.
Attribute, die wiederkehrend in Gruppen verwendet werden ( z.B. HTML: width + height ) können nun als Attributgruppe einmalig definiert werden. Dieser Mechanismus, der bei DTD's mit Parameter Entities realisiert wurde, kann nun explizit angegeben
und damit auch von einem parser/validator genutzt werden.
- XML Schema ermöglicht die Definition neuer Elementtypen auf Basis vorangegangener Definitionen (Vererbung).
Durch die Erweiterung / Einschränkung bestehender komplexer Elementtypen um weitere Elemente oder Attribute lassen sich gleichartige Elementfamilien deklarieren .
- Unterstützung von Namensräume (namespaces).
Durch die Berücksichtigung von Namensräumen lassen sich document instances erstellen, die auf Elemente in verschiedenen XML Schema Beschreibungen zugreifen. Elemente mit gleichen Namen aber unterschiedlicher Struktur können, sofern durch
Namensräume getrennt, in einer document instance erscheinen.
Autor: Fabian Riemer, wi3543
Letzte Änderung: 25.10.00