XML Konverter



  • Hallo,

    ich arbeite gerade an einer Software, die XML-Dateien einliest. Diese werden validiert und es findet eine rudimentäre Konvertierung zwischen den Versionen statt.

    Die XML-Dateien enthalten Datenentitäten, prinzipiell handelt es sich um Daten, wie sie auch in Datenbanken vorgehalten werden. Bekanntlich muss man bei SQL immer ein Tabellen-Update durchführen, sobald sich die Struktur der Tabelle bzw. der Datenbank ändert. Zum Beispiel wenn ein Attribut wegfällt oder sein Typ sich ändert, etc.

    Bei den XML-Dateien soll es einen Konverter geben, der mithilfe von Transformationsregeln alte Dateien in neue Dateien konvertiert (z.B. Version 1.1 -> 1.2 -> 1.3).

    Ich würde das gerne in C# lösen, frage mich aber aktuell, wie dort der beste Ansatz dafür aussieht? Kennt jemand Beispielcode oder eine Seite, wo das Prinzip derartiger Konvertierungen geschildert wird?



  • Ganz spontan fällt mir da die Klasse XslCompiledTransform ein. Hilft dir das?



  • Hi,

    wenn du mit xsd Dateien arbeitest, dann könntest du dir mit dem Hilfsprogramm xsd.exe C# Klassen aus den verschiedenen Versionen erzeugen lassen. Mithilfe der Klasse XmlSerializer liest du dann deine Xml Datei von Version 1 ein und hast dann Objekte deiner Klasse von Version 1. Nun erzeugst du dir neue Objekte von Version 2, die du mit den Daten aus Version 1 fütterst. Im letzten Schritt schreibst du dann mit einem XmlSerializer von Version 2 eine neue Xml Datei.

    mfG
    KaPtainCugel


Log in to reply