现在的位置: 首页 > 综合 > 正文

利用代码读取XML文档

2013年08月17日 ⁄ 综合 ⁄ 共 1948字 ⁄ 字号 评论关闭

目前,有许多页面利用XML文件的配置进行读取,下面说明如何利用VS.NET进行自动处理。

(图片已经错了)1、利用XML生成XSD

   利用Visual Studio.NET新建一个空间解决方案,如下图,因为这里的测试仅仅是为了验证利用XML可以自动生成XSD,所以不用选择ASP.NET Web应用程序。
 

 

   当建立好项目以后,我们往项目里添加一个XML文档,具体方法是:在解决方案资源管理器里用鼠标右键单击项目,选择添加”/添加新项如下图

  在模板类型里选择“XML文件,将建立的XML文档命名为TestCfg.xml

输入下面的XML文本

<?xml version="1.0" standalone="yes"?>
<Site>
    
<Tab>Home</Tab>
   
<Module>Login</Module>
 
</Site>

 

 将光标焦点必须在XML文档内,此时在Visual Studio.NET的菜单上可以看到“XML”菜单,在从下拉菜单里选择创建架构如下图

 

 

这样VS将根据XML文档建立TestCfg.xsd。代码如下:

<?xml version="1.0" ?>

<xs:schema id="NewDataSet" targetNamespace="http://tempuri.org/TestCfg1.xsd" xmlns:mstns="http://tempuri.org/TestCfg1.xsd"

       xmlns="http://tempuri.org/TestCfg1.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"

       attributeFormDefault="qualified" elementFormDefault="qualified">

       <xs:element name="Site">

              <xs:complexType>

                     <xs:sequence>

                            <xs:element name="Tab" type="xs:string" minOccurs="0" />

                            <xs:element name="Module" type="xs:string" minOccurs="0" />

                     </xs:sequence>

              </xs:complexType>

       </xs:element>

       <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:Locale="zh-CN" msdata:EnforceConstraints="False">

              <xs:complexType>

                     <xs:choice maxOccurs="unbounded">

                            <xs:element ref="Site" />

                     </xs:choice>

              </xs:complexType>

       </xs:element>

</xs:schema>

这样就完成了从XML生成XSD的目的。但是这种生成是自动生成的,因此生成的XSD并不一定完全满足我们要要求,这就要求手动更改XSD的部分代码,这里我们仅仅测试就不更改了

 

2、从XSD生成CS类文件

     XSD文件生成CS文件需要借助微软提供的XSD.exe这个文件,该文件随VS一同安装,默认放置再SDK/V1.1/Bin文件夹下,使用格式为:

xsd file.xsd {/classes | /dataset} [/element:element]

             [/language:language] [/namespace:namespace]

             [/outputdir:directory] [URI:uri]

 其中参数/d[ataset] 生成一个从 DataSet 派生的类,该类与指定的架构相对应。

参数/n[amespace]:namespace 为生成的类型指定运行库命名空间。默认命名空间为 Schemas

抱歉!评论已关闭.