Was XML zu bieten hat

(Auszug aus "XML in a Nutshell" von Elliotte Rusty Harold & W. Scott Means)

XML ist eine Meta-Markup-Sprache für Textdokumente. Die Daten werden als Text-Strings in XML-Dokumente eingefügt und von Text-Markup umgeben, das die Daten beschreibt. Eine XML-Basis-Einheit aus Daten und Markup wird Element genannt. Die XML-Spezifikation definiert die genaue Syntax, der diese Auszeichnung folgen muss: wie die Elemente durch Tags getrennt werden, wie die Tags aussehen müssen, welche Namen für Elemente angemessen sind, wo die Attribute angeordnet werden und so weiter. Oberflächlich betrachtet, sieht das Markup in einem XML-Dokument fast so aus wie das in einem HTML-Dokument. Es gibt aber einige entscheidende Unterschiede.

Am allerwichtigsten ist: XML ist eine Meta-Markup-Sprache. Das bedeutet, dass es keine feste Menge von Tags und Elementen gibt, die immer und überall funktionieren. Alle Versuche, eine endliche Menge solcher Tags zu schaffen, sind zum Scheitern verurteilt. Stattdessen erlaubt XML den Entwicklern und Autoren, Elemente bei Bedarf zu erfinden. Chemiker können Elemente benutzen, die Moleküle, Atome, Verbindungen, Reaktionen und andere Gegebenheiten beschreiben, die in der Chemie auftreten. Immobilienmakler können Elemente einsetzen, die Wohnungen, Mieten, Provisionen, Orte und andere im Immobiliengeschäft benötigte Begriffe darstellen. Musiker wiederum können Elemente verwenden, die Viertelnoten, halbe Noten, Notenschlüssel und andere Objekte beschreiben, die in der Musik üblich sind. Das X in XML steht für eXtensible (dt.: erweiterbar). Erweiterbar bedeutet, dass die Sprache erweitert und angepasst werden kann, um viele verschiedene Bedürfnisse zu befriedigen.

XML ist zwar sehr flexibel, was die Elemente betrifft, die definiert werden dürfen, in vielen anderen Aspekten erweist es sich dagegen als sehr restriktiv. Die XML-Spezifikation definiert eine Grammatik für XML-Dokumente, die festlegt, wo Tags auftauchen dürfen und wie sie aussehen müssen, welche Elementnamen zulässig sind, wie Attribute mit Elementen verbunden werden usw. Diese Grammatik ist speziell genug, um die Entwicklung von XML-Parsern zu ermöglichen, die jedes XML-Dokument lesen können. Dokumente, die dieser Grammatik genügen, werden wohlgeformt genannt. Dokumente, die nicht wohlgeformt sind, sind ebenso wenig erlaubt, wie es ein C-Programm wäre, das einen Syntaxfehler enthält. XML verarbeitende Programme weisen Dokumente ab, die nicht wohlgeformt sind.

Um die Austauschbarkeit und Verarbeitungsfähigkeit von Dokumenten zu verbessern, einigen sich Personen oder Organisationen manchmal darauf, nur bestimmte Tags zu verwenden. Diese Tag-Mengen werden als XML-Anwendungen bezeichnet. Eine XML-Anwendung ist keine Software-Anwendung, die XML benutzt, wie Mozilla oder Microsoft Word. Stattdessen ist es eine Anwendung von XML auf ein bestimmtes Problemfeld wie Vektorgrafiken oder Kochen.

Das Markup in einem XML-Dokument beschreibt die Struktur des Dokuments. Es erlaubt Ihnen festzustellen, welche Elemente mit welchen anderen Elementen verknüpft sind. In einem gut gestalteten XML-Dokument beschreibt das Markup außerdem die Semantik des Dokuments. Zum Beispiel kann das Markup signalisieren, dass ein Element ein Datum, eine Person oder ein Strichcode ist. In gut gestalteten XML-Anwendungen sagt das Markup nichts darüber aus, wie das Dokument angezeigt werden soll. Das heißt, es legt nicht fest, ob ein Element fettgedruckt, kursiv oder ein Listeneintrag ist. XML ist eine strukturelle und semantische Markup-Sprache, keine Darstellungssprache.

Anmerkung: Einige XML-Anwendungen, wie XSL Formatting Objects (XSL-FO), sind dafür ausgelegt, die Textdarstellung zu beschreiben. Allerdings sind dies Ausnahmen, die die Regel bestätigen. XSL-FO beschreibt zwar tatsächlich die Darstellung, allerdings würden Sie niemals ein XSL-FO-Dokument direkt schreiben. Stattdessen schreiben Sie ein stärker semantisch strukturiertes XML-Dokument und setzen dann ein XSL-Transformations-Stylesheet ein, um ein solches strukturorientiertes Dokument in ein darstellungsorientiertes XML umzuwandeln.

Das Markup, das in einer bestimmten XML-Anwendung erlaubt ist, kann in einem Schema festgelegt werden. Konkrete Dokument-Instanzen können mit diesem Schema verglichen werden. Dokumente, die dem Schema entsprechen, nennt man gültig oder valide. Dokumente, bei denen dies nicht der Fall ist, sind ungültig. Gültigkeit bezieht sich immer auf ein solches Schema; das heißt, ob ein Dokument gültig oder ungültig ist, hängt davon ab, mit welchem Schema Sie es vergleichen. Nicht alle Dokumente müssen gültig sein. Für viele Zwecke reicht es aus, dass ein Dokument wohlgeformt ist.

Es gibt viele verschiedene XML-Schemasprachen, die sich in ihrer Ausdrucksfähigkeit deutlich unterscheiden. Die am weitesten verbreitete Schemasprache und die einzige, die innerhalb der XML 1.0-Spezifikation selbst festgelegt wurde, ist die DTD (Document Type Definition). Eine DTD zählt das zulässige Markup auf und bestimmt, wo und wie es in einem Dokument verwendet werden darf. DTDs sind in XML optional. Andererseits sind DTDs nicht unbedingt immer ausreichend. Die Syntax einer DTD ist beschränkt und erlaubt es Ihnen nicht, solche nützlichen Aussagen zu treffen wie »Dieses Element enthält eine Ziffer« oder »Dieser String ist ein Datum zwischen 1974 und 2032«. Die W3C-Sprache XML Schema (die oft missverständlich einfach Schema(s) genannt wird) ermöglicht Ihnen dagegen derartige Festlegungen. Sie können außer diesen beiden aber auch noch ganz andere Schemasprachen nehmen, sei es RELAX NG, Schematron, Hook oder Examplotron – und diese Liste ist noch lange nicht vollständig.

Alle momentan existierenden Schemasprachen sind rein deklarativ. Manche Bedingungen lassen sich aber nur in einer Turing-vollständigen Programmiersprache ausdrücken. Wenn beispielsweise ein XML-Dokument eine Bestellung enthält, benötigen Sie eine Turing-vollständige Sprache, um den Einzelpreis jedes Bestellartikels mit seiner Anzahl zu multiplizieren, die Posten zusammenzuzählen und das Ergebnis mit dem Wert des Elements <Zwischensaldo> zu vergleichen. Die Schemasprachen von heute sind zudem nicht in der Lage, Bedingungen außerhalb des Dokuments zu überprüfen, z. B. die Forderung: »Jedes <SKU>-Element stimmt mit dem SKU-Feld eines Datensatzes in einer Produkttabelle der Inventar-Datenbank überein.« Falls Sie Programme zum Lesen von XML-Dokumenten schreiben, werden Sie vielleicht Code hinzufügen müssen, der solche Aussagen überprüft, wie es beim Schreiben von Programmen zum Lesen einer Textdatei der Fall wäre, in der alle Einträge durch Tabulatoren getrennt sein sollen. Der Unterschied besteht darin, dass XML-Parser die Daten in einem viel bequemeren Format präsentieren und Ihnen einen großen Teil der Arbeit abnehmen und dass Sie deswegen weniger eigenen Code schreiben müssen.

   

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema XML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

  


Copyright © 2005 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XML in a Nutshell" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de