XML初步了解

XML:可扩展性标记语言。看起来跟HTML很像。

一、XML与HTML

功能

二者都是一种标记语言,并不是一种编程语言

HTML:超文本标记语言 ,主要用来进行页面显示和布局

XML:可扩展性标记语言,主要用来携带数据,核心是传输和包含数据

应用:1、配置文件中使用XML来编写

2、ajax和webservice中传输数据

3、异构平台中的数据交换和整合

语法:

二者均包含标签,语法格式基本相同,例如二者均运用了<></>来分别表示标签的开头和结束。

HTML的标签是系统已经规定好的,比如<hn>代表标题,<tr>代表表格中的行,但是HTML对大小写不敏感。

XML中的标签用户自定义的。只允许包含一个根元素,对大小写敏感。

除以上这些外,由于XML中的标签用户自定义的,因此,为了方便各种系统或浏览器之间的通信方便,可以人为的为XML指定一个文档结构即定义一个XML文档的语法和结构的一个规则性的文件即DTD和Schema技术。


二、DTD和Schema

功能

二者均用来定义XML文档的结构,为其提供统一的语法和规则。可以内置或外置同样声明时,利用System关键字来区分。

DTD结构:

XML:

元素:(仅包含一个根元素)<!ElEMENT 元素名称 类别>或<!ElEMENT 元素名称内容)>

此外利用EMPTY来表示空元素,利用ANY表示任何元素

同时,对元素的个数和顺序等都可以进行规定

属性(含有属性值,必须有引号)

实体:使用实体前必须进行声明

声明时,分为外部:<!ENITITY 实体名称 “实体的值”>,多个实体引用间用;隔开

内部:<!ENITITY 实体名称 System “实体的值”>

PCDATA:元素中只包含文本内容时,用#PCDATA来标识。如:<!ELEMENT 书名(#PCDATA)>

CDATA:将内容原样输出,不识别特殊标识符。

Schema:

与XML最大的不同便是schema技术支持数据类型的定义,能够保护数据通信。比如<xs:element name="body" type="xs:string"/> 即定义名称body为string类型。

以上是有关XML最基础的内容。简单概括一下:如图:

三、XML文档的一个小应用:

在asp.NET中讲到一个小例子,关于XML文档在web服务中的应用。

1、在VS中添加一个webservice1.asmx在代码中写入自己想要执行的具体方法,即在webmethod中填写方法,如下:

 public class WebService1 : System.Web.Services.WebService
    {

        [WebMethod()Description="欢迎用户"]  //一个文本method相当于定义了一个方法
        public string HelloWorld(string name)
        {
            return "欢迎"+name;
        }

        [WebMethod(Description ="获取库存!")] //description用来描述该方法的作用
        public DataSet GetStore()
        {
            sqlConnection conn = DB.CreateConnection();
            sqlDataAdapter sda = new sqlDataAdapter();
            sda.SelectCommand = new sqlCommand("select * from store",conn);
            DataSet ds = new DataSet();
            sda.Fill(ds,"store");
            return ds;
        }

        [WebMethod (Description="A向B进行转账")]
        public string  AtoB(int sum)
        {
            try
            {
                 //从A从减去sum
                this.Decrease(sum);
            
            //在B中加上sum
                this.Increase(sum);
            return "成功!";
            }
            catch
            {
                return "失败";
            }
           
        }
        //从A中减去相应数目的钱
        public void Decrease(int sum)
        {
            sqlConnection conn = DB.CreateConnection();
            conn.open();
            sqlCommand cmd=new sqlCommand ("update aaa set money=money-"+sum.ToString ()+"where account='A'",conn);
            cmd.ExecuteNonQuery();
            conn.Close();
        }
        //在B中加上相应数目的钱
        public void Increase(int sum)
        {
            sqlConnection conn = DB.CreateConnection();
            conn.open();
            sqlCommand cmd = new sqlCommand("update aaa set money=money+" + sum.ToString() + "where account='B'",conn);
            cmd.ExecuteNonQuery();
            conn.Close();
        }
    } 
在浏览器中运行后结果显示


可以看到,它将我们在webservice中定义的web方法全都显示在此了。点击上面可调用方法,会出现具体执行的步骤:


点击服务说明后,我们会发现下面这个界面:


会发现,这其实就是一个XML文档,其中的内容很多看的不是特别明白,但是仔细发现,里面具体的内容使我们在webservice1后代代码中所写好的内容。而,然后,我们再在VS中新建一个web窗体,添加webservice的服务引用,就可以直接调用webservice中我们之前编写好的方法了。

然后猜想,XML文档就是大家所说的通过它可以突破地域和消除了不同平台之间不同格式规格的差别,使它们之间通信更加方便。就像是一个解释器,但是这个解释器提供了一种大家共同认可的解释方式,来为大家服务。

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念