Aus dem Kurs: XSLT Grundkurs

XML verstehen – Tutorial zu XML

Aus dem Kurs: XSLT Grundkurs

XML verstehen

In den nächsten Minuten möchte ich ein bisschen etwas zu dem Thema XML sagen und zu dem Thema XML erläutern, wohlwissend, dass man das Thema XML nicht in fünf, sechs, sieben Minuten allumfassend erläutern kann. Ich gehe einmal davon aus, dass Sie sich mit dem Thema XML bereits grundlegend beschäftigt haben, dass Sie sich damit bereits grundlegend auskennen. Es geht in den nächsten Minuten in erster Linie darum, dass wir zum einen das gleiche Vokabular verwenden und zum anderen, für den Fall, dass Sie vielleicht mal das eine oder andere vergessen haben, dass wir das jetzt schnell noch einmal bei Ihnen ins Bewusstsein rufen. Und dazu habe ich hier erst einmal eine einfache XML-Datei und wir haben jetzt innerhalb dieser XML-Datei ein Root-Element. Beachten Sie bitte, das Root-Element darf in einem XML-Dokument genau, exakt einmal vorkommen. Genaugenommen es muss sogar einmal vorkommen, also es darf nicht mehrmals drin vorkommen oder null mal, es muss einmal drin vorkommen. Des Weiteren sehen Sie, wir haben hier diese Schreibweise mit den spitzen Klammern, einmal mit dem öffnenden Tag und einmal mit dem schließenden Tag. Bei dem schließenden Tag haben wir eben noch den Schrägstrich, den Slash drin. Kleiner Hinweis dazu, manchmal sagt man Tag, manchmal sagt man Element. Technisch korrekt ist an dieser Stelle eigentlich der Begriff Element. Tag ist einfach nur, dass wir jetzt sagen, naja wir haben das hier so benannt, also wir haben dem Ganzen eine Auszeichnung gegeben, aber vom XML, von der XML-Sprache muss man das Ganze hier ein Element nennen. In dem Fall das Root-Element. Das Root-Element, wie bereits gesagt, muss exakt einmal vorkommen, aber das Root-Element selber kann beliebig viele Unterelemente haben, wenn Sie so wollen, Kindelemente haben. Die können grundsätzlich auch beliebig verschachtelt sein, aber die Struktur muss korrekt sein. Sie sehen, wir haben jetzt hier das öffnende Tag Kunde, und wir haben jetzt hier das schließende Tag Kunde. Ich darf dieses schließende Tag Kunde, jetzt nicht an jede beliebige Stelle schreiben, zum Beispiel, würde ich es jetzt innerhalb des Elements Start verwenden, dann wäre hier die Hierarchie aufgebrochen und die Sachen werden nicht korrekt hierarchisch geöffnet und hierarchisch geschlossen worden. Also da muss man in der Tat drauf achten, dass diese Elemente von der Hierarchie her passend sind und stimmig sind. Nur dann haben Sie ein gültiges XML-Dokument. Des Weiteren haben wir jetzt hier Attribute. In diesem Fall einmal das Attribut Kundennummer und diesem Attribut haben wir auch direkt einen Wert zugewiesen, nämlich 12345. Um einem Attribut einen Wert zuzuweisen, das wird immer mit dem Gleichheitszeichen gemacht, und der Attributwert wird immer übergeben, indem der Attributwert in Anführungszeichen steht. Beachten Sie bitte, dass die Schreibweise bei Attributen, genau wie bei den Elementen groß-klein-schreib-sensitiv ist. Ich darf also nicht einmal Kunde mit einem kleinen k schreiben und einmal Kunde mit einem großen K, dann würde das Ganze hier zu einem ungültigen XML-Dokument werden. Wenn wir mit XML-Dokumenten arbeiten, dann sieht das innerhalb eines derartigen XML-Dokuments eigentlich immer so aus. Innerhalb des Computers wird das Ganze allerdings ein bisschen anders abgebildet und wenn Sie jetzt hier diese Struktur auf ein Blatt Papier oder auf einen Flipchart zeichnen würden, würden Sie das vermutlich auch anders machen. Nämlich meistens in so einer Art Baumstruktur. Hier haben wir das Root-Element, Kundendatenbank. Innerhalb des Root-Elements haben wir jetzt das Element Kunde und innerhalb des Elements Kunde haben wir weitere Unterelemente, nämlich jetzt hier Nachname, Vorname und so weiter. Diesen Elementen sind jetzt Textwerte zugewiesen, nämlich in meinem Fall jetzt hier, meinem Kundendatensatz, meine Adresse. Das ist die Art und Weise, wie das Ganze jetzt hier so hierarchisch dargestellt wird. Man redet dann auch häufig von einem Baumdiagramm, wobei es ja eher ein Wurzelwerk ist, weil wir ja von oben nach unten das Ganze uns anschauen. Das wiederum hat ebenfalls einen Namen. Das Ganze bezeichnet man dann häufig als DOM, beziehungsweise Document Object Model. Noch ein paar wenige aber doch sehr, sehr wichtige Erläuterungen hierzu. Wenn wir uns das Ganze jetzt hier auf einem Blatt Papier aufschreiben, ist das auf einem Blatt Papier schnell gemacht. Ein Computerprogramm zu schreiben, welches diese Daten auf diese Art und Weise im Hauptspeicher Ihres Computers ablegt, ist durchaus relativ aufwändig. Ich sage es direkt, Sie müssen das natürlich nicht selber machen, das ist bereits für Sie programmiert worden. Sie müssen das nicht machen, aber intern ist die Verarbeitung von derartigen Strukturen gar nicht so unaufwändig. Vielleicht haben Sie ja in Ihrem Leben schon einmal mit der Programmiersprache C gearbeitet und können sich dann vielleicht noch daran erinnern, dass wir dort mit Pointern, mit Zeigern Arbeitern, innerhalb des Speichers ist das nämlich genau so, dass dann an einer bestimmten Adresse beispielsweise die Information Nachname steht und dann kommt ein Zeiger auf eine andere Speicheradresse und da steht dann der Wert Thoma drin. Warum erläutere ich das jetzt hier so intensiv, dass das Ganze auch im Speicher auf diese Art und Weise vorgehalten werden muss? Naja, wenn man sich jetzt vorstellt, innerhalb des Speichers wird immer hier mit Zeigern gearbeitet, und Sie haben jetzt hier eine relativ komplizierte Kundendatenbank und Sie suchen beispielsweise nach allen Kunden, die in der Postleitzahl 53773 wohnen, dann ist das relativ aufwändig, diese Strukturen immer von oben nach unten abzufahren. Und dieses Problem hat man bei großen Strukturen in der Tat, wenn man mit XSLT arbeitet. XSLT ist ein ganz tolles System, aber XSLT bekommt nicht die Geschwindigkeitskrone. Wenn man mit sehr, sehr komplexen Strukturen arbeitet, sollte man im Hinterkopf immer das Thema Performance ein bisschen behalten. Man kann sich an der ein oder anderen Stelle klug verhalten oder eben nicht so klug verhalten, bei kleinen Dokumenten ist das dann egal, aber wenn Sie mit großen Dokumenten arbeiten, mit vielleicht vielen hunderttausend derartigen Einträgen, dann kann man möglicherweise in ein Performanceproblem hineinlaufen. Das soll jetzt hier nur am Rande erwähnt werden, aber bitte wie gesagt, vergessen Sie das nicht, dass die interne Abspeicherung innerhalb des Hauptspeichers von diesem DOM, von diesem Baum gar nicht so unaufwändig ist und dass man das eben immer ein bisschen im Hinterkopf behalten sollte. Jetzt haben wir innerhalb weniger Minuten hier einen Rundumschlag zu dem Thema XML gemacht. Ich hoffe, das war ausreichend für Sie, um Sie zu dem Thema XML noch mal ein bisschen fit zu machen, um noch mal ein wenig dafür zu sorgen, dass wir das gleiche Vokabular verwenden.

Inhalt