1

我目前正在DataSet使用这个从 XML 流创建一个

DataSet dataSet = new DataSet();
dataSet.ReadXml(xml);

我试过这个,

<?xml version="1.0" standalone="yes"?>
<NewDataSet>
  <Table>
  </Table>
</NewDataSet>

它创建了一个名为“NewDataSet”的表,DataSet其中Tables[0]1 列名为“表”,1 行的“表”值为“”。然后我尝试了这个,

<?xml version="1.0" standalone="yes"?>
<NewDataSet>
</NewDataSet>

但这会创建一个没有表的 DataSet。如何创建一个数据集,其中包含 1 个名为“表”的表,其中包含 1 列,但现在为行?

4

1 回答 1

2

你不能。ReadXml 和 WriteXml 仅读取/写入数据,而不是整个数据集/数据表/列/等模式的结构。

我的建议是首先使用函数ReadXmlSchema从单独的模式文件中读取模式,然后读取数据文件。

您的架构可能如下所示:

<?xml version="1.0" standalone="yes"?>
<xs:schema id="MyDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <xs:element name="MyDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="MyDataTable">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="MyDataColumn" type="xs:string" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>
于 2013-04-23T16:38:29.743 回答