DataSet und XmlWrite - nicht nachvollziehbares Verhalten

19/08/2008 - 15:54 von Michael Lange | Report spam
Hallo.

Ich möchte aus einem DataSet eine XML-Datei erstellen, erhalte aber je
nach Vorgehensweise unterschiedliche Ergebnisse.

Die ganze Struktur ist natürlich schon recht groß, auch mit Relations
u.a.m., deshalb habe ich mal folgendes Mini-Beispiel gebaut.

Beispieldatei:
<?xml version="1.0" encoding="iso-8859-1"?>
<Test>
<Name>Anton</Name>
<Age>01.02.1963</Age>
</Test>

Fall 1

Mit dataset.XmlRead(filename) gelesen, ergibt eine Tabelle "Test" mit
den Spalten "Name" und "Age" und der Zeile "Anton", "01.02.1963".
Dieses mit dataset.XmlWrite(filename2) geschrieben bringt eine
identische Datei.

Fall 2

Tabelle mit folgendem Code erzeugt und gefüllt:

DataTable dt = new DataTable("Test");
DataColumn col;
col = new DataColumn("Name");
col.DataType = System.Type.GetType("System.String");
dt.Columns.Add(col);
col = new DataColumn("Age");
col.DataType = System.Type.GetType("System.String");
dt.Columns.Add(col);
dataSetXML.Tables.Add(dt);
DataRow row;
row = dt.NewRow();
row["Name"] = "Anton";
row["Age"] = "01.02.1963";
dt.Rows.Add(row);

Mit dataset.XmlWrite(filename2) erhalte ich folgenden Dateiinhalt:
<?xml version="1.0" encoding="iso-8859-1"?>
<NewDataSet>
<Test>
<Name>Anton</Name>
<Age>01.02.1963</Age>
</Test>
</NewDataSet>

Jetzt taucht zusàtzlich das DataSet auf. Ich kann das aber nicht
gebrauchen und muss es unterdrücken. Aber wie? Habe im DataSet alles
versucht, was mir verdàchtig aussah, auch schon mit XmlWriter und
XmlSerializer herumprobiert, leider ohne Erfolg, wie man an dieser
Nachricht sieht.

Ich habe natürlich auch an den verdàchtigen Stellen im Netz gesucht,
aber mit den Schlagworten XML und DataSet leider nicht weiter gekommen,
zu viele unpassende Treffer.

Schon mal Danke fürs Interesse und die Unterstützung.
Michael
 

Lesen sie die antworten

#1 Martin Honnen
19/08/2008 - 16:26 | Warnen spam
Michael Lange wrote:

Tabelle mit folgendem Code erzeugt und gefüllt:

DataTable dt = new DataTable("Test");
DataColumn col;
col = new DataColumn("Name");
col.DataType = System.Type.GetType("System.String");
dt.Columns.Add(col);
col = new DataColumn("Age");
col.DataType = System.Type.GetType("System.String");
dt.Columns.Add(col);
dataSetXML.Tables.Add(dt);
DataRow row;
row = dt.NewRow();
row["Name"] = "Anton";
row["Age"] = "01.02.1963";
dt.Rows.Add(row);

Mit dataset.XmlWrite(filename2) erhalte ich folgenden Dateiinhalt:



XmlWrite? Wohl eher WriteXml.

<?xml version="1.0" encoding="iso-8859-1"?>
<NewDataSet>
<Test>
<Name>Anton</Name>
<Age>01.02.1963</Age>
</Test>
</NewDataSet>

Jetzt taucht zusàtzlich das DataSet auf. Ich kann das aber nicht
gebrauchen und muss es unterdrücken.



Ein XML-Dokument braucht ein einzelnes Wurzelelement, das ist im obigen
Fall das 'NewDataSet'-Element. Das ist bei der Darstellung eines DataSet
im allgemeinen auch notwendig, da dieses ja mehrere Tabellen bzw.
Tabellen mit mehreren Spalten enthalten kann. Oder wie soll das von dir
gewünschte Resultat aussehen, wenn die Tabelle 'Test' mehrere Zeilen hat
und/oder es noch andere Tabellen in DataSet gibt?




Martin Honnen MVP XML
http://JavaScript.FAQTs.com/

Ähnliche fragen