[linux-l] Leerzeichen in XML

Volker Grabsch vog at notjusthosting.com
Mi Mai 10 14:04:29 CEST 2006


On Mon, May 08, 2006 at 12:47:21AM +0200, Steffen Dettmer wrote:
> Ich finde die Erklärung "Behandlung von Leerraum" aber als ziemlich
> verwirrend: was ist "die normale Leerraumbehandlung"? "akzeptabel"? Wenn
> nicht "preserve", warum dann "Ein validierender XML-Prozessor muss die
> Anwendung außerdem darüber informieren, welche Leerraumzeichen im Inhalt
> eines Elements stehen"?

In SAX gibt es (neben "element", "comment", ...) ein "character"-Ereignis,
aber auch ein "ignorable"-Ereignisse.

In anderen XML-APIs gibt's entsprechendes.

> und "alle Zeichen" schliesst doch Leerzeichen
> und Zeilenvorschübe ein? Warum sollen dann alle Zeilenvorschübe nach \n
> übersetzt werden ("Alle Zeilenumbrüche in externen analysierten Entities
> (einschließlich des Dokument-Entity) werden beim Einlesen vor dem
> Parsing dadurch normalisiert, dass sowohl die Zwei-Zeichenfolge #xD#xA
> als auch jedes #xD, das nicht einem #xA voran geht, in ein einzelnes
> #xA-Zeichen umgewandelt wird.").

Weil sie manchmal wichtig sind, und manchmal wiegesagt nicht.

Und selbst die "ignorable whitespaces" sollen manchmal wieder ausgegeben
werden können, und da will man einfach einheitliche Zeilenumbrüche
gewährleisten, schätze ich.

So kann man ein eingelesenes XML-Dokument auch wieder in der selben
"Einrückung" wieder ausgeben, wenn man möchte ... jenachdem ob man
die "ignorable whitespaces" nun ignoriert oder nicht.

(es heißt ja nur "ignorable", nicht "must be ignored" :-))

> Würde aber erwarten, dass man sich auf Whitespaceerhaltung nicht so ohne
> weiteres Verlassen kann, wie's bei HTML ja ist, allerdings "dürfte" dann
> "<pre>" nicht funktionieren, es sei denn, es ist "xml:space preserve".

Nein, denn wenn in einem Element nicht nur Leerzeichen, sondern auch
andere Zeichen drinstehen, dürfen die Leerzeichen nicht mehr ignoriert
werden. In einem <pre> ist genau das der Fall.

Davon abgesehen ist HTML an dieser Stelle kein gutes Beispiel,
schließlich geht es um XML. Daher lieber mit XHTML vergleichen.


Viele Grüße,

    Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR



Mehr Informationen über die Mailingliste linux-l