Announcement

Collapse
No announcement yet.

Reihenfolge in <xsd:sequence> bei Xml-Serialisierung nach DataSet

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Reihenfolge in <xsd:sequence> bei Xml-Serialisierung nach DataSet

    Hallo,

    ich bin ganz neu registriert in diesem Forum und hab schon das erste Problem..

    Zur Situation:
    Meine Aufgabe ist es Xml-Dokumente nach einem fest vorgegebenen Schema zu erstellen, laden, speichern, ändern usw.. Dafür habe ich mit dem xsd-Tool des VS2005 ein DataSet generiert. Der riesige Vorteil davon ist, dass es bereits vorgefertigte ReadXml/WriteXml-Methoden gibt, die auf den ersten Blick auch prima funktionieren. In Anbetracht dessen ist die relationale Datenhaltung zwar umständlich aber akzeptabel. Klingt erstmal einfach, ist es aber leider nicht...

    Das Problem:
    Nun habe ich eine quasi Template-Xml-Datei erstellt, welche dazu dient meine Datenstruktur mit Default-Werten zu initialisieren. Als ersten Test habe ich eine einfache ganzzahlige Variable verändert und das Objekt per WriteXml in eine Test-Ausgabedatei herunter geschrieben. Diese ist laut Schema innerhalb einer <sequence> (in einem <complexType>). Das Problem ist jetzt, dass im geschriebenen XML genau diese Variable nicht mehr an der richtigen Stelle der Sequenz steht (sondern als erste statt als letzte). D.h. meine Xml-Datei entspricht nicht mehr dem Schema, was wiederum unbedingt notwendig ist.

    Das verwendete Tool zur Generierung des DataSet kennt den Schalter "/order". Dieser scheint für genau dieses Problem zuständig zu sein. Ich hab das mal versucht, an der Ausgabe änderte sich jedoch nichts. Für normale Klassen (statt DataSets) funktioniert es, diese haben aber leider (soweit ich weiß) keine eingebauten Lese-/Scheiboperationen, sondern können dafür die .Net-Klasse "XmlSerializer" nutzen. Diese wiederum hat Probleme mit dem Member "sbyte[][] Container" der generierten Klasse. (unverständliche Fehlermeldung bei Deserialisierung).

    Wenn jemand eine Lösung für dieses Dilemma kennt wäre ich ihm sehr dankbar es in groben zügen hier zu posten. Ich habe schon viel herumprobiert und bin nun langsam am Ende mit meinem Latein
    Auch für ganz neue Wege wäre ich bereit, vermieden werden sollte nur, dass die Inhalte des XML mit hartem Code händisch gelesen/-schrieben werden müssen, denn diese ändern sich von Zeit zu Zeit.

    Vielen Dank im Voraus.
    mfg stähff
Working...
X