| Home · Info · Kontakt · |
Informatik » Einführung in XML |
|
Einführung in XML, DTD und XSLMichael Näf, naef@acm.orgWas ist XML?Erstes Beispiel: Die Abbildung zeigt ein XML-Dokument, das die Kontaktinformationen von zwei Personen enthält. Folgende Dinge fallen an diesem Beispiel auf:
Zur Terminologie: Elemente sind die grundlegenden Bausteine von XML. Beispiele für XML-Elemente sind CONTACTLIST, CONTACT oder MAIL. Ein Element kann einfachen Text oder andere XML-Elemente enthalten. Ein Element kann auch leer sein. Tags werden zur Kennzeichnung sowie zur Abgrenzung von Elementen in einem XML-Dokument benutzt. Ein Start-Tag wie <ELEMENTNAME> markiert den Beginn eines Elements. Das zugehörige End-Tag </ELEMENTNAME> kennzeichnet das Ende eines Elements. Attribute stellen Zusatzinformationen zu einem Element zur Verfügung. Attribute erscheinen immer im Start-Tag eines Elements. Sie haben einen Namen und einen Wert. Im Beispiel besitzt das Element PHONE ein Attribut mit dem Namen type<, das unterschiedliche Werte annehmen kann. Nebenbei: Die unterschiedlichen Farben in der Abbildung haben mit XML nichts zu tun, sie wurden durch den verwendeten Editor hinzugefügt. Was ist XML? Jetzt aber wirklich...XML ist eine Möglichkeit, Daten zu strukturieren. Wie im Beispiel gezeigt, lassen sich mittels XML Daten strukturiert darstellen. Jede Information in einem Dokument ist mit Hilfe der umschliessenden Tags eindeutig gekennzeichnet. Diese Eigenschaft alleine rechtfertigt die Bedeutung von XML jedoch keineswegs. Es gibt beliebig viele alternative Möglichkeiten, Daten zu strukturieren. Die Kontaktinformationen aus dem ersten Abschnitt könnte man beispielsweise auch wie folgt strukturieren:
Diese Art der Strukturierung würde ebenso gut funktionieren wie die Variante mit XML und ist wohl erst noch übersichtlicher und lesbarer. Wenn da nicht weitere entscheidende Vorteile von XML existierten... XML ist ein Standard. XML wurde und wird vom World Wide Web Consortium (kurz: W3C) entwickelt. Das W3C ist die Organisation, die sich um die Weiterentwicklung des WWW sowie der zugehörigen Standards kümmert. Dazu gehören so wichtige Standards wie HTML, HTTP, CSS und viele andere. Weil es sich beim W3C um ein sehr gewichtiges Gremium handelt, ist davon auszugehen, dass auch XML in Zukunft ein bedeutende Rolle im Internet spielen wird. Ausserdem: Aufgrund der Tatsache, dass es sich bei XML um einen offiziellen und akzeptierten Standard handelt, werden zahlreiche begleitende Tools oder Werkzeuge angeboten. Diese Tools erleichtern das Erstellen und die Verarbeitung von XML-Dokumenten. Viele dieser Tools sind kostenlos erhältlich. XML ist textbasiert. Ein XML-Dokument ist nichts anderes als ein einfaches Textdokument, das auf eine definierte Art und Weise aufgebaut ist. Dadurch können XML-Dokumente problemlos und unabhängig vom benutzten Computer oder Betriebssystem gelesen und mit einem beliebigen Texteditor bearbeitet werden. Mit nicht textbasierten Datenformaten (zum Beispiel Word- oder Excel-Dateien) ist dies nicht uneingeschränkt möglich. XML ist nicht nur XML. XML bildet die Basis einer ganzen Reihe von Techniken, Standards und Konventionen. XML definiert, wie strukturierte Daten in einem Textdokument dargestellt werden. Neben XML gibt es zum Beispiel den wichtigen Standard XSL (Extensible Stylesheet Language). Mit Hilfe von XSL kann festgelegt werden, wie ein XML-Dokument für unterschiedliche Ausgabemedien dargestellt werden soll. Ein Bestandteil von XSL ist XSLT. XSLT steht für XSL Transformations und bestimmt, wie ein XML-Dokument in ein anderes (ebenfalls textbasiertes) Dokument umgewandelt werden kann. Eine so genannte Document Type Definition oder kurz DTD legt fest, wie XML-Dokumente eines bestimmten Typs auszusehen haben. Zu XSL, XSLT und DTD folgen unten weitere Erläuterungen. Verschiedene andere Standards beschreiben beispielsweise, wie von einem XML-Dokument auf ein anderes (oder Teile davon) verwiesen werden kann oder wie mathematische Formeln mit Hilfe von XML spezifiziert werden können. XML ist gratis. Der Einsatz von XML sowie den begleitenden Standards ist frei von jeglichen Lizenzgebühren möglich. XML ist erweiterbar. XML steht ausgeschrieben für Extensible Markup Language. "Extensible" ist Englisch für "erweiterbar" -- die Erweiterbarkeit ist also schon im Namen der Technologie verankert. In XML sind keine Tags vordefiniert. Die Autorin von XML-Dokumenten kann und muss alle nötigen Tags selber definieren. Das ist ein Vorteil, denn auf diese Weise können für beliebige Informationen die passenden Tags oder Attribute sowie eine geeignete Dokumentstruktur festgelegt werden. Zum Beispiel könnte eine einfache Briefmarkensammlung in XML wie folgt aussehen:
[ Die Web-Site des W3C ] Eine DTD schafft VerbindlichkeitXML-Dokumente sind erweiterbar. Es lassen sich beliebig komplexe Strukturen mit beliebigen Tag- und Attributnamen erstellen. Eine DTD (Document Type Definition) hilft dabei, die Struktur und den genauen Aufbau von XML-Dokumenten verbindlich festzulegen. Die folgende Abbildung zeigt die DTD des einführenden XML-Beispiels mit den Kontaktinformationen: Einige Erklärungen zur DTD:
Damit unser XML-Dokument aus der ersten Abbildung "weiss", welche DTD dafür gültig ist, wird wie im Beispiel auf die passende DTD verwiesen mit einer Zeile wie: <!DOCTYPE CONTACTLIST SYSTEM "contacts.dtd">. Die Zeile besagt, dass das XML-Dokument vom Typ CONTACTLIST ist und sich die zugehörige DTD in der Datei "contacts.dtd" befindet. Was bringt eine DTD?Mit Hilfe einer DTD wird die Struktur von XML-Dokumenten verbindlich und zentral festgelegt. Alle XML-Dokumente desselben Typs können anhand derselben DTD bezüglich ihrer Struktur geprüft werden. Das ist hilfreich, weil viele XML-Editoren und andere XML-verarbeitende Tools eine solche Prüfung nach Wunsch automatisch vornehmen können. Auf diese Weise werden Sie als Autorin oder Benutzerin von XML-basierten Informationen sofort auf allfällige Strukturverletzungen aufmerksam gemacht. Die automatisierte Prüfung ist insbesondere dann nützlich, wenn Informationen von anderen Personen empfangen werden und vor der Weiterverarbeitung im Hinblick auf die strukturelle Gültigkeit geprüft werden sollen. Ausserdem sind DTDs ein hilfreiches Werkzeug, wenn sich mehrere Personen oder Organisationen über ein gemeinsam unterstütztes Format zum Datenaustausch einigen wollen. In solchen Fällen legt die DTD das gemeinsame Format eindeutig und formalisiert fest. Trotz der erwähnten Vorteile ist die Benutzung von DTDs nicht obligatorisch. XML-Dokumente lassen sich auch ohne zugehörige DTD erstellen und verarbeiten. DTDs kann man insofern als eine optionale aber nutzbringende Zusatztechnik betrachten. Übrigens gibt es unter dem Namen XML Schema einen modernen Standard des W3C, der dieselbe Funktion wie die DTDs erfüllt.
[ DTD Tutorial von W3Schools.com ] XML kontra HTMLXML- und HTML-Dokumente sehen sich sehr ähnlich. Doch es besteht ein bedeutender Unterschied: XML ist erweiterbar, HTML nicht. XML wurde entwickelt, um Daten zu beschreiben. HTML dagegen wurde entwickelt, um Daten darzustellen. HTML ist bekanntlich die Auszeichnungssprache, mit deren Hilfe Web-Seiten beschrieben werden. Jeder Web-Browser "versteht" HTML-Dokumente und kann sie entsprechend darstellen. Das heisst, der Browser kennt alle HTML-Tags und deren Bedeutung. Zum Beispiel bedeutet <b>...</b>, dass eine Zeichenkette in fetter Schrift dargestellt wird, und mittels <TABLE> wird eine Tabelle eingeleitet. Unser Beispiel mit den Kontaktinformationen könnte in HTML auszugsweise wie folgt geschrieben werden:
Das Problem: In HTML ist zwar sofort klar, wie die Informationen dargestellt werden sollen, dafür geht die Beschreibung der verschiedenen Informationen in der Datei verloren. So ist beispielsweise nur noch implizit durch das charakteristische "@"-Zeichen erkennbar, welches die E-Mail-Adressen sind. Ganz anders bei XML: Tags und Attribute lassen sich beliebig benennen und einsetzen. Es existieren keine Tags mit fest vorgegebener Bedeutung. Ein Tag wie <b> in XML kann für "Bold", "Briefmarke", "Bemerkung" oder irgendetwas anderes stehen -- es muss auch nichts mit dem Buchstaben "B" zu tun haben. XML benutzt Tags zur Abgrenzung von Daten und überlässt die Interpretation der Daten vollkommen der Anwendung, die sie verarbeitet. Ein Web-Browser oder ein anderes Werkzeug kann nicht "wissen", was diese frei definierten Tags bedeuten und wie die dadurch beschriebenen Informationen dargestellt werden sollen. Deshalb braucht es eine Möglichkeit zu beschreiben, wie ein XML-Dokument eines bestimmten Typs dargestellt werden soll...
[ Alternative Erklärung der Unterschiede zwischen HTML
und XML im Rahmen eines XML-Tutorials ] XSL(T) zur Darstellung von XMLUm ein XML-Dokument darzustellen braucht es zwei Dinge:
Einige Erklärungen dazu:
[ XSL und XSLT beim W3C ] Das ResultatDas oben besprochene XSL Stylesheet sorgt für die folgende Darstellung des ursprünglichen XML-Dokuments in einem Web-Browser: Flexibilität ist alles: Alternative DarstellungenIn den vorhergehenden Abschnitten haben wir ein XML-Dokument verfasst, eine passende DTD dazu betrachtet und ein XSL Stylesheet definiert, das die Darstellung der XML-Daten beschreibt. Das ist ein erheblicher Aufwand für die Darstellung einer simplen Web-Seite wie die oben gezeigte. Hätten wir uns gleich zu Beginn für einfaches HTML für die Darstellung entschieden, hätten wir viel Zeit sparen können. Trotzdem hat XML einen entscheidenden Vorteil. Sind alle Kontaktinformationen einmal in XML erfasst, lässt sich mit den XSL Stylesheets "spielen". Ohne auch nur einen Buchstaben an der XML-Datei zu ändern, können beliebige Ausgabeformate mit Hilfe von einfachen XSL Stylesheets definiert werden. Die folgende Tabelle zeigt einige Möglichkeiten. Beachten Sie: Die XML-Datei ist zwar bei jedem Beispiel angegeben, es handelt sich aber immer um die gleiche Datei.
Entscheidend: Die Ausgabeform ist nicht auf Web-Seiten beschränkt. XML-Dokumente lassen sich auf ähnliche Weise und mit entsprechenden Tools auch in Textdokumente, PDF-Dateien oder irgendein anderes Format umwandeln. Es wäre sogar möglich, ein Programm zu schreiben, das aufgrund einer Namensangabe die zugehörige Faxnummer aus der Liste sucht und automatisch über das am Computer angeschlossene Modem ein Fax an diese Nummer schickt. Diese Flexibilität ist bei HTML nicht vorhanden. Um alle in der Tabelle gezeigten Ausgabeformen zu erhalten, müsste grundsätzlich eine separate HTML-Datei für jede einzelne Ausgabeform verfasst werden. Konzeptionelles: Struktur, Inhalt und FormatEin fundamentaler Vorteil von XML liegt in der rigorosen Trennung von Struktur, Inhalten und Format. Diese Trennung vereinfacht das effiziente und flexible Arbeiten mit Informationen. XML und die begleitenden Standards unterstützen diese Trennung -- teilweise erzwingen sie sie sogar. Die folgende Abbildung zeigt eine schematische Übersicht: Im Mittelpunkt stehen die DTD (oder ein XML-Schema), die XML-Dokumente sowie die XSL Stylesheets. Die DTD gibt die Struktur der zu verarbeitenden Informationen vor. Die XML-Dokumente enthalten die eigentlichen Informationen. Die XSL Stylesheets legen fest, wie die Informationen pro Ausgabeform dargestellt werden sollen. Ein XML-befähigter (Web) Browser kann mit Hilfe von XSL Stylesheet und XML-Dokument die Informationen direkt auf dem Bildschirm darstellen. Als Alternative kann ein so genannter XSL(T)-Prozessor benutzt werden. Beim XSL(T)-Prozessor handelt es sich um ein Werkzeug, das ebenfalls ein XSL Stylesheet und ein XML-Dokument entgegennimmt und daraus -- basierend auf den Anweisungen im Stylesheet -- ein neues Dokument erzeugt. Das neu erzeugte Dokument kann beispielsweise ein HTML-Dokument sein. Daneben sind beliebige andere Ausgabeformate denkbar: zum Beispiel ein XML-Dokument mit einer anderen Struktur, eine reine Textdatei, ein PDF-Dokument, eine Grafikdatei oder sogar eine Audiodatei. Informationsstrukturierung ist kein KinderspielDie geeignete Strukturierung von Informationen stellt oft eine gewisse Herausforderung dar. Es lohnt sich, die gewählte Strukturierung zu hinterfragen und allfällige Varianten bezüglich ihrer Konsequenzen zu analysieren. Die im einführenden Beispiel gezeigte DTD zum Beispiel weist einige Eigenschaften auf, die sich in der Praxis als grosse Nachteile erweisen können:
EpilogDieser Artikel gibt eine Einführung in XML. Einige Grundbegriffe von XML, DTD und XSL wurden vorgestellt. Ausserdem wurde versucht, einen Überblick über die verwirrend vielen Fachbegriffe und Standards zu bieten. Viele wichtige Aspekte von XML sind unerwähnt geblieben. Wer sich für weitergehende Informationen interessiert und sich in diesen Themen vertiefen möchte, sei einerseits auf die Fachliteratur und andererseits auf die in diesem Artikel zitierten Quellen im WWW verwiesen. Abschliessend lässt sich sagen, dass es sich bei XML um ein ausgereiftes Modell zur Informationsbeschreibung und -darstellung handelt, das kontinuierlich an Bedeutung gewinnt. Oder wie es in "XML in 10 Punkten" heisst: "XML ist nicht immer die beste Lösung, aber es lohnt sich immer, XML in Erwägung zu ziehen". |
| Letzte Änderung: 08.07.2007 · © SwissEduc-Team | Hosted by Metanet |