Websiteentwicklung: XML: Beschreibung
Was ist XML eigentlich?
[Bearbeiten]XML (Erweiterbare Auszeichnungssprache; englisch: eXtensible Markup Language) ist ein Standard oder eine Empfehlung des W3C für eine gemeinsame Sprachstruktur von Auszeichnungsprachen (englisch: markup languages), die dann zur XML-Sprachfamilie gehören.
Mit einem XML-Dokument können also ganz allgemein Informationen strukturiert in einem digitalen Dokument notiert werden. XML selbst gibt dabei vor, wie die Struktur auszusehen hat. Damit die Struktur und der Inhalt eine definierte Bedeutung bekommen, ist es ferner notwendig, dass für die jeweils verwendete Sprache eine weitere Spezifikation vorliegt. Gemeinsam für alle Sprachen der XML-Sprachfamilie ist also lediglich die Struktur, mit welcher Information im digitalen Dokument notiert oder ausgezeichnet wird. Die jeweilige Sprach-Spezifikation legt fest, was die Struktur bedeutet. Dies sind dann semantische Informationen oder Metainformationen, welche über den Sprachstandard definiert und mit der notierten Struktur korreliert werden.
XML definiert also eine Metasprache, mit deren Hilfe eigene Auszeichnungssprachen definiert werden können. Daneben definiert XML wenige eigene Strukturen, die somit eine inhaltliche oder semantische Bedeutung für alle Sprachen der XML-Sprachfamilie haben, also in den jeweiligen einzelnen Sprachstandards nicht erneut festgelegt werden müssen.
Weil alle Sprachen der XML-Sprachfamilie die gleichen Strukturen aufweisen, können auch Fragmente aus verschiedenen Sprachen in einem Dokument notiert werden, daher auch der Namensbestandteil 'erweiterbar', es ist also problemlos möglich, ein Dokument einer definierten Sprache um definierte Fragmente einer anderen Sprache der Sprachfamilie zu erweitern. XML selbst bietet dafür wiederum ganz allgemein Strukturen, um zu kennzeichnen, welches Fragment zu welcher Sprache gehört.
Bekanntere Beispiele aus der XML-Sprachfamilie sind XHTML, SVG, XSLT, MathML, SMIL, DocBook, FictionBook, Digital Talking Book (DTBook, DAISY), Atom Syndication Format, RSS.
Weitere wichtige Anwendungsfälle für derartige Auszeichnungssprachen sind die Definition von Dokumentformaten für den Datenaustausch zwischen Programmen und die Dokumentenverwaltung. XML findet auch für Inhaltsdokumente und Strukturdokumente in Archivformaten breite Verwendung, weil Programme wie OpenOffice.Org (OOo) und Microsoft-Office mittlerweile intern eigene XML-Formate verwenden. OOo verwendet seit Version 2.0 das standardisierte Offene Dokumentenformat (Open Document Format). Diese Formate gehören zur Klasse von Archivformaten, weil sie primär aus einem Archiv bestehen, in welchem mehrere Dokumente, auch in verschiedenen Sprachformaten, zusammengefaßt sind. Wegen der einfachen Struktur von XML werden hier für Informationen, die sich als ausgezeichneter Text notieren lassen, XML-Formate verwendet. Ein weiteres bekanntes Archivformat ist der Standard für digitale Bücher EPUB, in welchem neben einem eigenen XML-Format und Formaten für Pixelgraphik primär XHTML und SVG (in Version 2 auch noch DTBook) für den Inhalt verwendet werden.
Wie sieht XML aus und was macht man damit?
[Bearbeiten]Eigentlich besteht XML im Wesentlichen aus ineinander verschachtelten Elementen; im Bedarfsfalle haben die Elemente auch noch Attribute. Elemente bestehen aus optionalem Inhalt, der immer von Markierungen umschlossen wird, die aus dem Elementnamen und spitzen Klammern bestehen. Ein kleines Beispiel:
<beispiel>Hallo Welt!</beispiel>
Zu jedem Element gehört eine Anfangsmarkierung, hier <beispiel> und eine Endmarkierung , hier </beispiel>. Die Endmarkierung unterscheidet sich von der Anfangsmarkierung durch den zusätzlichen Schrägstrich vor dem Elementnamen. Der Elementname ist hier also 'beispiel'. Zwischen den Markierungen steht der Inhalt des Elementes, hier also 'Hallo Welt!'.
Eine entsprechende Spezifikation einer XML-Sprache kann nun festlegen, welche semantische Bedeutung ein solches Element hat. Der optionale Inhalt bedeutet eine zusätzliche Information, wobei dann der Elementname einer definierten Sprache festlegt, um welche Art von Information es sich handelt.
Pauschal hat folgende Struktur keinerlei inhaltliche Bedeutung, solange nicht festgelegt ist, welche XML-Sprache dabei Verwendung findet. Allerdings läßt sich durch suggestive Wahl der Namen von Elementen bereits raten, welche semantische Bedeutung sie vermutlich auszeichnen mögen:
<buch>
<titel>Faust - Der Tragödie erster Teil</titel>
<autor>Johann Wolfgang von Goethe</autor>
<kapitel>
<ueberschrift>Zueignung.</ueberschrift>
<strophe>
<zeile>Ihr naht euch wieder, schwankende Gestalten!</zeile>
<zeile>Die früh sich einst dem trüben Blick gezeigt.</zeile>
...
</strophe>
...
</kapitel>
...
</buch>
Allein aufgrund der Elementnamen wird man eine naheliegende Bedeutung raten:
Es gibt ein Buch, das den Titel „Faust - Der Tragödie erster Teil“ hat und von einem „Johann Wolfgang von Goethe“ geschrieben wurde.
Das Buch besteht aus Kapiteln, in welchen Zeilen in Strophen stehen...
Indessen wird jemand, der kein deutsch versteht, mit den meisten Elementnamen nichts anfangen können, somit ist eine entprechende Spezifikation und die Korrelation mit dem Dokument also entscheidend für die semantische Bedeutung der Struktur.
Man ahnt allerdings bereits: Man muss nicht viel mehr wissen und wird nicht viele weitere andere Elemente benötigen, um den gesamten Faust so auszuzeichnen. Zudem wird das dann auch weitgehend reichen, um andere Werke von Goethe und auch die von Schiller und anderen Autoren sinnvoll auszuzeichnen. Daran erkennt man bereits, wie einfach XML sein kann und wie breit die Anwendung bereits einer einzigen Sprache der Sprachfamilie sein kann. Kennt ein Programm die verwendete Sprache, wird es zudem einfach sein, zentrale Informationen wie Titel und Autor eines Werkes automatisch zu extrahieren und anderweitig in anderem Zusammenhang zu verwenden, ohne dafür noch menschliche Intelligenz einsetzen zu müssen, nachdem das Werk einmal in einer solchen Sprache erstellt worden ist. Auch eine automatische Konversion in eine andere Sprache der XML-Sprachfamilie deutet sich bereits als recht einfach an, weil dafür im Wesentlichen nur die Elementnamen gestauscht werden müssen. Auch für die Trennung des Inhaltes von der Präsentation eignet sich die Struktur recht gut, weil man getrennt, etwa mit verschiedenen Stilvorlagen einfach und auf das jeweilige Publikum individuell festlegen kann, wie der Inhalt präsentiert oder dargestellt wird, gleich ob graphisch, akustisch oder taktil (auf Braille-Zeilen etwa). Das erleichtert es somit also auch, den Inhalt allen Menschen mit recht einfachen Programmen zugänglich und verständlich zu machen, anders etwa als bei Formaten mit nicht allgemein bekannter Struktur oder etwa Medien mit nur einer genau festgelegten Ausgabeform wie bei klassisch gedruckten Werken wie klassischen Papierbüchern oder nur akustisch abspielbaren Werken wie Schallplatten oder CDs oder eine spezifische Kombination von optischer und akustischer Ausgabe wie in Videos. Gerade behinderte Menschen sind aber meist darauf angewiesen, sich mit Technik, dem Rechner samt einfachen Programmen Zugang zu Information zu verschaffen. XML-Formate schaffen dafür die ideale Voraussetzung, weil ihr Inhalt eben recht einfach zugänglich ist und nach dem so gewährleisteten einfachen Basiszugang zur Information spezielle Programme von diversen Anbietern entwickelt werden können, um speziellen Bedürfnissen des Publikums hinsichtlich einer guten oder optimalen Präsentation des Inhaltes gerecht zu werden.
Erst indem man solche Informationen in einem Dokument aber mit einer Spezifikation über die semantische Bedeutung der Elementnamen und der Strukturen verknüpft, bekommt die Struktur eine Bedeutung, die unabhängig von den persönlichen Assoziationen des Lesers definiert ist, also etwa auch von Programmen inhaltlich sinnvoll verarbeitet werden kann, ohne auf weitere menschliche Interpretation angewiesen zu sein. Verwenden viele Autoren dieselbe definierte Sprache aus der XML-Sprachfamilie, ist es demzufolge auch recht einfach, die Werke all dieser Autoren automatisch mit Programmen weiterzubearbeiten, weil die Autoren bereits durch die korrekte Auszeichnung dafür gesorgt haben, dass die Bedeutung der Information im Werk auch relativ einfachen Programmen zugänglich gemacht werden kann.
XML selbst definiert nicht die Bedeutung von Elementen in speziellen Dokumenten oder die erlaubte Verschachtelung der Elemente ineinander und welche Elemente welche Attribute haben können, sondern legt nur die Regeln fest, wie ein Dokument aufgebaut sein muss. XML legt etwa fest, welche Zeichen in Elementnamen verwendet werden dürfen, dass die Markierungen immer mit < beginnen und mit > enden, dass Elemente aus optionalem Inhalt und einer Anfangs- und einer Endmarkierung bestehen, wobei optional mögliche Attribute samt Werten in der Anfangsmarkierung zu notieren sind etc.
Zusätzliche Spezifikationen für ein spezielles Format legen dann fest, was die Elemente bedeuten und welche Elemente in welchen verschachtelt werden dürfen, welche Attribute notiert werden dürfen, welche Werte diese haben und welchen Inhalt Elemente haben dürfen etc. Dazu gehört zum Beispiel, dass es ein Element buch überhaupt gibt und dass es das Element titel enthalten darf. Solche Verschachtelungsregeln der Elemente können in sogenannten DTDs (Dokumententypdefinitionen, siehe Dokumenttypdefinition) festgelegt werden. Es gibt aber auch andere Sprachen, um dies festzulegen. Zudem kann dies auch in einer Spezifikation in reiner Prosa erfolgen, was allerdings anders als etwa eine DTD den Nachteil hat, dass die Prosa nicht gut geeignet ist, um Programme zu erstellen, welche die Struktur eines Dokumentes anhand der Spezifikation testen können.
Weil bei komplexeren Sprachen DTDs und ähnliche durch Programme lesbare Strukturen nicht komplett ausreichen, um die gewünschte Struktur exakt abzubilden, und weil solche Schemata wie DTDs keine Information über die Bedeutung von Elementen enthalten, gibt es praktisch neben einem Schema auch immer eine normative Prosa zur Beschreibung von Formaten. Eine neuere Entwicklung ist, dass man bei komplexeren Sprachen auch ganz auf die Erstellung eines Schemas wie einer DTD verzichtet. Zur Prüfung von Dokumenten, die solche Sprachen verwenden, ist dann immer ein spezielles Programm notwendig, während es für DTDs und andere Schema-Sprachen Programme gibt, die anhand des jeweiligen Schemas pauschal ein XML-Dokument prüfen können.