DataSet.WriteXML writes strange node names, why?

S

Sin Jeong-hun

This code,
DS1 = new DataSet("DataSet 1");
DataTable dt1 = new DataTable("Table 1");
DataColumn dc1 = new DataColumn("Column 1",
typeof(String));
DataColumn dc2 = new DataColumn("Column 2",
typeof(String));
dt1.Columns.AddRange(new DataColumn[] { dc1, dc2 });
dt1.Rows.Add(new string[] { "A", "B" });
dt1.Rows.Add(new string[] { "C", "D" });
DS1.Tables.Add(dt1);
DS1.WriteXml("test.xml");
creates an xml like,
<?xml version="1.0" standalone="yes"?>
<DataSet_x0020_1>
<Table_x0020_1>
<Column_x0020_1>A</Column_x0020_1>
<Column_x0020_2>B</Column_x0020_2>
</Table_x0020_1>
<Table_x0020_1>
<Column_x0020_1>C</Column_x0020_1>
<Column_x0020_2>D</Column_x0020_2>
</Table_x0020_1>
</DataSet_x0020_1>
Why is this? Of course I expected "Column 1", instead of
"Column_x0020_1". I could not figure out the reason, please give me a
hint. Thanks.
 
S

Stephany Young

You have space characters imbedded in the names you have provided for your
Dataset, DataTable and DataColumns.

XML does not allow a space character in an element name and therefore, the
code behind the WriteXml method has written a hex representation of your
space characters so that the element names are legal.
 
S

Sin Jeong-hun

You have space characters imbedded in the names you have provided for your
Dataset, DataTable and DataColumns.

XML does not allow a space character in an element name and therefore, the
code behind the WriteXml method has written a hex representation of your
space characters so that the element names are legal.




This code,
           DS1 = new DataSet("DataSet 1");
           DataTable dt1 = new DataTable("Table 1");
           DataColumn dc1 = new DataColumn("Column 1",
typeof(String));
           DataColumn dc2 = new DataColumn("Column 2",
typeof(String));
           dt1.Columns.AddRange(new DataColumn[] { dc1, dc2 });
           dt1.Rows.Add(new string[] { "A", "B" });
           dt1.Rows.Add(new string[] { "C", "D" });
           DS1.Tables.Add(dt1);
           DS1.WriteXml("test.xml");
creates an xml like,
<?xml version="1.0" standalone="yes"?>
<DataSet_x0020_1>
  <Table_x0020_1>
<Column_x0020_1>A</Column_x0020_1>
<Column_x0020_2>B</Column_x0020_2>
  </Table_x0020_1>
  <Table_x0020_1>
<Column_x0020_1>C</Column_x0020_1>
<Column_x0020_2>D</Column_x0020_2>
  </Table_x0020_1>
</DataSet_x0020_1>
Why is this? Of course I expected "Column 1", instead of
"Column_x0020_1". I could not figure out the reason, please give me a
hint. Thanks.

Ah, thanks. I forgot XML node name cannot contain spaces.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top