[linux-l] Leerzeichen in XML

Volker Grabsch vog at notjusthosting.com
So Mai 14 14:19:51 CEST 2006


On Sun, May 14, 2006 at 12:49:15PM +0200, Steffen Dettmer wrote:
> * Volker Grabsch wrote on Wed, May 10, 2006 at 14:04 +0200:
> > 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"?
>  [...] 
> > > 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.
> 
> Ja, und wo steht denn das nu wenn nicht im XML-Standard? Wie gesagt, ich
> versteh den Text nicht.

Okay, formulieren wir es anders: Alle Parser XSLT-Tools und Pretty-Printer,
die ich kenne (4suite, Python-XML, expat, libxml2, libxslt1, ...), mit Ausnahme
des buggigen REXML, machen das AFAIK so, wie ich es beschrieben hatte.

Ich persönlich finde es auch sehr naheliegend, dies so zu lösen.

Aus den Dokumenten des W3C habe ich mir diese Details aber (noch) nicht
herausgearbeitet.

> > Davon abgesehen ist HTML an dieser Stelle kein gutes Beispiel,
> > schließlich geht es um XML. Daher lieber mit XHTML vergleichen.
> 
> Dachte immer HTML-4 wäre XML konform. Na ja, keine Ahnung.

Nee, selbst HTML-4.0 Strict verwendet z.B. <br> statt <br/>.
Das akzeptiert kein XML-Parser.

Außerdem, wenn du einen XSLT-Stylesheet hast, und dort den "output"
Modus von XML auf HTML änderst (auch bei HTML 4.0), dann werden z.B.
alle <br/> Tags deines Stylesheets später nur noch als <br> erscheinen.

Weitere Details und Unterschiede sind in SelfHTML nachzulesen, die
haben das knapp und übersichtlich zusammengetragen.


Viele Grüße,

    Volker

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



Mehr Informationen über die Mailingliste linux-l