text: DTD, Schema und RelaxNG - XML Tutorial
  DTD, Schema und RelaxNG
  Der Unterschied in der Notation, aber auch in der praktischen Bedeutung der drei Verfahren DTD, Schema und RelaxNG wird in diesem Film erklärt.
  Unterschiedliche Technologien zur Document-Type-Definition, also zu Definition von Dokumenttypen, DTD, Schema und Relax NG sind das Thema dieses Films. Ich habe hier wieder auf dem Bildschirm ein relativ einfaches Beispiel: eine XML-Datei, ein Adressbuch mit Adresskarten drin, und einfachen Einträgen aus Vorname, Name und E-Mail-Adresse. Diese Dokumentstruktur kann sowohl mit einer DTD, einer Schema-Datei oder einer Relax NG-Datei beschrieben werden Zunächst die DTD. Hier sehen Sie, wir haben definiert ein Element "addressbook". In diesem Element "adressbook" können sich andere Elemente vom Elementtyp {card*} befinden, und zwar unendlich viele. Dann haben wir das Element "card", da kann sich eine Sequenz aus "firstname", "name" und "email" drin befinden. Also genau diese Elemente können dort drin sein. Dann haben wir das Element "firstname" und da stehen Textinformationen drin. Genauso im Elementen "name" und im Element "email". Das ist die kurze Document-Type-Definition für unsere Struktur, die wir gerade gesehen haben. In der Schema-Sprache sieht das schon etwas komplexer aus. Sie sehen, die Schema-Datei ist eine wohlgeformte XML-Datei. Wir haben hier den Namespace, XS, den XML-Schema-Namespace. und dann haben wir hier das Element "adressbook" entsprechend definiert, haben gesagt, was das für ein Element ist. Dann ist in diesem Element verschachtelt das Element "card". Hier haben wir gesagt, wie oft das vorkommen darf, nämlich null mal, beziehungsweise, sehr oft, unendlich oft. Dann haben wir gesagt, was für ein Typ, wieder eine Sequenz, dieses Element ist und dann haben wir hier definiert, die Elemente, die dort drin verschachtelt sein können, nämlich "firstname". Da kann dann ein String drin sein, also Textinformation, "name" und "email" und dann werden alle diese Elemente wieder geschlossen. Auch wenn man das so sieht und erklärt bekommt, sehr klar und deutlich und es ist wirklich eine wohlgeformte XML-Datei, die man auch als XML-Datei weiterverarbeiten und lesen kann, das ist ein sehr großer Vorteil. Genauso Relax NG. Sie sehen, das ist hier als Baum aufgebaut und hier unten ist Relax NG, ist die Datei beschrieben, auch das ist wieder eine XML-Datei, Mit "grammar" gibt es ein Wurzelelement und dann den Start und danach ist dann das erste Element beschrieben, "adressbook", im "adressbook" gibt es dann "card" null mal oder halt öfter. Dann gibt es da drin "firstname", in dem Text drin steht. Hier oben sieht man auch immer, wo ich denn gerade im Text bin. Das Element "name", wo Text drin steht und so weiter. Und auch da werden dann natürlich alle Elemente wieder geschlossen. Alle diese drei Technologien haben entsprechendes Vokabular, haben eine entsprechende DTD, oder eine entsprechendes Schema oder Relax NG. Im Fall von Schema und Relax NG Namespaces, die entsprechend beschrieben sind. Und wenn man damit entsprechende Dokument-Typ-Definitionen schreiben möchte, dann muss man sich natürlich dieses Vokabulars und den Regeln, die dahinter stecken, bemächtigen, aber das ist auch entsprechend lernbar. Wir haben also drei Technologien, mit denen man ein und dasselbe machen kann und diese Technologien möchte ich gerne noch für Sie bewerten, so dass Sie halt wissen, was ist gut, was ist schlecht für mein Projekt, was sollte ich wie einsetzen. Die DTD, die Document-Type-Definition ist die älteste von diesen drei Technologien, sie ist in Teilen der XML-Welt noch weit verbreitet. Sie wird allerdings nicht mehr weiterentwickelt. Sie kennt keine Datentypen, was vor allen Dingen für die Verarbeitung von Datenbankinhalten wirklich schlecht ist. Sie kennt auch keine Namespaces und sie wird aber nach wie vor von vielen Softwaresystemen unterstützt, weil halt die Verbreitung noch sehr groß ist und weil es eine Zeit lang auch wirklich die einzige Technologie war, mit der man halt Dokumenttypen beschreiben konnte. XML-Schema ist der W3C-Standard. W3C ist das Konsortium, das Technologien standardisiert und auch weiter betreibt. Es ist sehr weit verbreitet, es ist im Moment wahrscheinlich die am weitesten verbreitete Technologie zum Beschreiben von Dokument-Typen. Es wird von vielen Anwendungen unterstützt, ich möchte sagen, von allen wesentlichen Anwendungen. Es kann sehr gut mit Datentypen umgehen und ist damit ja etwas, was, wenn man sich mit Dokument-Typ-Definitionen beschäftigt, wahrscheinlich die erste Technologie, mit der man sich weiter beschäftigen sollte. RelaxNG ist ein ISO-Standard, allerdings nicht so weit verbreitet wie Schema. Also zwei echte Standards von zwei unterschiedlichen Standardisierungs-Organisationen die in Konkurrenz zueinander stehen. Es ist, wie gesagt, weniger weit verbreitet. Es ist ein kompakter XML-Standard, er ist neuer als Schema. Man kann auch sagen, dass es von einigen Mängeln, die Schema hat, gelernt hat und auch etwas mächtiger als Schema [ist], wobei da halt immer die Frage ist, was will ich machen. Also das ist ja nachher schon wirklich so, wie es immer so ist, die letzten zehn Prozent, brauche ich oder brauche ich die nicht? Auf alle Fälle ist Schema der am weitesten verbreitete Standard und RelaxNG ist etwas, womit man sich vielleicht für einige Spezialanwendungen auch auseinandersetzen kann. Und die DTD ist etwas, was auf den ersten Blick immer sehr schön übersichtlich ist, aber etwas, was als Technologie wirklich in die Jahre gekommen ist. In diesem Film haben Sie gelernt, was die Technologien DTD, Schema und RelaxNG können und wozu sie da sind und können jetzt wahrscheinlich besser einschätzen, was die beste Möglichkeit für Ihre Zwecke ist.