DataSet读写XML文件时有关XML文件架构信息的问题

  XML文件在文件头可以加上XML文件架构信息,用来描述文件的整体架构。用

  例如下面的XML文件,schema标签就是对XML文件架构的描述。

 

ContractedBlock.gif ExpandedBlockStart.gif Code
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
  
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    
<xs:element name="Diary">
      
<xs:complexType>
        
<xs:sequence>
          
<xs:element name="year" minOccurs="0" maxOccurs="unbounded">
            
<xs:complexType>
              
<xs:sequence>
                
<xs:element name="month" minOccurs="0" maxOccurs="unbounded">
                  
<xs:complexType>
                    
<xs:sequence>
                      
<xs:element name="day" minOccurs="0" maxOccurs="unbounded">
                        
<xs:complexType>
                          
<xs:sequence>
                            
<xs:element name="title" type="xs:string" minOccurs="0" msdata:Ordinal="0" />
                            
<xs:element name="weather" type="xs:string" minOccurs="0" msdata:Ordinal="1" />
                            
<xs:element name="mood" type="xs:string" minOccurs="0" msdata:Ordinal="2" />
                            
<xs:element name="Content" type="xs:string" minOccurs="0" msdata:Ordinal="3" />
                          
</xs:sequence>
                          
<xs:attribute name="id" type="xs:string" />
                          
<xs:attribute name="DeleteOr" type="xs:string" />
                        
</xs:complexType>
                      
</xs:element>
                    
</xs:sequence>
                    
<xs:attribute name="id" type="xs:string" />
                  
</xs:complexType>
                
</xs:element>
              
</xs:sequence>
              
<xs:attribute name="id" type="xs:string" />
            
</xs:complexType>
          
</xs:element>
        
</xs:sequence>
        
<xs:attribute name="Username" type="xs:string" />
        
<xs:attribute name="Sing" type="xs:string" />
      
</xs:complexType>
    
</xs:element>
    
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
      
<xs:complexType>
        
<xs:choice minOccurs="0" maxOccurs="unbounded">
          
<xs:element ref="Diary" />
        
</xs:choice>
      
</xs:complexType>
    
</xs:element>
  
</xs:schema>
  
<Diary Username="j0EucMVmzeV1FXG78poGeg==" Sing="4YNxN5PqoQbdRPRjIvcqPO3jkDiPkaJ4w2NDS90AL5I=">
    
<year id="2009">
      
<month id="04">
        
<day id="07" DeleteOr="false">
          
<title>rQ3Zqtlt617jVD93CamKyA==</title>
          
<weather>BhGrMz5GzQAosLbNb8Yq1he7aYPCr4Cg+L0uiWkTQBk=</weather>
          
<mood>J7CTnWfS84GnkbyDoAYaGeXjd4PSFmSfugE7I+nwNo0=</mood>
          
<Content>cL2GzyBpawsl35+N551tBR94oAutEa9T6olrxl1ls1v/NdAOs0U7iX5yIu2V4UbAckTtg/Y3QGaXzW5WcmbAqLshPJIHnLgqG/Jm8BeBzIuVeDQYHBLeAvJJkMOm5zSEnFSgjNmiDGRZrw6DOw7E5Ur1qs5C0ovsf7lNRjMrMoJw9QCKxmaWG7R2VDKLJrvkwIsMmA9TQFVEKqvIdBJhRNc88JlqrKxhYl1fMzO2FoeL7N3WJRGB+BML/oWLu7bDj3iP3zz/yEgkrFwAJ9q34dlRF9Gw15Furikj63YJUisvoShNMp1hlnCDudeivjeEK7Ly9I8tfuMxom+BDr+UVHuvUKIV43yITLR6FErIf4SLrvfCM90qwoXab1+L2j5E</Content>
        
</day>
        
<day id="09" DeleteOr="false">
          
<title>xeaGaYYodEJC3opC5SIDog==</title>
          
<weather>BhGrMz5GzQAosLbNb8Yq1he7aYPCr4Cg+L0uiWkTQBk=</weather>
          
<mood>J7CTnWfS84GnkbyDoAYaGeXjd4PSFmSfugE7I+nwNo0=</mood>
          
<Content>cL2GzyBpawsl35+N551tBR94oAutEa9T6olrxl1ls1v/NdAOs0U7iX5yIu2V4UbAckTtg/Y3QGaXzW5WcmbAqAJh7rwjh4iG5s2brml5gaCupPl1bZm2F2lZrUeOSylIuIuZSBVWIG8A5fiQLqQ2HTxbFipVclXKj/7ynkHtqDBexBzmIu6BVFo7O/bhZ0NIHPKqUUkFITFxr6bIR3Flrj/wHDrq0Hq/CcTdRplzu4hQZ4sqkqjXgKCBiflDjCUSu5842tHBXuiqmtIskrk84V8Qb6+s11hJEBN8+4WK+u07M8sa3s1jFwmpkoIqrFrtKFgcL6UDKt3faZqgfGCQpV26g/MubzbnFxK6N8CnI8yg61Be4KUFLMV5y+EdcT8jelMdpLl9QTfRhMS0olXQtSogsdawKW1A+tiAzcCRI/L4QR+lDkKLibJMDM2+zyhSRSxnKEDBLfAPOg9D1ELM4KERN3sna/aK+mmkNdsPwbEivMPsMYLT3t6mLGYX7zXwhKGzaEWaEO3eNavPjTSRRyBq4yWNqHKKmTEZCSBCkT/3VYj2d8vpaB8zW5cXRVaVYw5/DTudNexBixjMF5+7HfdA8g/4sRzpm6Iji7vdtMIN+Pf1bO2ZFeEKFDBQVjQurQCpzSUqlDQWQuEirQr0Tx1WUrt2KVheHn6+1nQcuKE0lALtlIVH4lcj1sD2LIhslTwYaguR/B+Kex0OYWRtVgZ3AysI4LMnhU9emKc8EH8T+TRS2lTlXFm3WdWEU29R3kvV5eUPuiDit6a+G/D+QjDjG70mW0twYiZCn4vSSMiBM98O8O4oJ96h+fSVFOwtQPhW3+/rjdqLArJAfZrLmbOfW36xvPvgOy6JJN+D9ozhmA4c8h1LscoEfBKYXfF8/TfulwiBL31KPFtFhetAhPDBgDv03HY3G3v8Ho78Ur302hUL+Rm7L5UccivH0I4/flWv7gyczgWnQ24v0jBlXwKFAAIelhS7nLbjgOyhuE1xWJ7X+K020nWmLre2vQOg+Rb/GmgBY5zd6SOuFaBJBdTv4JoqsKEd52jFkucvejoY7XpL7N2/De3tnggx8oQDwXtNF24Xk5PuPYTcRHZslmOOP9Kv3L9N2mSypRW+IwA=</Content>
        
</day>
      
</month>
    
</year>
  
</Diary>
</NewDataSet>

 

  DataSet用ReadXml方法读取XML文件时,默认用XmlReadMode.Auto模式读取,此模式下读取XML信息时,先调用ReadXmlSchema方法读取XML架构信息,然后读取XML内容信息。如果XML文件头没有schema标签,ReadXmlSchema方法就要遍历整个XML文件来抓取XML文件的架构,这样XML文件不大还感觉不出什么,假设XML文件很大,就会执行的很慢。所以建议为XML文件建立架构信息。为了加快DataSet在执行ReadXml方法时读取速度,可以选择使用XmlReadMode.IgnoreSchema模式,但是这种读取模式会忽略XML文件中的任何内联架构,如果任何XML数据与现有的架构不匹配,就会将这些数据丢弃(包括为DataSet定义的不同命名空间中的数据)。

  而不管XML文件有没有架构信息,当将XML信息读进DataSet后,DataSet就会建立起XML的架构信息。在DataSet调用WriteXml方法将DataSet内信息写入XML文件时,你也可以选择是否将架构信息写入XML文件(默认是不写入),如果想将XML架构信息写入,只要在WriteXmlXml方法上加上XmlWriteMode.WriteSchema这个参数就可以,例:

dats.WriteXml(System.Windows.Forms.Application.StartupPath + "\\ch.db",XmlWriteMode.WriteSchema);

转载于:https://www.cnblogs.com/chybin500/archive/2009/04/10/1433153.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值