Einzelnen Beitrag anzeigen

dpg123

Registriert seit: 13. Apr 2015
22 Beiträge
 
Turbo Delphi für Win32
 
#1

Vom IXmlNode zum IXmlDocument

  Alt 16. Nov 2017, 16:25
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;
  Mit Zitat antworten Zitat