Hallo alle zusammen!
Ich habe folgendes Problem: Ich möchte in Delphi eine komplexe
XML-Datei, welche durch ein über mehrere Dateien (Namespaces) verteiletes Schema beschrieben ist, in einer eigenen Applikation darstellen, vom Benutzer bearbeiten lassen und zum Schluss auch wieder Schema-konform (valide) abspeichern.
Das ganze Verfahren will ich an dieser Stelle aber so offen gestalten, das ich jederzeit mit möglichst geringen Aufwand auch andere Dateien editieren und kann. Zu diesem Zweck habe ich zuerst versucht, den Weg über die Tranformierung in ein Datenpaket zu gehen. Dabei habe ich leider festgestellt, das der
XML-Mapper mit dem Schema bzw auch mit den Ursprungsdateien nicht klar kommt (meiner Vermutung nach liegt das an den Namespaces). Im zweiten Ansatz bin ich dann über den
XML-Datenbindungsexperten gegangen. Dieser hatte zwar auch Probleme mit den Ausgangsdaten, hier konnte ich dann aber nach etwas Fleissarbeit zum Ergebnis kommen. D.h. Ich ahbe jetzt eine Möglichkeit auf meine Daten im
XML-Dokument zurückzugreifen und die Daten zu ändern.
Soweit so gut. Jetzt euch sicher was soll das, wenn er eine funktionierende Lösung hat was will der noch von uns!
Gut jetzt kommt das aber!
A B E R:
In der
XML-Datei existieren diverse Knoten mit einer Mindestanzahl des Vorkommens von 0 bzw mit einer Maximalanzahl von größer 1. Diese Knoten befinden sich dabei zum größten Teil in Sequencen. Wenn ich nun Delphi nach der Eingabe des Benutzers automatisch (via per Datenbindungsexperte hergestellten Quellcode) einen neuen Knoten anlegen lasse, dann ist dieser immer der genau letzte in der Liste der Kindknoten. Dieses Verhalten führt dann dazu, das ich die
XML-Datei zwar abspeichern und mit meinen Programm bearbeiten kann, aber sobald ich versuche diese XML_Datei gegen das Schema zu validieren, bekomme ich einen Fehler, der eindeutig auf die falsche Knotenreihenfolge in der Sequence zurückzuführen ist.
Wie kann ich Delphi und speziell den Code des Datenbindungs-"Experten" dazu bringen, das er mir ein neues Elemt in der richtigen Stelle des Baumes einfügt?????????
MfG
-jryan