WriteXmlSchema(xsdFileName)和GetXmlSchema()输出的内容的差异

利用DataSet.ReadXml载入一个xml文件,再使用GetXmlSchema()方法输出内容如下:

 1<?xml version="1.0" encoding="utf-16"?>
 2<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
 3  <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:Locale="en-US">
 4    <xs:complexType>
 5      <xs:choice minOccurs="0" maxOccurs="unbounded">
 6        <xs:element name="Table1">
 7          <xs:complexType>
 8            <xs:sequence>
 9              <xs:element name="DISPLAY" type="xs:string" minOccurs="0" />
10              <xs:element name="VALUE" type="xs:string" minOccurs="0" />
11              <xs:element name="ISPLUGIN" type="xs:string" minOccurs="0" />
12              <xs:element name="connstr" type="xs:string" minOccurs="0" />
13            </xs:sequence>
14          </xs:complexType>
15        </xs:element>
16      </xs:choice>
17    </xs:complexType>
18  </xs:element>
19</xs:schema>
而使用DataSet.WriteXmlSchema(xsdFileName)输出的内容如下
 1<?xml version="1.0" standalone="yes"?>
 2<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
 3  <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:Locale="en-US">
 4    <xs:complexType>
 5      <xs:choice minOccurs="0" maxOccurs="unbounded">
 6        <xs:element name="Table1">
 7          <xs:complexType>
 8            <xs:sequence>
 9              <xs:element name="DISPLAY" type="xs:string" minOccurs="0" />
10              <xs:element name="VALUE" type="xs:string" minOccurs="0" />
11              <xs:element name="ISPLUGIN" type="xs:string" minOccurs="0" />
12              <xs:element name="connstr" type="xs:string" minOccurs="0" />
13            </xs:sequence>
14          </xs:complexType>
15        </xs:element>
16      </xs:choice>
17    </xs:complexType>
18  </xs:element>
19</xs:schema>

两段代码仅在第一行有差别

但是第一个文件,在vs ide中无法打开,报如下错误

同时若在程序中使用这个文件也会出错
DataSet ds=new DataSet();
ds.ReadXmlSchema(xsdFileName);

在这记一下,以免以后忘了

另外有个问题考考大家,稍后给出我的答案
已经一个xml文件的格式如下:
<D>
<T>
<C1>1</C1>
<C2>2</C2>
...
<Cn>n</Cn>
</T>
<T>
<C1>1</C1>
<C2>2</C2>
...
<Cn>n</Cn>
</T>
</D>
用什么方法将其转换为如下格式
<D>
<T C1="1" C2="2"... Cn="n"></T>
<T C1="1" C2="2"... Cn="n"></T>
</D>
这是一问,二问已知第二种格式,又如何转成第一种格式,二问其实差不多,呵呵,
原文地址:https://www.cnblogs.com/lexus/p/806092.html