XML

Aus Machackers

Wechseln zu: Navigation, Suche

eXtensible Markup Language

Als leicht handhabbare und syntaktisch stringentere Untermenge von SGML dessen Nachfolger.

Vorteil: Universalität. Die DTD s und XSL -StyleSheets sind in XML formulierbar. Es gibt sogar ein konformes Vektor-basiertes Grafikformat: SVG.

Die DTD als Definition einer bestimmten Datenstruktur kann abgelöst werden durch XMLSchema. Hiermit wird eine Klasse von Datenstrukturen definiert.

In OS X

Warum das an diesem Ort wichtig ist? Wer schon mal Mac OS X den Rockzipfel hochgehoben hat, weiss, dass da 'ne ganze Menge XML-Kram versteckt ist. In jedem Applikationspaket gibt es eine Info.plist, und in den Preferences-Ordnern tummeln sich die .plist-Dateien nur so. plist ist die Abkürzung für PropertyList. PropertyList nennt man eine XML-Anwendung. Andere XML-Anwendungen wären z. B. XHTML oder AIML (Artificial Intelligence Markup Language).


Öffne ruhig mal so eine .plist Datei in Deinem Text-Editor:

was zwischen spitzen Klammern steht, nennen wir Tag
ein Tag ist entweder ein Element oder ein Element mit Attributen
ein Attribut ist ein Name-Wert-Paar
es gibt immer ein Start-Tag und ein End-Tag
letzteres erkennt man am Slash nach der öffnenden spitzen Klammer
es gibt leere Elemente, dann muss der Slash vor der schließenden spitzen Klammer des Start-Tags vorhanden sein
außerdem gibt es Deklarationen
am Beginn einer XML-Datei steht immer eine Processing Instruction (erkennbar am Fragezeichen)
darauf folgt immer entweder die DTD selbst oder eine Entity Declaration (erkennbar am Ausrufezeichen), die die DTD benennt und den Verweis darauf

Folge der URL http://www.apple.com/DTDs/PropertyList-1.0.dtd und du siehst die PropertyList-DTD.

Es gibt zwei Möglichkeiten, eine XML-Datei zu parsen: nicht-validierend und validierend. Im ersten Fall ist keine DTD notwendig. Der Parser prüft lediglich, ob es sich um eine (syntaktisch fehlerfreie) XML-Datei handelt. Im zweiten Falle vergleicht der Parser die Dokumentenstruktur mit den Vorgaben der (dem Dokument zu Grunde liegenden) DTD. In diesem Falle kann er sagen, ob es sich um eine gültige PropertyList handelt oder nicht.

Sprachgebrauch:

Hin und wieder liest man in einschlägigen Mac OS X Foren Sätze, in denen Dinge wie "XML-ähnlich", "XML-artig" und so weiter vorkommen. Soetwas gibt es nicht.

Alles, was den Parser nicht entweder als wohlgeformt oder gültig passiert, ist eine ungültige XML-Datei. Sie mag noch so -ähnlich oder -artig sein, sie ist als XML-Datei einfach nicht brauchbar und deshalb nicht mehr oder weniger Wert als jede andere beliebige ASCII-Datei.

Und das, was bei Mac OS X unter dem Rockzipfel sichtbar wird, ist beinhartes XML. Da läßt sich nichts dran deuteln. Warum auch? Ich jedenfalls bin sehr froh, dass es so ist.