Datasets sind eigentlich genau für die Datenhaltung gedacht und werden ja auch wunderbar in Delphi unterstützt. Warum also nicht nutzen.
Wenn es wegen des Textformats wäre, könnte man noch
CSV oder ein ClientDataSet mit
SaveToFile('MyXMLFile.XML', dfXMLUTF8)
nutzen.
MemoryDatasets mit
Xml-Ein- und -Ausgabe gibt es auch noch andere, z.B. kbmMemTable oder Devart TVirtualTable.
Andreas