DataSet und Xml

ullision

Mitglied
Hallo Forum...

Ist es irgendwie möglich die von einem DataSet exportierte Xml Datei zu formatieren?

Ich habe mit VS.Net mir ein Xml-Schema gebaut und daraus dann mein DataSet generiert. Nachdem ich das DataSet dann gefüllt habe möchte ich das nun als Xml-Datei exportieren....undzwar soll die Xml-Datei genauso strukturiert sein wie ich das eigentlich im Schema vorgesehen hab. :rolleyes:

Wenn ich die Methode WriteXml des DataSets aufrufe schreibt er mir zwar meine Xml-Datei, allerdings ohne Strukturierung (alles untereinander weg). Hoffe mal es war verständlich und jemand weiss wie mir zu helfen ist ;)

mfg
 
Hallo,

du kannst, wenn du WriteXml aufrufst, einen XmlWriteMode angeben.
Mit XmlWriteMode.WriteSchema wird die Struktur aus deinem DataSet mit in die XML-Datei geschrieben, XmlWriteMode.IgnoreSchema schreibt die Daten hintereinander weg, ohne Strukturierung.

strukturierte XML-Datei:
dataSet1.WriteXml(@"c:\meinPfad\Datei.xml",XmlWriteMode.WriteSchema);

unstrukturierte XML-Datei:
dataSet1.WriteXml(@"c:\meinPfad\Datei.xml",XmlWriteMode.IgnoreSchema);

Beim Laden der Datei in ein DataSet wird die vorhandene Strukturierung automatisch übernommen.

Gruß
Arcaton
 
hmmm...also irgendwie nicht :p

Wenn ich WriteSchema als Mode angebe werden mir in der Xml Datei erst das Schema und dann die unstruktiererten Daten wie mit IgnoreSchema geschrieben.

Ich möchte aber eher, dass ich Unterknoten in der Xml Ausgabe eingerückt habe, dass man sie als Unterelemente erkennen kann...(wie halt in meinem Schema Designer vorgesehen)
 
Hallo,

habe das jetzt nochmal ausprobiert, und bei mir wird mit WriteSchema alles strukturiert geschrieben. Erst das Schema und dann die Datensätze, alles eingerückt und formatiert. Mit was schaust du dir denn die .xml-Dateien an? Opera zeigt bei mir z.B. nur alle Daten an (unabhängig vom Mode), aber keine Formatierung, während ich mit dem InternetExplorer sogar einzelne Datensätze ausblenden kann. Wenn ich die Datei mit einem ganz normalen Editor öffne ist die Formatierung vorhanden.

Hoffe wir reden grad nich aneinander vorbei. :)

Gruß
Arcaton
 
Ich glaub nicht dass wir aneinander vorbeireden :)

Ist egal mit was ich mir die Datei anschaue...ob IE, XmlSpy, Editor....kommt alles leider aufs selbe raus =(

Meine Vermutung ist ja, dass ich das Schema falsch aufgebaut habe aber für mich siehts ziemlich plausibel aus ;-). Muss ich denn im Schema Designer die Relationen zwischen den einzelnen Elementen noch zusätzlich definieren oder reicht es ( wie ich es jetzt gemacht habe ) einfach die Elemente "untereinanderzuschieben" ?
(-> siehe auch Anhang)
 

Anhänge

  • schema.jpg
    schema.jpg
    70,4 KB · Aufrufe: 72
Hallo,

ein korrektes XML-Dokument muss immer ein einzelnes root-Element haben, praktisch als Behälter für alle anderen Daten. Du müsstest also noch ein "element" in dein Schema aufnehmen. Dieses root-Element hat ein "element" von Typ ScanResult (deinem ComplexType), dann sollte es eigentlich funktionieren. Mit Visual Studio kannst du dein Schema auch testen, indem du auf Projekt -> NeuesElementHinzufügen -> XML-Datei klickst und dann bei Eigenschaften -> targetSchema "http://tempuri.org/MeinSchema.xsd" eingibst. Dann auf das Tab "Daten" wechseln (unten links) und Daten eingeben.
Man könnte das Schema allerdings noch etwas verkleinern ...., aber das wirst du dann selber mitkriegen.

Gruß
Arcaton
 
hi Arcaton...

Das ist auch so der Fall mit dem Root-Element....passte nur nicht mehr aufs Bild :p. Wenn ich eine Xml Datei hinzufüge und ihr das Schema zuweise wird die Datei auch so formatiert wie ich mir das gedacht hab, nur bleibt die Ausgabe mit DataSet.WriteXml genauso wie am Anfang beschrieben :(
 
Zurück