Zitat:
Dann hast Du was falsche gemacht. Wie liest Du die
XML-Datei denn ein? Poste mal bitte einen Snippet. Out of the Box (also mit den generierten Implementierungen) sollte erstmal alles reibungslos laufen - vorausgesetzt Du liest es über die bereitgestellten Methoden des Databindings ein ;D
Ich glaube, es gab da ein Mißverständnis. Mein Problem ist gerade, dass aufgrund der Verwendung von Substitution Groups im Schema der von der Datenbindung erzeugte Code nicht funktioniert, also sich damit Schema-konforme Dateien weder sinnvoll einlesen noch neu erzeugen und dann schreiben lassen.
Ich habe die
XML-Datenbindung auch früher schon mit anderen (einfacheren) Schemata benutzt und hatte da nie Probleme, aber da wurden eben keine Substitution Groups verwendet.
Wenn ich bei dem Beispiel, das ich gepostet habe, mit
Delphi-Quellcode:
procedure Einlesen;
var iBasis: IXMLBasis;
begin
iBasis := LoadBasis('Beispieldatei.xml');
end;
die
XML-Datei einlese, dann sollte ja iBasis Listenelemente vom Typ IXMLListenElement enthalten (bzw. eben von den von IXMLListenElement abgeleiteten Typen IXMLElement1, ...). Diese Liste ist aber leer, iBasis.Count ist Null. Die Datenbindung schafft es leider nicht, ein IXMLElement1 einzulesen und in die Liste einzuhängen.
Umgekehrt funktioniert es eben auch nicht (bzw. ich habe es nicht hinbekommen), ein neues Element vom Typ IXMLElement1 zu erzeugen und unter iBasis einzufügen.
Ich habe auch versucht, XMLDocument so zu modifizieren, dass eine Funktion Add: IXMLElement1, die ich in IXMLBasis eingefügt habe, auch ein IXMLElement1 erzeugt, aber dabei bin ich immer an einer Fehlermeldung "...Interface wird nicht unterstützt" gescheitert.