Einrückung

(Auszug aus "Perl & XML" von Erik T. Ray & Jason McIntosh)

Es ist Ihnen sicherlich schon in den bisherigen Beispielen aufgefallen, daß wir Elemente durch zusätzliche Leerzeichen einrücken, um das Dokument für Menschen lesbarer zu gestalten. Dafür gibt es gute Gründe, denn es kommt doch immer wieder vor, daß man XML-Dokumente mit einem einfachen Texteditor oder dergleichen bearbeitet. Gelegentlich kann es aber geschehen, daß diese Einrückung Leerzeichen produziert, die man bei der tatsächlichen Verarbeitung nicht haben will. Die Philosophie von XML heißt »keine Vermutungen oder Zweideutigkeiten«. Aus diesem Grund mag es so aussehen, daß Sie mit diesen Leerzeichen leben müssen.

Eine mögliche Lösung ist es, den XML-Prozessor etwas schlauer zu gestalten. Viele Parser bieten die Möglichkeit, die Weitergabe von Leerzeichen zu unterdrücken, wenn der Parser den Eindruck hat, diese dienen nur der Einrückung. (Anmerkung: Ein Parser ist ein spezialisierter XML-Handler, der das Dokument für den Rest des Programms vorverarbeitet. Verschiedene Parser haben unterschiedliche Grade von »Intelligenz«, wenn es darum geht, XML zu interpretieren. Darauf werden wir in XML-Grundlagen: Lesen und Schreiben noch zurückkommen.) Der Parser benutzt zu diesem Zweck die DTD. Wenn er Leerzeichen findet, wo kein Text deklariert ist, dann nimmt er an, er könne sie weglassen. Darüber hinaus besteht auch die Möglichkeit, den Parser an eine spezielle Markup-Sprache anzupassen und für einige Elemente eine Sonderbehandlung von Leerzeichen festzulegen.

Schließlich bietet auch XML selbst eine Möglichkeit, Leerzeichen zwingend zu konservieren. Das Attribut xml:space kann in jedem einzelnen Element als Anweisung an den Parser eingesetzt werden. (Anmerkung: Wir wissen, daß es ein reserviertes Attribut ist, weil es mit dem Präfix »xml« beginnt. Der XML-Standard reserviert mit diesem Präfix Element- und Attributnamen für spezielle Anwendungen.) Zum Beispiel so:

<address-label xml:space='preserve'>Haribostr. 246 70565 Stuttgart Deutschland</address-label>

Der Attributwert »preserve« bedeutet, daß in diesem Element Leerzeichen auf jeden Fall zu erhalten sind. Der Wert »default« (die Voreinstellung) besagt dagegen, daß der Prozessor die Erlaubnis hat, Leerzeichen zu ignorieren.

  

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema Perl & XML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © 2003 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "Perl & XML" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de