Markup mit Zukunft

Parsen durch logische Bäume

Ein XML-Dokument ist eine auf den XML-Regeln basierende, strukturierte Datei. Die Interpretation der Tags wird von DTD-Files (DTD = Document Type Definition) vorgeschrieben, die man schon zu HTML-Zeiten im Header mitführen konnte. Darin befinden sich die Definitionen der einzelnen Tags sowie die logische Struktur der Tags untereinander. Beispiel:

</p> <p><!LEMENT ADRESSE (FIRMA*)></p> <p><!LEMENT FIRMA (NAME, PLZ, ORT)></p> <p><!LEMENT NAME (#PCDATA)></p> <p><!LEMENT PLZ (#PCDATA)></p> <p><!LEMENT ORT (#PCDATA)></p> <p>

Ein XML-basierendes Dokument, das auf diese DTD zurückgreift, könnte so aussehen:

</p> <p><ADRESSE></p> <p>...</p> <p><NAME>Hinz&Kunz</NAME></p> <p><PLZ>0815</PLZ></p> <p><ORT>Mount Pardorf</ORT></p> <p></ADRESSE></p> <p>

In komplexeren Dokumenten können so unterschiedliche logische Inhalte eingebettet werden, die von der einen DTD so, von der andern so und von manchen überhaupt nicht festgelegt werden. Die logische Grundstruktur ist relativ flexibel: Ein und dasselbe Dokument kann etwa als Adreßdatenbank oder als komplexes Redaktionssystem interpretiert werden. Ja, nicht einmal die Daten müssen im XML-Format vorliegen. Vielmehr wäre es die Aufgabe einer geeigneten Datenbankschnittstelle, den Tabelleneintrag "Ort" in ein Tag-Konstrukt ... einzubetten und dann als Teil eines I/O-Streams auszugeben.