Dein Problem mit einer eigenen Implementierung sind hier halt die Interfaces - sobald Du eigene Funktionalität bereitstellen möchtest, musst Du bei der Verwendung dieser immer hin und her Casten. (Da das generierte Interface vom Databinding ja nur die aus dem Schema definierten Informationen enthält).
Danke für den Tip, den SvSerializer werde ich mir mal anschauen.
Ich hatte halt gehofft, dass sich die vom Databinding generierten Schnittstellen mit vertretbarem Aufwand so modifizieren lassen, dass ich doch damit arbeiten kann. Das Schema, mit dem ich arbeiten muss, ist sehr umfangreich und deshalb ist der Aufbau einer eigenen Klassenhierarchie sehr aufwendig.
Deine Objektstruktur muss und sollte wahrscheinlich auch nicht der Schemastruktur gleichen - die Objektstruktur sollte so aussehen, dass Sie für Deinen Anwendungszweck (im Code) am besten passt und man komfortabel damit arbeiten kann. Das Serialisieren in ein entsprechendes Format ist wiederum etwas völlige anderes und kann von der Objektstruktur wie Du Sie als Entwickler beim Coden verwendest ja durchaus abweichen.
Du hast also viele verschiedene Möglichkeiten:
- eine Übersetzung/Kapselung von Deinen Objekten in die
XML-Databinding Objekte bereitstellen. Somit trennst Du "Deine" Objektstruktur von der des
XML-Databindings und kannst auf der einen Seite komfortabel mit "Deinen" Objekten arbeiten und auf der anderen Seite immer Schemakonform speichern
- eine Übersetzung von Deinen Objekten in das
XML-Format manuell vornehmen
- eine Übersetzung von Deinen Objekten in das
XML-Format von einer anderen Bibliothek übernehmen lassen, bei der das z.B. über Attribute und
RTTI läuft (z.B. den SvSerializer)