Liebes Forum,
ich muss pro Datensatz aus einer
csv-Quelle eine
xml-Datei erstellen und gegen ein xsd-Schema validieren.
Dazu hab ich erstmal mit dem
xml-Datenbindung-Wizard aus der xsd-Datei die entsprechenden Interfaces und Klassen erzeugen lassen. Die eigentliche Datenbefüllung sollte damit kein Problem mehr sein, aber was ist der sauberste / schönste / best practice Weg diesen befüllten Nachfahren des IXmlNodes per IXmlDocument in eine
xml-Datei zu schreiben? Oder ist diese Grundidee schon falsch?
Was ich bisher habe (weitere Fragen im Code):
Delphi-Quellcode:
procedure TForm1.btnParseClick(Sender: TObject);
var
lMyDaten: IXmlMyDaten;
// Vom Wizard erstellter Root Node
lXmlDoc: IXMLDocument;
begin
lMyDaten := NewMyDaten;
// Vom Wizard erstellte Funktion
lMyDaten.NName := '
Mustermann';
//Beispiel Daten
lMyDaten.VName := '
Max';
lXmlDoc := NewXMLDocument('
1.0');
// neues xml-Dokument initialisieren
lXmlDoc.StandAlone := '
yes';
lXmlDoc.Encoding := '
UTF-8';
// dies hier ist denke ich nicht im Sinne des Erfinders
// es kommt kein "gültiger" xml header raus
// wie ist ein Übertragen möglich ohne per Schleife alle Childs zu durchlaufen?
lXmlDoc.XML.Text := FormatXMLData(lMyDaten.XML);
// was muss ich der xml-Datei mitteilen, dass hier die Validierung ausgelöst wird?
lXmlDoc.Active := True;
lXmlDoc.SaveToFile('
MyDatenMuster.xml');
lXmlDoc :=
nil;
lMyDaten :=
nil;
end;