![](https://secure.gravatar.com/avatar/28fca1ba1e6d4ec63b504656911e349a.jpg?s=120&d=mm&r=g)
Hallo Walter, Am Sun, 25 Jul 2004 19:51:37 +0200 Schrieb Walter Dörwald <walter@livinglogic.de>:
Fritz Cizmarov wrote:
Hallo,
ich möchte euch mein Modul XML_Objects vorstellen.
http://www.boa3d.de/python/modules/XML_Objects.php
Es dient dazu, Dateien einer Applikation als Objekte in XML-Dateien zu speichern und wieder aus den Daten Objekte zu generieren. Eine Beschreibung des Moduls findet ihr auf der Seite.
Ich würde mich über Anregungen und Kritik freuen. Betatester werden auch noch gesucht.
Einiges von dem erinnert mich an mein eigenes XIST (http://www.livinglogic.de/Python/xist/), insbesondere die Konstruktor-Argumente (*args ist der Element-Content und **kw sind die Attribute), daß der Elementtyp gleich dem Klassennamen ist, aber überschrieben werden kann, daß die Attribute auf Klassenebene als Dictionary definiert werden (das war vor XIST 2.0 so) und daß man eine eigene XML-Konversionsmethode angeben kann.
Sowas wird bei einer ähnlichen Zielsetzung auch nicht ausbleiben. Ich hab mir inzwischen die Seite zu Deinem XIST angeschaut. Echt nicht schlecht, allerdings zielt Dein Modul ja eher auf Webprojekte während meines eher Anwendungsorientiert ist. Hintergrund bei meinem Modul ist die Verwendung in einer 3D-Applikation um 3D-Szenen zu speichern und wieder zu laden. Praktisch soll die Applikation, wenn's mal soweit ist total modular aufgebaut sein. Also die Objekte die damit bearbeitet werden, sollen aus Modulen kommen und der Anwender soll diese Module auch während der Laufzeit installieren können. Außerdem soll das Erstellen dieser Module auch so einfach wie möglich sein. Um dann die Objekte in einer Szene zu speichern genügt es, in 90% der Fälle, die Klassen welche die Objekte beschreiben von XMLObject abzuleiten, ohne weitere Registrierungsgeschichten oder sonst was.
Fragen, die mir dazu kommen: Kann man ein anderes Encoding als UTF-8 zur Ausgabe verwenden?
Gute Frage, da bin ich noch am testen. Vorgesehen ist es, dazu hab ich die globale Variable "encoding" definiert.
xml_char_data() kommt mir etwas seltsam vor: Da wird *zuerst* der Unicode-String encoded (in's Filesystem-Encoding), und *dann* wird da drin ein replace gemacht. Warum läßt Du das ganze nicht als Unicode?
Auch eine gute Frage, das schau ich mir noch genauer an. Ist eben noch Beta das Ganze.
Daß from_xml() versucht herauszufinden, ob das Argument ein XML-String oder ein Dateiname ist, finde ich etwas unglücklich. einen UTF-16 encodeten XML-String kannst Du damit z.B. nicht parsen, obwohl's der Expat AFAICR eigentlich kann.
Stimmt, wird überarbeitet.
Bis demnächst, Walter Dörwald
Danke für Dein Feedback. Gruß Fritz Cizmarov _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de