XML

Extended <Markup> Language

XML ist ein Offener Standard zur Beschreibung von Daten. In der Informatik hat XML fundamentale Bedeutung und entwickelt sich zu einer zentralen Drehscheibe. XML ist eine rasch wachsende Familie mit vielen spezialisierten Mitgliedern, die alle miteinander kompatibel sind - unabhängig von Betriebssystem, Software und Version.
XML - Kompress XML in Stichworten
XML - Demo Beispiele für XML-Daten und XML-Programme
XML-Familie Einige Mitglieder der rasch wachsenden XML-Familie
Webseiten mit Einbettung aller anderen XML-Mitglieder
OpenDocument
Standard Büro-Software auf XML-Basis
Objektgrafik - Scalable Vector Graphics
Geografische Daten (GoogleEarth) - Keyhole Markup Language (*)
Mathematische & technische Formeln
News und Redaktionelle Daten
XML-Daten Verwendung <eigener /> XML-Elemente für Daten
XSL Erzeugung unterschiedlicher (!) Produkte aus XML-Daten
SGML & XML Geschichte von XML
Weitere XML
Familien - Mitglieder
OpenDocument . Büro-Daten
XLink . . . Links für alle XML-Familien-Mitglieder
XForms  . . Formulare
XQuery  . . Zugriff auf Datenbanken
SMIL  . . . Animation (Synchronized Multimedia Integration Language)
CML & ChemML . Chemical Marlkup Language: Molekül-Strukturen
XCBF . . . Common Biometric Format
FpML . . . Financial Products Markup Language
RDF  . . . Resource Description Framework: Metadaten
InkML  . . Digital Ink: Elektronische Schreibstifte
OWL  . . . Web-Ontologie: Daten für Programme statt für Menschen
DOM Das Document Object Model als Grundlage strukturierter Daten
CSS Formatierung für alle (!) XML-Familien-Mitglieder
Javascript Programmierung für alle (!) XML-Familien-Mitglieder
Kommentare Einbettung vón Fremd-Code
Links XML-Links Ausgewählte Links zum Thema XML

XML-Kompress

Auf eine Live-Demo spektakulärer XML-Möglichkeiten wird hier ausnahmsweise verzichtet, da sie evtl. einen älteren Browser verwenden. Immerhin ist diese gesamte Webseite ein XML-Dokument (lediglich für den veralteten M$IE-Browser getarnt).

Offener Standard

XML kann lizenz- und kostenfrei verwendet werden. Das gilt sowohl für etablierte XML-Familien als auch für eigene Entwicklungen.

XML ist ein wichtiger Schritt, um die Informatik aus der Umklammerung einzelner Monopole zu lösen. Das bietet auch anderen Unternehmen eine gute Chance und ermöglicht endlich wieder Fortschritt für IT-AnwenderInnen.

Überall verwendbar

XML kann auf jedem Betriebssystem verwendet werden und ist nicht an Programme oder Versionen gebunden.

XML ist nicht an einzelne Unternehmen oder ihre Produkte gebunden. XML-Daten können weltweit unabhängig von der verwendeten Software ausgetauscht werden.

Einfacher Text

XML beschreibt beliebige Daten mit 'Einfachem Text ' (text/plain). Daher können XML-Dokumente sowohl von Menschen als auch von Programmen gelesen und bearbeitet werden.
XML-Dokumente sind voll transparent - es gibt dort keine Geheimnisse.
Das ist ein wichtiger Fortschritt gegenüber binär codierten Daten, die spezielle Software zur Verarbeitung benötigen und für Menschen unlesbar sind.

Zur Bearbeitung von einfachem Text steht eine sehr große Auswahl an Programmen und Programmiersprachen zur Verfügung.
Klartext hat auch einen Nachteil: Das 'Lesen' und 'Verstehen' durch Programme benötigt etwas mehr Zeit als für binär codierte Daten. Dieser Nachteil wird allerdings durch die hohe (und weiterhin zunehmende) Leistung moderner PC kompensiert.

Familie

XML gibt selbst nur wenige Regeln vor. Alle Details sind den einzelnen XML-Mitgliedern überlassen, z.B. wieviele und welche Spalten (Felder) zur Beschreibung von Daten verwendet werden, oder welche 'Befehle' in den XML-'Programmiersprachen' enthalten sind.
Daher entstehen in einer großen XML-Familie viele verschiedene Mitglieder.

Jedes XML-Familien-Mitglied ist auf bestimmte Daten spezialisiert. XML sorgt für die problemlose Zusammenarbeit aller Mitglieder. Das ermöglicht die standardisierte Integration unterschiedlicher Daten (z.B. Text, Grafik, Layout, ...) - unabhängig von System, Software und Hersteller.

Zukunft

XML ist sehr allgemein formuliert und hat daher ein außerordentliches Entwicklungs-Potential. Neben den derzeit schon erfolgreichen Mitgliedern der XML-Familie entstehen laufend weitere für unterschiedliche Fachgebiete.

Aus der Erfahrung älterer Standards wurde XML besonders änderungs-freundlich entwickelt. XML-Standards können sich in geordneten Bahnen weiter entwickeln. Der XML-Standard sorgt dafür, dass alle derzeitigen und zukünftigen Mitglieder der XML-Familie miteinander voll kompatibel bleiben.

XML-Programme

XML beschreibt beliebige Daten. Wenn es sich bei den Daten um Anweisungen handelt, dann nennt man das eine Programmiersprache. Auch diese Webseite ist ein Programm in der Programmiersprache XHTML. Alle XML-Programmiersprachen sind miteinander voll kompatibel.

In eine XHTML-Webseite können z.B. → SVG-Grafiken oder MathML-Formeln eingebettet werden - alles Mitglieder der XML-Familie. Die hervorragenden Programm-Pakete OpenOffice und LibreOffice verwenden OpenDocument, einen XML-Standard für die Codierung von Büro-Dokumenten wie Textvearbeitung, Kalkulation usw.

XML-Beispiele

XML-Daten und -Programme sind in Klartext formuliert. Links ein Beispiel für 'selbstgemachte' → XML-Daten, rechts ein → SVG-Programm zur Erstellung einer Grafik.
<!-- XML Personen-Daten -->
<person>
<vorname>Anna</vorname>
<zuname>Albers</zuname>
</person>
<person>
<vorname>Zacharias</vorname>
<zuname>Zulehner</zuname>
</person>
<!-- Grafik aus Kreis, Text und Linie -->
<svg>
<circle cx=";20"; cy=";20"; r=";15"; fill=";red"; />
<text x=";40"; y=";30";>SVG</text>
<line x1=";0"; y1=";0"; x2=";20 y2=";20"; />
</svg>

Auszeichnung

Eine wichtige Rolle in XML spielen Auszeichnungs-Elemente (tags), das sind in < > eingeschlossene Schlüssel-Worte, z.B. <person> oder <circle>  Sie dienen zur Beschreibung der Daten.

Namespace

Jedes Mitglied der XML-Familie verfügt zur Beschreibung 'seiner' Daten über einen Satz von Auszeichnungs-Elementen. Es gibt internationale Standards mit einem genau fixierten Namespace, z.B. XHTML für Webseiten, RSS für redaktionelle Daten, CML für chemische Formeln, usw. Man kann jedoch auch eigene Elemente erfinden und verwenden.

Symmetrie

Alle Elemente werden symmetrisch abgeschlossen, d.h. jedes Element reicht von seinem Anfang bis zu seinem mit / bezeichneten Ende, z.B.
<zuname> . . </zuname>
Innerhalb jedes Elements können sich weitere Elemente oder Daten befinden.

Hierarchie & DOM

Auszeichnungs-Elemente und Daten können beliebig tief ineinander gestaffelt werden, z.B. in der Form
<person><vorname>Hans</vorname></person>
Jedes XML-Dokument enthält einen solchen 'Hierarchischen Baum (tree), der nach den Regeln des Document Object Model (DOM) geordnet ist. Das DOM verlangt eine strenge Hierarchie und verbietet Überschneidungen oder unsymmetrische tags wie z.B.
<person><falsch>Susi</person></falsch>
Die einfachen aber strengen Regeln ermöglichen die einfache Erstellung von Programmen zur XML-Verarbeitung.

Attribute

Jedes Auszeichnungs-Element (tag) kann Attribute zu seiner Beschreibung enthalten. Auch sie sind Teil der Regeln im Namespace eines XML-Mitglieds. Die Attribute x und y bezeichnen z.B. die Position von Text in einer SVG-Grafik (Beispiel oben).
Ein besonderer Vorteil von XML ist die Möglichkeit, aus den gleichen Daten je nach Bedarf unterschiedliche Produkte herzustellen - und zwar sowohl manuell als auch vollautomatisch. So kann man z.B. die gleichen XML-Wirtschafts-Daten wahlweise in eine Datenbank, Tabelle, Grafik, Kalkulation, Webseite oder Mobiltelefon-Seite einfügen, am besten gleich mit XSL - ebenfalls einer Programmiersprache der XML-Familie.

GML, SGML und XML

Die kurze Geschichte von XML
1973 wurde Generalized Markup Language (GML) von IBM als Standard definiert. Das Ziel war u.a., die damals von jedem Gerät zur Ausgabe benötigten verschiedenen Steuerzeichen zu vereinheitlichen. GML war der erste gelungene Versuch, Steuerung und Inhalt in allgemeiner Form voneinander zu trennen.

1986 wurde von der International Organization for Standardization (ISO) die Standard Generalized Markup Language (SGML) als ISO-Norm 8879 definiert.

Dieser Standard sollte die absehbare rasante Entwicklung von "Auszeichnungs-Sprachen" in geregelte Bahnen leiten. Auszeichnungs-Sprachen verwenden Klartext (plain text), um mit Hilfe von Textmarken (tags) Zusatz-Informationen in einem Text zu verankern.
Beispiel: Die Eigenschaft "fettgedruckt" in dem Satz
Das ist ein fettgedrucktes Wort
Ursprünglich benötigten Medien wie Bildschirme oder Drucker spezielle Steuerzeichen vor und nach dem Wort, z.B. zur Darstellung von "fett". Fast jedes Modell verlangte dabei andere Steuerzeichen.

Moderne Programme verwenden dazu standardisierte "Auszeichnungen", z.B.
Das ist ein <b>fettgedrucktes</b> Wort
Dieser Text ist sowohl für jedes (!) einschlägige Programm als auch für Menschen lesbar. Die ständige Übersetzung in die Codes verschiedener Hersteller ist überflüssig, da alle Programme den Standard kennen.
In der Praxis fand der SGML-Standard ISO-8879 wenig Anwendung, da er viel zu komplex und daher praxisfremd definiert ist. Die Ausstattung von Programmen mit SGML-Fähigkeit wäre unverantwortbar teuer.
Daher wurde vom World Wide Web Consortium (W3C) XML als praxis-taugliches Derivat von SGML entwickelt:

XML sollte im gesamten Internet problemlos verwendbar sein
XML sollte die Grundlage für eine breite Palette von Anwendungen bilden
XML sollte kompatibel mit SGML sein
Die Herstellung und Verarbeitung von XML Dokumenten muss einfach sein
XML soll möglichst wenige Optionen enthalten
XML Dokumente müssen für Menschen lesbar und einigermaßen verständlich sein.
XML soll weltweit international anwendbar sein.
1969 Entwicklung von GML (generalized markup language) von Ch. Goldfarb, Ed. Mosher und Ray Lorie.
1973 Publikation von GML als Standard durech IBM
1980 Diskussion über einen SGML-Standard
1986 wurde der ISO-Standard 8879 für SGML definiert.
1989 ";Erfindung"; des WWW durch Tim Berners-Lee
1994 Gründung des W3C
1996 Ideen für ein praxis-taugliches Derivat XML
1997-12: XML 1.0 als Vorschlag des W3C
1998-03: Demo von XML mit dem Mozilla-Browser
1998-02: XML 1.0 als Empfehlung des W3C
1998: SMIL als Empfehlung des W3C
1998-11: Diskussion erreicht bereits die Themen CSS(2), XLink, DCD, RDF, VML, SVG, XQuery, ...
1998 SGML wird offiziell in OASIS umgetauft.
1999-01: XML-Namespaces als Empfehlung des W3C
1999-06: Empfehlung XML & Stylesheets des W3C
1999-11: XSL1.0 Empfehlung
2000-10: XML 2nd edition: HTML wird als XHTML neu definiert
2001: SVG als Empfehlung des W3C
2005: OpenDocument Standard für Büro-Programme (z.B. OpenOffice, LibreOffice).
Das Ergebnis der XML-Definition war beachtlich:
Die gesamte Umfang des Dokuments beträgt nur ca. 40 Seiten (verglichen mit über 500 bei SGML).
Der Schrift-Standard → Unicode sorgt für weltweite Anwendbarkeit.
XML ist problemlos in allen Betriebssystemen und Netzwerken verwendbar.
SGML wurde in anderer Form weiterentwickelt: 1998 in OASIS umbenannt: Organization for the Advancement of Structured Information Standards. OASIS koordiniert die Entwicklung vieler XML-Standards.
OpenDocument ist heute die Grundlage, um die Daten aller Standard Büro-Programme in XML zu codieren. Die Programm-Pakete OpenOffice und LibreOffice verwenden OASIS.

Ausgewählte Links zum Thema XML

W3C XML-Homepage beim W3C, Browser und XHTML-Mimetype, XML de-Übersetzungen bei Edition-W3C, XML-Tutorial (en bei W3Schools)
Apache XML Project
XML Standards Project
Wikipedia Wikipedia: Extensible Markup Language (de, en), SGML,
http://www.xml.com
http://www.sil.org/sgml/xml.html
eXtropia: Intro to XML
Uni Magdeburg
University of Minnesota Duluth: XML (RDF, RSS, SMIL, WAP/WML, XFORMS, XHTML, MIME, XML) - Link Sammlung !
XML for script - Javascript XML parser (SourceForge)
XML-EdiFact: Projekt zur Bewältigung des EdiFact-Wahnsinns mit XML.
OASISOASIS - Organization for the Advancement of Structured Information Standards - XML Dokumente für alle Standard-Programme
KML (Geografische Daten, GoogleEarth): Open Geospacial Consortium (OGC), Wikipedia, Reference,  
XHTML CSS