Thomas Vogel: XML vs. proprietärer parser

Beitrag lesen

Hi,

Nun ist es aber so, daß ich von der kette XML-->DTD-->XLS-->HTML keinen allzu guten überblick habe

Die Reihenfolge wäre eher so: DTD-->XML-->XSL(T)-->HTML

* welcher vorteil entsteht mir gegenüber meinem PHP-parser, gerade auch in bezug auf zeit- und arbeitsaufwand sowie erweiterbarkeit und wartungsaufwand bei änderungen oder ergänzungen?

Bei Änderungen schreibst du "einfach" die zugrundeliegende DTD um, bzw. entfernst Elemente oder fügst welche hinzu. Ich bin zwar nicht PHP-kundig, vermute aber mal, daß du hierbei Änderungen im Code an verschiedenen Stellen durchführen müsstest, was m.E. doch um einiges aufwändiger wäre...

* ich möchte nur bestimmte HTML-tags zulassen, deren syntax sich nicht einmal ändern muß (z.b. <b>), wenn ich nun eine DTD schreibe, in der ich die gewünschten tags aufnehme und andere zusätzliche proprietäre und wieder andere HTML-tags eben weglasse, erfüllt das meine erwartungen?

Dies funkt m.E. ganz hervorragend (wenn du validierst, s.u.), nur nimmst du in die DTD keine HTML-Tags auf. Die DTD soll die mögliche Struktur deines XML-Dokuments festlegen. Dinge wie "fett" oder "kursiv" implementierst du als Attribute oder Entities, Absätze und Überschriften als Elemente. Das ganze _muß_ ja am Ende eine Baumstruktur ergeben. Die Umwandlung in HTML erfolgt erst im übernächsten Schritt, dem Parsen des XML-Dokuments mit dem XSL(T)-Prozessor, z.B. mit XT von James Clark (http://www.jclark.com/xml/xt.html).

Werden auch wirklich nur die tags interpretiert, die auch definiert wurden? Wie fange ich z.b. dann fehler ab, wenn im XML dokument tags benutzt werden, die meine DTD nicht kennt?

Wird das XML-Dokument gegen die zugrundeliegende DTD validiert (z.B mit Xerces / http://xml.apache.org/index.html) werden nur die Tags verarbeitet, die in der DTD definiert sind. Wie das Exception-Handling aussehen kann weiß ich nicht, aber mit ein paar Zeilen Code läßt sich da bestimmt was machen... ;-)

Wo kann man sich evtl. einmal ein tutorial ziehen, in dem etwas ähnliches wie das, was ich vor habe behandelt wird?

Ein Einstiegspunkt der mir einfallen würde wäre das XML-FAQ (http://www.ucc.ie/xml/); oder du schaust mal in das Archiv der deutschsprachigen XML-Mailingliste (http://www.listserv.gmd.de/archives/xml-de.html) ob so etwas mal gefragt worden ist.

euer (etwas ratloser) Wowbagger

Hoffentlich jetzt etwas weniger ratlos, wenn nicht tut's mir leid :-(

Gruß

Thomas