Am Freitag, 28. Februar 2003 08:42 schrieb Michael Kastner: > Hallo Max, > > Max Trense wrote: > > XML ist an sich wirklich kein Overkill: > > > > <?xml version="1.0" encoding="us-ascii"?> > > <HelloWorld><Variable scope="private">Wert</Variable></HelloWorld> > > Dein Beispiel für mich eher die Bestätigung des Overkills. BTW wenn > Hello World nur ein Element hat, dann genügt es, wenn man den Wert > ohne weiteren Tag direkt in das Wurzelelement "HelloWorld" schreibt: > > <?xml version="1.0" encoding="us-ascii"?> > <HelloWorld>Wert</HelloWorld>
Aber das Dokument HelloWorld hat doch nicht den Wert 'Wert' sondern die Variable 'Variable'. > Aber da ist halt immernoch sehr viel redundanz drin. Wenn HelloWorld > geschlossen wird, dann würde _ein_ Zeichen für das Schließen genügen. > > Man könnte, wenn man eine andere Nomenklatur verwendet, das Dokument > auch so kodieren: > > Helloworld {Wert} Du kannst für XML viele noch tollere Darstellungsweisen finden. Aber die Frage ist, wem das nützt. XML ist primär ein Austauschformat. XML soll sicherstellen, dass es jeder versteht. Asiatische Tastaturen haben zum Beispiel oft keine geschweiften Klammern. Und wenn Du nur ein Zeichen zum Schließen verwendest, kannst Du nicht sicherstellen, dass Dein Dokument noch vollständig ist, wenn Du es segmentierst und wieder zusammensetzt. Ausserdem ist das leichter lesbar. Und wo ist in Deinem Beispiel 'scope="private"'? > Die geschweiften Klammern sind nur ein Beispiel, weil man die ja von > C oder java für die Markierung von Blöcken bereits kennt. > > Wenn es mehrere Variable gibt, dann würde das Dokument in XML z.B. so > aussehen. > > <HelloWorld> > <Variable>Wert</Variable> > <Variable>Wert1</Variable> > <Variable>Wert3</Variable> > </HelloWorld> > > > Im Gegensatz dazu in der geklammerten Schreibweise: > > HelloWorld { > Variable {Wert1} > Variable {Wert2} > Variable {Wert3} > } > > Damit hat man z.B. die Redundanz beim Schließen des Tags rausgenommen > und das wiederum würde die die Durchläufe beim Parsen verkürzen. Der Parser würde dann aber nicht erkennen, wenn das Dokument nicht wohlgeformt ist. So etwa: <tag1> bla <tag2> bla </tag1> bla </tag2> Das würde Dein Parser nicht erkennen und es folglich falsch interpretieren. Wenn Du XML von Hand eingibst können solche Fehler schon mal passieren. Und wer möchte so einen Verdreher z.B. in einer Lohnabrechnungstabelle haben ;-(( > Für den Platzverbrauch auf der Festplatte oder wenn sich ein ganzes > Objekt im Speicher befindet, wäre das auch recht positiv. Beim Speicherplatz auf der Platte möchte ich sehen, wie sich das auswirkt ;-) Die Knotennamen sind sowieso meistens kürzer als die Daten, die sie umschließen. Ausserdem steht es Dir frei, das Resultat mit Gzip zu komprimieren. Im Speicher musst Du sowieso eine andere Repräsentationsform finden. Niemand würde ein XML-Dokument als Zeichenketten im Speicher lassen und on-the-fly parsen. Ich würde das eher als geordneten Baum implementieren. > Ich mein ja nur. Realistisch ist XML sowieso nicht viel mehr, als ein Framework, mit dem Du arbeiten kannst, oder es lassen. Allerdings finde ich es gut, wenn alle dieselben Standards verwenden. Wenn Du Interesse hast, dann schau doch einfach mal beim C++ Workshop vorbei. Ich schreibe nämlich im Moment an einem kompletten XML-Interpreter. Den werde ich dann auch irgendwann zumindest teilweise vorstellen. -- + Max Trense + [EMAIL PROTECTED] ---------------------------------------------------------------------------- PUG - Penguin User Group Wiesbaden - http://www.pug.org