——此文章摘自《C#高级编程(第
版)》定价
元 特价
元 购买
如上所述DataSet支持在XML中定义其模式可以从XML文档中读取数据也可以把数据写入XML文档
DataSetWriteXml方法可以输出存储在DataSet中的各种数据可以选择只输出数据也可以输出数据和模式下面是为上述Region示例编写的代码
dsWriteXml(\\WithoutSchemaxml);
dsWriteXml(\\WithSchemaxml XmlWriteModeWriteSchema);
第一个文件WithoutSchemaxml如下所示
<?xml version= standalone=yes?>
<NewDataSet>
<Region>
<RegionID></RegionID>
<RegionDescription>Eastern </RegionDescription>
</Region>
<Region>
<RegionID></RegionID>
<RegionDescription>Western </RegionDescription>
</Region>
<Region>
<RegionID></RegionID>
<RegionDescription>Northern </RegionDescription>
</Region>
<Region>
<RegionID></RegionID>
<RegionDescription>Southern </RegionDescription>
</Region>
</NewDataSet>
RegionDescription上的闭合标记在页面的右边因为数据库列定义为NCHAR()这是一个包含个字符的字符串其中用空格填充
WithSchemaxml文件生成的结果包含DataSet的XML模式和数据
<?xml version= standalone=yes?>
<NewDataSet>
<xs:schema id=NewDataSet xmlns=
xmlns:xs=http://wwwworg//XMLSchema
xmlns:msdata=urn:schemasmicrosoftcom:xmlmsdata>
<xs:element FTEL=NewDataSet msdata:IsDataSet=true>
<xs:complexType>
<xs:choice maxOccurs=unbounded>
<xs:element FTEL=Region>
<xs:complexType>
<xs:sequence>
<xs:element FTEL=RegionID
msdata:AutoIncrement=true
msdata:AutoIncrementSeed=
type=xs:int />
<xs:element FTEL=RegionDescription
type=xs:string />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<Region>
<RegionID></RegionID>
<RegionDescription>Eastern </RegionDescription>
</Region>
<Region>
<RegionID></RegionID>
<RegionDescription>Western </RegionDescription>
</Region>
<Region>
<RegionID></RegionID>
<RegionDescription>Northern </RegionDescription>
</Region>
<Region>
<RegionID></RegionID>
<RegionDescription>Southern </RegionDescription>
</Region>
</NewDataSet>
注意使用msdata模式中的文件定义DataSet中列的附加属性例如AutoIncrement 和 AutoIncrementSeed这些属性直接对应于DataColumn上的可定义属性