XML

Start

XML

Namespace

XSL

DTD

Schema

Standardisierung

IMS LD

EML

LMML

Akronyme

Quellen

 

 

XML: Grundlagen ] Externe Entities ]

Die Extensible Markup Language (XML, erweiterbare Auszeichnungssprache) ist eine Untermenge des ISO-Standards (seit 1986) Standard Generalized Markup Language (SGML). XML ist einfacher als SGML, aber leistungsfähiger als HTML. XML ist W3C-Standard und weitestgehend firmen- sowie plattformunabhängig. Zu XML gibt es Lösungen und Werkzeuge für die meisten gängigen Programmiersprachen (C, Perl, Java, PHP, Python). Weitergehende Anwendungen realisieren eine dynamische Auslieferung von XML über WWW-Server (z. B. Apache-Cocoon) und die Intergration von XML in relationale Datenbanken (Oracle, MySQL).
Office-Programme wie StarOffice und Microsoft Office wollen XML zukünftig als Beschreibungsformat für alle Dokumente einsetzen. In Geschäftsanwendungen wird XML zunehmend als das Format für das elektronische Publizieren und den Datenaustausch eingesetzt. »XML ist eine der spannendsten, neuen Technologien für das Word Wide Web und für die Erfassung, Speicherung, Konvertierung und Archivierung von Daten generell.« (AKI Stuttgart).

Unter http://www.w3.org/XML/1999/XML-in-10-points wird XML auf lockere Art und Weise in 10 Punkten (eigtl. 7 Punkte) beschrieben. Die Recommendation des W3C und damit die offizielle Beschreibung befindet sich unter http://www.w3.org/TR/2000/REC-xml-20001006 (Extensible Markup Language (XML) 1.0 (Second Edition) W3C Recommendation 6 October 2000). Eine Übersetzung ist unter http://www.mintert.com/xml/trans/REC-xml-19980210-de.html zu finden.

XML ist nicht nur eine Auszeichnungssprache, sondern insbesondere eine formale Sprache zu Erzeugung von Auszeichnungssprachen. Sie wird deshalb als  Metasprache bezeichnet.  XML kann eigene Sprachen über verschiedene Document Type Definition´s (DTD´s) oder Schemas definieren. Eine DTD- oder Schema-Datei beschreibt die Grammatik einer .xml Datei. XML ist ein Datenaustauschformat, das Daten als reinen Text in Form einer Baumstruktur speichert. Im folgenden sind als Beispiele einige XML Anwendungen (eigene Document Type Definition, DTD oder Schema) aufgeführt: 

  • XHTML (Extensible Hypertext Markup Language)
  • WML (Wireless Markup Language, Handy)
  • SVG (Scalable Vector Graphics, Beschreibung zweidimensionaler Vektorgrafiken)
  • MathML (Mathematical Markup Language, Darstellung mathematischer Formeln)
  • SMIL (Synchronized Multimedia Integration Language, Multimedia Drehbuch)
  • EML(Educational Modelling Language)
  • LMML (Learning Material Markup Language)

Damit findet XML z. B. Anwendung in folgenden Bereichen:

  • Textverarbeitung
  • Grafik
  • Tabellenkalkulation
  • Datenbank
  • CAD
  • Musik
  • Computer-Spiele

Jedes XML Dokument hat sowohl eine logische als auch eine physikalische Struktur.

Logische Strukturen

Aus logischer Sicht besteht das Dokument aus Deklarationen, Elementen, Kommentaren, Zeichenreferenzen und Processing Instructions, die innerhalb des Dokuments durch explizites Markup ausgezeichnet sind.

Jedes XML Dokument enthält ein oder mehrere Elemente, die meist durch einen Start- und Ende-Tag (oder Leeres-Element-Tag) begrenzt sind. Jedes Element hat einen Typ, der durch einen Namen (= generic identifier, GI) identifiziert wird. Zusätzlich kann ein Element Attribute enthalten. Jedes Attribut hat einen Namen und einen Wert. Die Elemente werden zwischen den Markup Zeichen < und > geschrieben. <buch> buch stellt dabei den Namen (GI) eines Elements dar. Der Text zwischen Start- und End-Tag wird der Inhalt des Elements genannt.

Physikalische Strukturen

Ein XML Dokument besteht aus einer oder mehreren Speicherungseinheiten. Diese werden Entities genannt. Jedes XML-Dokument besitzt ein Entity namens Dokument-Entity, welches als Ausgangspunkt für den XML-Parser (Software) dient und das gesamte Dokument enthält.

Entities dürfen entweder analysiert (parsed) oder nicht-analysiert (unparsed) sein. Der Inhalt eines analysierten Entity wird als sein Ersetzungstext bezeichnet. Dieser Text gilt als integraler Bestandteil des Dokuments. Analysierte Daten bestehen aus Zeichen von denen einige Zeichendaten und andere Markupzeichen darstellen.

Ein nicht-analysiertes Entity ist eine Ressource, deren Inhalt Text sein kann oder auch nicht, und falls es sich um Text handelt, nicht XML sein muß. Jedes nicht-analysierte Entity hat eine zugeordnete Notation, die durch ihren Namen identifiziert wird. Der Inhalt dieser nicht analysierten Entity ist von XML nicht beschränkt. Einzig muss der XML-Parser (Software) der Anwendung die Bezeichner für das Entity und für die Notation zur Verfügung stellen.

Jedes Dokument beginnt in einer Wurzel- oder Dokument-Entity. 

Das Dokument-Entity dient als Wurzel des Entity-Baumes und als Startpunkt für einen XML-Parser (Software).  Im Gegensatz zu anderen Entities besitzt das Dokument-Entity keinen Namen.  Ein Entity kann auf andere Entities verweisen, um sie in das Dokument einzubinden. Jedes Dokument besitzt ein Dokument-Entity (Wurzel) das das ganze Dokument darstellt. Diese Dokument Entity ist nicht mit dem Dokumentelement zu verwechseln. 

Wohlgeformte (well-formed) und gültige (valid) XML Dokumente

Ein XML Dokument besteht meist aus einem Prolog (empfohlen) und einem Dokumentelement. Es kann wohlgeformt und gültig sein. Ein XML Dokument ist dann wohlgeformt, wenn es u.a. folgenden Kriterien genügt:
  1. Es muss genau ein Dokument Element (Wurzel Element) existieren.
  2. Die Elemente müssen korrekt verschachtelt sein.
  3. Jedes Element muss einen Start und einen Ende Tag aufweisen (<buch>Die Alpen</buch>).
  4. Start Tag und Ende Tag müssen im Namen übereinstimmen (Groß- und Kleinschreibung der Elementnamen wird unterschieden ).

Zusätzlich kann ein XML Dokument gültig (valid) sein. Dann muss eine DTD oder ein Schema eingebunden sein (extern oder intern) und das XML Dokument muss den Vorschriften dieser DTD genügen.

Die Regeln für erlaubte Elemente, Attribute, Reihenfolge des Auftretens usw. können in einer eigenen Datei definiert werden. Dieses Regelwerk wird document type definition (DTD) oder Schema genannt. Viele XML- Parser (Software) sind in der Lage eine DTD- oder Schema-Datei auszulesen und zu überprüfen, ob das XML Dokument regelkonform aufgebaut ist (validierende und nicht validierende Parser). 

Kurzbeschreibung XML:

  • Metasprache (Sprache zur Erzeugung von Auszeichnungssprachen)
  • Extensible (eigene Elemente, Tags)
  • Markup Language (Markups <>)
  • einfaches Datenaustauschformat (reines Textformat => jeder Texteditor kann es lesen, plattformunabhängig <=> proprietäre Systeme, Bsp. Word mit Texteditor öffnen)
  • selbstbeschreibende Daten (nicht nur Maschine, auch Mensch kann es lesen)
  • strukturierte Daten (bei sprechenden Elementnamen versteht man Strukturen, Speicherung in Form einer Baumstruktur, Bsp. Bücherliste, Korrektheit von Dokumenten -> Wohlgeformtheit wellformed, Gültigkeit valid -> DTD)
  • objektorientiert (XML document object model (DOM))
  • Trennung des Inhalts (XML Datei) von Formatierung durch cascading style sheets (CSS) oder extensible stylesheet language (XSL) und Grammatik DTD, über XSL kann zusätzlich eine unterschiedliche Darstellung des gleichen Inhalts als Text, HTML oder auch Sprachausgabe realisiert werden (ohne die Änderung des XML-Dokuments!)

Standard-Zeichensatz und Unicode-Unterstützung

In XML wird bei keiner weiteren Angabe in der XML Deklaration die UTF-8- oder UTF-16-Kodierung des Zeichensatzes ISO/IEC 10646 verwandt. Dieser Zeichensatz stammt von der International Organization for Standardization (ISO) entwickelt. Es soll ein Universalzeichensatz für alle Zeichen aller natürlichen und symbolischen Sprachen der Welt sein. Seit der  Unicode -Version 1.1 entspricht ISO/IEC 10646 dem Unicode-System (siehe auch http://www.netzwelt.com/selfhtml/inter/unicode.htm ). Einsetzbar sind Unicode-Zeichen mit den Hexadezimalwerten #x20 bis #xD7FF, #xE000 bis #xFFFD und #x10000 bis #x10FFFF. Nicht erlaubt sind die beiden nicht Unicode-Zeichen #xFFFE und #xFFFF.

Folgende Steuerzeichen können eingesetzt werden:

  • Tabulatorzeichen (#x9)
  • Wagenrücklaufzeichen (#xA)
  • Zeilenvorschubzeichen (#xD).

Alle drei Zeichen inklusive dem Leerzeichen (#x20) werden Leerraumzeichen genannt.

Wenn bei der XML-Deklaration encoding="UTF-8" oder encoding="UTF-16" angegeben wird, müssen alle Zeichen, die oberhalb des ASCII-Zeichensatzes liegen, mit numerischen Entities umschrieben werden (z. B. &#252; für ü.). Gibt man bei der XML-Deklaration encoding="ISO-8859-1" an und setzt eine Software ein, die den westeuropäischen Zeichensatz ISO-8859-1 (siehe auch http://www.netzwelt.com/selfhtml/inter/zeichensaetze.htm ) unterstützt, können alle Zeichen dieses Zeichensatzes ohne Umschreibung verwandt werden.

Unter MS Windows und auch unter Unix-Derivaten und Macintosh unterstützen heute die meisten Programme den ISO-8859-1 Zeichensatz. Probleme kann es beim Editieren z.B. unter älteren Systemen wie MS-DOS oder bei einigen Macintosh-Programmen geben.

Für alle Sonderzeichen, die nicht mit der XML-Editor-Software direkt eingegeben werden können, können die Unicode-Zeichen als numerische Angabe angegeben werden. Die Schreibweise ist dabei in XML die gleiche wie in HTML 4.0. Z. B. wird für ü in dezimaler Form &#252; oder &#xFC; in hexadezimal Form geschrieben (siehe auch http://www.netzwelt.com/selfhtml/html/referenz/zeichen.htm#allgemeines )

Weitere Informationen zu Zeichensätzen sind unter folgenden Adressen zu finden: