XML-Daten

Individuelle XML-Beschreibung für eigene Daten

Der offene XML-Standard wurde außerordentlich großzügig und weitsichtig definiert. Zahlreiche Mitglieder der XML-Familie wurden bereits standardisiert und sind erfolgreich weltweit im Einsatz. XML kann jedoch auch zur individuellen Beschreibung eigener Daten verwendet werden. Diese Seite gibt dazu einige Anregungen.
XML XML Extended Markup Language
Start Einfaches Beispiel mit privaten Elementen und Daten
Browser Anzeige von XML-Daten mit einem Browser-Programm
Import/Export XML-Daten mit Standard Büro-(Office)-Programmen
Beispiele XML-Daten am eigenen PC

Start mit eigenen XML-Daten
Rechts das Muster einer einfachen XML-Datei eigener Daten.
Jede XML-Datei beginnt mit der XML-Deklaration in der 1. Zeile.
Danach enthält die Datei nur Auszeichnungs-Elemente (tags) und Daten. Tags sind die Anweisungen in < >,   Daten alle anderen Zeichen.
Der Aufbau folgt nach einfachen Regeln (XML-Syntax), die jedoch streng einzuhalten sind.
Bei guter Wahl der Element-Namen kann eine XML-Datei nicht nur von (Parser)-Programmen sondern auch von Menschen einigermaßen gelesen werden.
Eine XML-Datei kann mit jedem Text-Editor erstellt und bearbeitet werden, natürlich auch mit jedem Textverarbeitungs-Programm und automatisch von vielen anderen Programmen
Eine XML-Datei ist nicht an ein Betriebssystem oder an einen Hersteller gebunden. Sie kann über Netzwerk oder Internet versendet werden und ist auf jedem Computer der Welt lesbar und verwendbar.
Datei demo_01.xml besteht nur aus einfachem Text:
<?xml version="1.0" encoding="iso-8859-1"?>
<meine_daten>
<person sex="m">
<vorname>Alfred</vorname>
<groesse>180</groesse>
<hobby>schach</hobby>
<hobby>kochen</hobby>
</person>
<person>
<vorname>Bettina</vorname>
<groesse>176</groesse>
<gebdat>1980-11-11</gebdat>
</person>
</meine_daten>
Einige Details:
Sie können für private Daten eigene XML-Auszeichnungs-Elemente (tags) erfinden und verwenden. Die Namen der Anweisungen und Attribute müssen bestimmten Regeln folgen (kleine Buchstaben, keine Leerzeichen, keine Sonderzeichen oder Umlaute).
Je nach gewünschter Anwendung müssen die Verarbeitungs-(Parser)-Programme jedoch erfahren, welche Anweisungen (tags) sie verwenden. Sonst kann kein Programm wissen, was z.B. mit <vorname> gemeint ist.
Alle Elemente müssen abgeschlossen sein. <ok></ok> ist zulässig, <notok> ohne </notok> jedoch nicht.
Elemente dürfen ineinander verschachtelt werden, sie dürfen einander jedoch niemals überschneiden:
<dasist><ok></ok></dasist> ist zulässig, <nix><gut></nix></gut> jedoch nicht.

Es darf nur ein Wurzel-Element (root) geben (hier z.B. <meine_daten>
Elemente sind optional: Für Bettina ist z.B. das Geburtsdatum angegeben, für Alfred nicht. Elemente können auch mehrfach vorhanden sein, z.B. die Hobbies von Alfred.
Elemente können Attribute enthalten, z.B. das Attribut sex="m" für Alfred. Attribute sind ebenfalls optional (fehlt bei Bettina). Attribute müssen immer in der Form name="wert" angegeben werden.
Daten sind geduldig: XML meldet keinen Fehler, wenn sie die Größe mit 1z6 angeben. Das verarbeitende Programm (Parser) muss jedoch damit fertig werden.
Die Daten dürfen keine Zeichen < > enthalten. Wenn sie diese Zeichen verwenden wollen, dann müssen diese 'maskiert' werden, d.h. für XML unsichtbar verpackt, danach bei der Verarbeitung wieder ausgepackt.

Anzeige von XML-Daten mit einem Browser

Alle Beispiele dieses Kapitels verwenden die gleichen XML-Daten - aus dem ↑ oben angezeigten Beispiel. Die vorgestellten Methoden lassen sich nach entsprechender Anpassung auf beliebige XML-Daten anwenden.

XML 'pur'

Im Rahmen rechts wird die XML-Datei aus dem ersten Kapitel dieser Seite (oben) ohne weitere Maßnahmen angezeigt.
Das Ergebnis ist je nach Browser-Programm unterschiedlich, jedoch immer sehr bescheiden. Der Browser verfügt über keinerlei Anweisungen zur Formatierung. Immerhin kann man den Text der Daten mit etwas Mühe lesen.

Tipp: Wenn ihr Browser eine Warnung anzeigt, dann folgen die Daten meist ein Stück weiter unten.
CSS   (Cascading StyleSheets)
kann zur Formatierung aller XML-Dateien verwendet werden, natürlich auch der eigenen. Damit wird die Datei bereits gut lesbar angezeigt.
Eine übersichtliche Formatierung gelingt schon mit sehr einfachen Mitteln. Mit der CSS-Anweisung display:block; wird jedes Element als Block (mit Zeilen-Umbruch) dargestellt.
Ein paar CSS-Tricks ermöglichen u.a. die fortlaufende Zählung der Elemente oder das Einfügen von Text vor / nach bestimmten Elementen.
Moderne Browser beherrschen die meisten dazu notwendigen CSS-Elemente. Das beste Ergebnis ergibt derzeit der Firefox Browser.
Leider haben nicht alle Browser dieses Niveau. Der M$IE Browser ist hoffnungslos veraltet: Überlegen sie, (kostenfrei) einen modernen Browser aus dem Internet zu laden...
Mit Rechtsklick in die angezeigte XML-Datei wird der Quelltext inkl. CSS-Verknüpfung angezeigt
Klick auf CSS zeigt das CSS-Stylesheet an.
XSL   (Extended Stylesheet Language)
ist eine Art Programmiersprache und selbst ein Mitglied der XML-Familie.
Mit XSL lässt sich die Ausgabe von XML-Daten fast beliebig gestalten - hier in Form einer einfachen Tabelle. Alternativ wären auch andere Tabellen möglich, einfacher Text oder eine → Grafik.

Mit Rechtsklick in die angezeigte XML-Datei wird der Quelltext inkl. XSL-Verknüpfung angezeigt
Klick auf XSL zeigt das XSL-Stylesheet an.
Details zu XSL

Import & Export von XML-Daten

Datenbanken

sind die wichtigsten Drehscheiben für jede Art von Daten. Alle modernen Datenbanken bieten Möglichkeiten, Daten in XML-Form zu importieren und zu exportieren.

Professionelle Datenbanken laufen auf einem SQL-Datenbank-Server, der kein User-Interface hat - Das wird von Programmen (Perl, PHP, ..) übernommen, die an einem Webserver laufen und ein User-Interface über dynamische Webseiten bieten.

Die Ausgabe von Datenbank-Daten in XML-Form ist kein Problem. Das meist-verwendete Administrations-Programm phpMyAdmin bietet dazu eine eigene Export-Funktion.

Die automatische Analyse einer XML-Datei erfordert einen XML-Parser. Alle modernen Programmiersprachen (insbesondere Perl und PHP) bieten derartige Parser-Funktionen.
Using XML & MySQL, MySQL 5.1 XML Functions, XPath @ Wikipedia, XPath @ W3C, PHP Classes MySQL to XML

Kalkulation

Die Standard-Programme LibreOffice-Calc und OpenOffice-Calc können jedes Dokument als XML-Datei speichern, z.B. mit Befehl Datei | Speichern unter | Dateityp=ODF im OpenDocument Standard oder mit Dateityp=Microsoft Excel XML im MS-Namespace (Excel).
Mit Befehl Datei öffnen wird eine allgemeine XML-Datei leider nicht als Tabelle geöffnet, sondern als Text-Dokument mit OpenOffice Writer.

MS-Excel speichert eine Tabellen-Kalkulation mit Befehl Datei | Speichern unter | Dateityp=XML
Der verwendete Namespace ist relativ komplex und folgt leider keinem Standard.
Brauchbare Daten befinden sich im Element <Table>, der umfangreiche Rest betrifft Overhead und Formatierung.
MS-Excel importiert mit Befehl Datei öffnen auch allgemeine XML-Daten. Sie werden sauber in Form einer Tabelle angezeigt.

Aufbereitung automatisch erzeugter XML-Daten

Viele Programme schreiben und lesen Daten in XML-Form. Die Daten werden in ihrer Speicher-Form meist als Archive komprimiert, derzeit meistens als ZIP-Archive, jedoch unterschiedlich benannt.

Tipp: Dateien *.xml sollten reine Text-Dateien sein (Kontrolle mit einem Text-Editor).
Alle anderen Dateien sind wahrscheinlich ZIP-Archive: Kopieren sie die Dateien, z.B. *.ods, *.xlsx und ändern sie die Datei-Erweiterung der Kopie auf *.zip
Versuchen sie, das ZIP-Archiv auszupacken: Meistens erhalten sie ein Verzeichnis (Ordner) mit verschiedenen XML-Dateien.
Verwenden sie zur Ansicht der XML Text-Dateien ein beliebigen Text-Editor. Windows notepad.exe ist nur eine Notlösung, besser ein Profi-Editor wie Notepad++ (kostenfrei für Windows), kwrite oder kate (Linux).

Der automatisch erzeugte Text ist meist ohne Zeilen-Umbruch gespeichert. Trennen sie die XML-Elemente zeilenweise auf, z.B. mit Notepad++:
Menü-Befehl Suchen | Ersetzen
Suchmodus = Erweitert
Suche nach ><
Ersetzen durch >\n<
Button: Alle ersetzen

Nun ist die Text-Datei besser lesbar. Sie können noch Leerzeichen und Tabulatoren einfügen, um die XML-Elemente besser darzustellen.

Beispiele von XML-Daten

LibreOffice und OpenOffice können Dokumente in vielen unterschiedlichen Formaten verwalten. Besonders effizient ist (wenn nicht anders eingestellt) das offene Standard-Format 'OpenDocument', z.B. Dateien *.odt, *.ods, *.odp (Textverarbeitung, Kalkulation, Präsentation).) Alle diese Dateien sind ZIP-Archive aus mehreren XML-Dateien.

Im Kapitel oberhalb finden sie Tipps zur Aufbereitung komprimierter XML-Daten.

Änderungen der Daten sind möglich. Allerdings muss man sich dabei an die strengen XML-Regeln halten und danach wieder alle Dateien in ein Archiv verpacken. OpenOffice kann auch (passend zusammengestellte) *.zip Dateien öffnen, denn die Datei-Type ist in der Text-Datei mimetype des Archivs festgelegt.
Die XML-Codierung hat große Vorteile:

Die Daten sind für jedes Programm zugänglich. Es ist daher besonders einfach, Zusatz-Programme für jeden denkbaren Zweck herzustellen und anzuwenden. Es ist für ein Programm besonders einfach, eine XML-Datei zu lesen, zu ändern und wieder zu speichern.

Man kann OpenDocument Dateien auch vollautomatisch erzeugen (lassen).

Text-Dateien (wie z.B. alle XML-Dateien) brauchen in komprimierter Form sogar weniger Speicherplatz als die jahrelang verwendeten binär codierten Dateien *.doc
Viele Programme speichern Einstellungen und Daten in XML-Dateien.
Man findet einige davon bei der Suche nach *.xml
Oft sind die Dateien allerdings (zur Tarnung ?) auch anders benannt.
Suchen sie u.a. im Programm-Verzeichnis
C:\Programme
sowie in den allgemeinen und individuellen Einstellungen
C:\Dokumente und Einstellungen\All Users\
C:\Dokumente und Einstellungen\Ich\
(Ersetzen sie 'Ich' durch die an ihrem PC angelegten AnwenderInnen).
Man kann XML-Dateien mit etwas Geschick ändern und an den eigenen Bedarf anpassen.

XML-Daten lassen sich ausgezeichnet kopieren, per Mail versenden, mit anderen Personen austauschen, usw.

Google Earth

Dieses populäre Programm speichert (wenn installiert) die privaten Einstellungen gut versteckt in dieser XML-Datei:
C:\Dokumente und Einstellungen\Ich\Anwendungsdaten\Google\Google Earth\myplaces.kml
(Ersetzen sie Ich durch ihren User-Namen).

Sie können die Datei mit jedem Editor (z.B. Notepad++) öffnen, ansehen, und mit etwas Geschick auch eigene Daten hinzufügen.
Das Beispiel markiert das 3-Ländereck A-CH-D im Bodensee, mit den ungefähren geografischen Koordinaten 9.56151° Ost und 47.50835° Nord.
Beispiel: Das 3-Ländereck A-CH-D als KML-PlaceMark
<Placemark>
<name>A-CH-D</name>
<LookAt>
<longitude>9.56151</longitude>
<latitude>47.50835</latitude>
<altitude>0</altitude>
<heading>0</heading>
<tilt>0</tilt>
<range>2000</range>
<altitudeMode>relativeToGround</altitudeMode>
<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
</LookAt>
<styleUrl>#msn_ylw-pushpin</styleUrl>
<Point>
<altitudeMode>clampToGround</altitudeMode>
<gx:altitudeMode>clampToSeaFloor</gx:altitudeMode>
<coordinates>9.56151,47.50835,0</coordinates>
</Point>
</Placemark>

LibreOffice + OpenOffice

Diese ausgezeichneten Pakete von Standard Büro-Software sind kostenlos im Internet erhältlich - für alle gängigen Sprachen und Betriebssysteme.
LibreOffice speichert sowohl die eigenen Einstellungen als auch die Daten nach XML-Standard (OpenDocument).

Die XML-Dateien sind allerdings ZIP-komprimiert. Sie lassen sich erst nach dem Auspacken (mit WinZip oder einem beliebigen anderen Expander-Programm) öffnen und bearbeiten.

Manuelle Änderungen sind nicht sehr sinnvoll. Allerdings beherrschen alle modernen Programmiersprachen sowohl das Ein- und Auspacken von ZIP-(und andere)-Archiven als auch die rasche und effiziente Verarbeitung von XML-Dateien.
Das eröffnet fast unbegrenzte Möglichkeiten zur automatischen Verarbeitung von OpenDocument Dateien. Tausende von Dateien können in wenigen Sekunden durchforstet werden. Man kann nach bestimmten Merkmalen (Inhalt, Formatierung, Kommentare,...) suchen, sortieren, Ergebnisse in Datenbanken eintragen, oder sogar die Daten ändern.

Dieses Kalkulations Mini-Programm addiert 2 Zufallszahlen, die man mit Taste F9 erneuern kann.

Beispiel: Ausschnitt der Datei content.xml die man beim Auspacken einer LibreOffice-Datei *.ods erhält:
<table:table-row table:style-name="ro1">
<!-- Zelle A1 -->
<table:table-cell
table:formula="of:=INT(RAND()*10)"
office:value-type="float"
office:value="0">
<text:p>0</text:p>
</table:table-cell>
<!-- Zelle B1 -->
<table:table-cell
table:formula="of:=INT(RAND()*10)"
office:value-type="float"
office:value="1">
<text:p>1</text:p>
</table:table-cell>
<!-- Zelle C1 -->
<table:table-cell
table:formula="of:=[.A1]+[.B1]"
office:value-type="float"
office:value="1">
<text:p>1</text:p>
</table:table-cell>
</table:table-row>