XML-Dateien habe ich im Prinzip schon verstanden,
was mich halt stört ist, dass Node-Namen nur einen Teilbereich des Zeichensatzes verwenden können und ich daher einen Node-Namen ohne "brauchbaren" Inhalt und ein Attribut
Dann hast du
XML doch nicht genug verstanden.
Genau wie im Delphi (Variablen, Typen usw.) gibt es eben Regeln, wie ein "Bezeichner" lauten muß, bzw. was alles erlaubt/verboten ist
und da beschwert sich doch auch keiner, daß man nicht alles nehmen kann.
Diese Regeln sind dafür da, damit man den Code einfach und vorallem sicher parsen kann und damit er auch halbwegs lesbar bleibt.
> Buchstaben, Zahlen und viele weitere Zeichen sind erlaubt, aber vorallem Steuerzeichen und die Interpunktion sind eben verboten.
Das & ist in
XML nunmal ein Steuerzeichen.
PS: In diesen Bezeichnern sind, je nach Encoding (z.B. bei UTF-8), locker weit über 30.000 Zeichen erlaubt (irgendwas zwischen 30000 und 50000) und nur weil du zufällig einen der wenigen "verbotenen" Zeichen erwischt hast, kann man nicht gleich sagen, daß man dort nichts "Brauchbares" benutzen kann.
Es sind nunmal Bezeichner und nicht irgendein beliebiger Text.
Und was den "vielen Platz" betrifft, das sind auch nur mindestens 2 (Nodename+Leerzeichen) bis vielleicht 20 Zeichen, die da in jedem Node mehr benötigt werden, was der Übersichtlichkeit eigentlich keinen großen Abbruch dieht.
Du kannst auch gern andere Formate verwenden, wie z.B. JSON, welche etwas kompakter sind, aber auch da ist in Bezeichnern nicht alles erlaubt und ob das insgesamt besser lesbar ist?
PS: Willst du wirklich die
XML ständig manuell bearbeiten, oder warum stören dich die paar zusätzlichen Bytes?
TReader und TWriter sind noch kleiner, vorallem in der binären Darstellung. -> siehe die DFMs vom Delphi