使用XML的五种场合,XML基本规则,XML的术语,结构与语法

在不少研讨会和培训班上我遇到过许多人,他们还不明白为何要使用XML也不知道如何 
在他们的应用中使用XML。一些来自诸如Gartner公司的报告建议说,商业公司不能再作 
局外人了,不能对XML置之不理。若是你还不清楚XML到底有什么好处的话,你并非惟 
一的人。 
我决定把与人们和媒体关于XML话题的交谈整理成文,列出XML在应用中的五个最使人喜 
爱的用法。尽管这些并不能包含XML的全部潜在应用,至少是些最重要的领域。数据库

一、数据交换 
用XML在应用程序和公司之间做数据交换已不是什么秘密了,毫无疑问应被列为第一位。 
那么为何XML在这个领域里的地位这么重要呢?缘由就是XML使用元素和属性来描述数 
据。在数据传送过程当中,XML始终保留了诸如父/子关系这样的数据结构。几个应用程序 
能够共享和解析同一个XML文件,没必要使用传统的字符串解析或拆解过程。 
相反,普通文件不对每一个数据段作描述(除了在头文件中),也不保留数据关系结构。使 
用XML作数据交换可使应用程序更具备弹性,由于能够用位置(与普通文件同样)或用元 
素名(从数据库)来存取XML数据。编程

二、Web服务 
Web服务是最使人激动的革命之一,它让使用不一样系统和不一样编程语言的人们可以相互交 
流和分享数据。其基础在于Web服务器用XML在系统之间交换数据。交换数据一般用XML标 
记,能使协议取得规范一致,好比在简单对象处理协议(Simple Object Access Protoc 
ol, SOAP)平台上。 
SOAP能够在用不一样编程语言构造的对象之间传递消息。这意味着一个C#对象可以与一个 
Java对象进行通信。这种通信甚至能够发生在运行于不一样操做系统上的对象之间。DCOM 
, CORBA或Java RMI只能在紧密耦合的对象之间传递消息,SOAP则可在松耦合对象之间传 
递消息。浏览器

三、内容管理 
XML只用元素和属性来描述数据,而不提供数据的显示方法。这样,XML就提供了一个优 
秀的方法来标记独立于平台和语言的内容。 
使用象XSLT这样的语言可以轻易地将XML文件转换成各类格式文件,好比HTML, WML, PD 
F, flat file, EDI, 等等。XML具备的可以运行于不一样系统平台之间和转换成不一样格式 
目标文件的能力使得它成为内容管理应用系统中的优秀选择。 服务器

四、Web集成 
如今有愈来愈多的设备也支持XML了。使得Web开发商能够在我的电子助理和浏览器之间 
用XML来传递数据。 
为何将XML文本直接送进这样的设备去呢?这样做的目的是让用户更多地本身掌握数据 
显示方式,更能体验到实践的快乐。常规的客户/服务(C/S)方式为了得到数据排序或更 
换显示格式,必须向服务器发出申请;而XML则能够直接处理数据,没必要通过向服务器申 
请查询-返回结果这样的双向“旅程”,同时在设备也不须要配制数据库。 
甚至还能够对设备上的XML文件进行修改并将结果返回给服务器。想像一下,一台具备互 
联网功能并支持XML的电冰箱将会给市场带来多么大的冲击吧。你今后没必要早起去取牛奶 
了! 
五、配制 
许多应用都将配制数据存储在各类文件里,好比.INI文件。虽然这样的文件格式已经使 
用多年并一直很好用,可是XML仍是以更为优秀的方式为应用程序标记配制数据。使用. 
NET里的类,如XmlDocument和XmlTextReader,将配制数据标记为XML格式,能使其更具 
可读性,并能方便地集成到应用系统中去。使用XML配制文件的应用程序可以方便地处理 
所需数据,不用象其余应用那样要通过从新编译才能修改和维护应用系统。 
如前所述,这里提到的五种使用XML的途径不包括所有场合。网络

 

1. XML 文档必须包含在一个单一元素中
2. XML 元素不能重叠,必须正确的嵌套
3. 不能省去任何结束标记,或者说标记必须成对
4. XML 元素是区分大小写的,也就是大小写敏感
5. XML 文档中的属性有两个规则:
 属性必须有值 
 那些值必须用引号括起,可使用单引号,也可使用双引号,但要始终保持一致
6. 若是文档包含XML 声明,则它必定是第一个出现的东西
7. XML注释和HTML注释的形式及用法相同
8. 处理指令是为使用一段特殊代码而设计的标记,(待续)
9. 实体(待续)
10. 名称空间的存在是为了解决同一份文档中的同名不一样义的命名冲突问题(和C++的namespace同样)。
 为某一“元素”定义了namespace意味着该“元素”的全部“子元素”具备相同的namespace。
 请注意,名称空间(namespace)定义中的字符串仅仅是字符串,不必定非得是URL或者URI。只要你能保证惟一便可数据结构

 

 提纲:编程语言

 

导言工具

一.XML文档的有关术语学习

二.DTD的有关术语编码

 

导言

 

初学XML最使人头疼的就是有一大堆新的术语概念要理解。因为XML自己也是一个崭新的技术,正在不断发展和变化,各组织和各大网络公司(微软,IBM,SUN等)都在不断推出本身的看法和标准,所以新概念漫天飞就不足为奇了。而国内又缺少权威的机构或组织来对这些术语正式定名,你所看见的有关XML的中文教材大部分是靠做者自己的理解翻译过来的,有些是正确的,有些是错误的,更加妨碍了咱们对这些概念的理解和学习。

 


你下面将要看到的关于XML术语的解释,也是做者自己的理解和翻译。阿捷是以W3C组织发布的XML1.0标准规范和相关的正式说明文档为根据来说述。能够确保这些理解是基本正确的,至少不是错误的。你若是想进一步阅读和了解,我在本文的最后部分列明了相关资源的出处和连接,你能够直接访问。好,咱们转入正题:


一.XML文档的有关术语

什么是XML文档?知道HTML原代码文件吧,XML文档就是用XML标识写的XML原代码文件。XML文档也是ASCII的纯文本文件,你能够用Notepad建立和修改。XML文档的后缀名为.XML,例如myfile.xml。用IE5.0以上浏览器也能够直接打开.xml文件,但你看到的就是"XML原代码",而不会显示页面内容。你能够将下面代码存为myfile.xml试试:


<?xml version="1.0" encoding="GB2312"?>

<myfile>

<title>XML轻松学习手册</title>

<author>ajie</author>

<email>ajie@aolhoo.com</email>

<date>20010115</date>

</myfile>


XML文档包含三个部分:

1. 一个XML文档声明;

2. 一个关于文档类型的定义;

3. 用XML标识建立的内容。


举例说明:

<?xml version="1.0"?>

<!DOCTYPE filelist SYSTEM "filelist.dtd">


<filelist>

<myfile>

<title>QUICK START OF XML</title>

<author>ajie</author>

</myfile>

......

</filelist>

其中第一行<?xml version="1.0"?>就是一个XML文档的声明,第二行说明这个文档是用filelist.dtd来定义文档类型的,第三行如下就是内容主体部分。 
咱们来了解XML文档中有关的术语:


1.Element(元素):

元素在HTML咱们已经有所了解,它是组成HTML文档的最小单位,在XML中也同样。一个元素由一个标识来定义,包括开始和结束标识以及其中的内容,就象这样:<author>ajie</author>


惟一不一样的就是:在HTML中,标识是固定的,而在XML中,标识须要你本身建立。


2.Tag(标识)

标识是用来定义元素的。在XML中,标识必须成对出现,将数据包围在中间。标识的名称和元素的名称是同样的。例如这样一个元素:

<author>ajie</author>

其中<author>就是标识。


3.Attribute(属性):

什么是属性?看这段HTML代码:<font color="red">word</font>。其中color就是font的属性之一。

属性是对标识进一步的描述和说明,一个标识能够有多个属性,例如font的属性还有size。XML中的属性与HTML中的属性是同样的,每一个属性都有它本身的名字和数值,属性是标识的一部分。举例:

<author sex="female">ajie</author>

XML中属性也是本身定义的,咱们建议你尽可能不使用属性,而将属性改为子元素,例如上面的代码能够改为这样:

<author>ajie

<sex>female</sex>

</author>

缘由是属性不易扩充和被程序操做。


4.Declaration(声明)

在全部XML文档的第一行都有一个XML声明。这个声明表示这个文档是一个XML文档,它遵循的是哪一个XML版本的规范。一个XML的声明语句就象这样:

<?xml version="1.0"?>


5.DTD(文件类型定义)

DTD是用来定义XML文档中元素,属性以及元素之间关系的。

经过DTD文件能够检测XML文档的结构是否正确。但创建XML文档并不必定须要DTD文件。关于DTD文件的详细说明咱们将在下面单独列项。


6.Well-formed XML(良好格式的XML)

一个遵照XML语法规则,并遵照XML规范的文档称之为"良好格式"。若是你全部的标识都严格遵照XML规范,那么你的XML文档就不必定须要DTD文件来定义它。

良好格式的文档必须以一个XML声明开始,例如:

<?xml version="1.0" standalone="yes" encoding="UTF-8"?>

其中你必须说明文档遵照的XML版本,目前是1.0;其次说明文档是"独立的",它不须要DTD文件来验证其中的标识是否有效;第三,要说明文档所使用的语言编码。默认的是UTF-8,若是使用中文,你须要设置为GB2312。

良好格式的XML文档必须有一个根元素,就是紧接着声明后面创建的第一个元素,其它元素都是这个根元素的子元素,属于根元素一组。

良好格式的XML文档的内容书写时必须遵照XML语法。(有关XML语法咱们将在下一章仔细讲解)


7.Valid XML(有效的XML)

一个遵照XML语法规则,并遵照相应DTD文件规范的XML文档称为有效的XML文档。注意咱们比较"Well-formed XML"和"Valid 
XML",它们最大的差异在于一个彻底遵照XML规范,一个则有本身的"文件类型定义(DTD)"。

将XML文档和它的DTD文件进行比较分析,看是否符合DTD规则的过程叫validation(确认)。这样的过程一般咱们是经过一个名为parser的软件来处理的。

有效的XML文档也必须以一个XML声明开始,例如:

<?xml version="1.0" standalone="no" encode="UTF-8"?>

和上面例子不一样的,在standalone(独立)属性中,这里设置的是"no",由于它必须和相应的DTD一块儿使用,DTD文件的定义方法以下:

<!DOCTYPE type-of-doc SYSTEM/PUBLIC "dtd-name">

其中:

"!DOCTYPE"是指你要定义一个DOCTYPE;

"type-of-doc"是文档类型的名称,由你本身定义,一般于DTD文件名相同;

"SYSTEM/PUBLIC"这两个参数只用其一。SYSTEM是指文档使用的私有DTD文件的网址,而PUBLIC则指文档调用一个公用的DTD文件的网址。

"dtd-name" 就是DTD文件的网址和名称。全部DTD文件的后缀名为".dtd"。

咱们仍是用上面的例子,应该写成这样:

<?xml version="1.0" standalone="no" encode="UTF-8"?>

<!DOCTYPE filelist SYSTEM "filelist.dtd">


二.DTD的有关术语

什么是DTD,咱们上面已经简略提到。DTD是一种保证XML文档格式正确的有效方法,能够比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。一个DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可以使用的属性,可以使用的实体或符号规则。

DTD文件也是一个ASCII的文本文件,后缀名为.dtd。例如:myfile.dtd。

为何要用DTD文件呢?个人理解是它知足了网络共享和数据交互,使用DTD最大的好处在于DTD文件的共享。(就是上文DTD说明语句中的PUBLIC属性)。好比,两个相同行业不一样地区的人使用同一个DTD文件来做为文档建立规范,那么他们的数据就很容易交换和共享。网上有其余人想补充数据,也只须要根据公用的DTD规范来创建文档,就马上能够加入。

目前,已经有数量众多的写好的DTD文件能够利用。针对不一样的行业和应用,这些DTD文件已经创建了通用的元素和标签规则。你不须要本身从新建立,只要在他们的基础上加入你须要的新标识。

固然,若是愿意,你能够建立本身的DTD,它可能和你的文档配合的更加完美。创建本身的DTD也是很简单的一件事,通常只须要定义4-5个元素就能够了。

调用DTD文件的方法有两种:

1.直接包含在XML文档内的DTD

你只要在DOCTYPE声明中插入一些特别的说明就能够了,象这样:

咱们有一个XML文档:

<?xml version="1.0" encoding="GB2312"?>

<myfile>

<title>XML轻松学习手册</title>

<author>ajie</author>

</myfile>

咱们在第一行后面插入下面代码就能够:

<!DOCTYPE myfile [

<!ELEMENT title (#PCDATA)>

<!ELEMENT author (#PCDATA)>

<!ENTITY copyright "Copyright 2001, Ajie.">

]>


2.调用独立的DTD文件

将DTD文档存为.dtd的文件,而后在DOCTYPE声明行中调用,例如,将下面的代码存为myfile.dtd

<!ELEMENT myfile (title, author)>

<!ELEMENT title (#PCDATA)>

<!ELEMENT author (#PCDATA)>


而后在XML文档中调用,在第一行后插入:

<!DOCTYPE myfile SYSTEM "myfile.dtd">


咱们能够看到DTD文档和HTML中js的调用是差很少的,关于DTD文档具体如何写,咱们将在下一章和XML文档的语法一块儿介绍。


下面咱们来了解DTD有关的术语:


1.Schema(规划)

schema是数据规则的描述。schema作两件事:

a.它定义元素数据类型和元素之间的关系;

b.它定义元素所能包含的内容类型。

DTD就是关于XML文档的一个schema。


2.Document Tree(文档树)

"文档树"在前面第二章咱们已经提到过,它是文档元素分级结构的象表示。一个文档结构树包含根元素,根元素是最顶级的元素,(就是紧接着XML声明语句后的第一个元素)。看例子:

<?xml version="1.0"?>

<filelist>

<myfile>

<title>...</title>

<author>...</author>

</myfile>

</filelist>

上面的例子分三级结构排列成"树"状,其中的<filelist>就是根元素。在XML和DTD文件中,第一个定义的都是根元素。


3.Parent Element(父元素)/Child Element(子元素)

父元素是指包含有其它元素的元素,被包含的元素称为它的子元素。看上面的"结构树",其中<myfile>是父元素,<title>,<author>是它的子元素,而<myfile>又是<filelist>的子元素。象<title>这样没有包含任何子元素的最后一级元素咱们也称之为"页元素"。


4.Parser(解析软件)

Parser是一种检查XML文档是否遵循DTD规范的工具软件。

XML的parser发展为两类:一种是"非确认类paeser",只检测文档是否遵照XML语法规则,是否用元素标识创建了文档树。另外一种是"确认类paeser",它不但检测文档语法,结构树,并且比较解析你使用的元素标识是否遵照了相应DTD文件的规范。

Parser能独立使用,也能够成为编辑软件或浏览器的一部分。在后面的相关资源列表里,我列出了当前比较流行的一些parsers。


好了,经过第三章的学习,咱们已经了解了一些XML和DTD的基本术语,可是咱们还不知道怎样来写这些文件,须要遵循什么样的语法,在下一章,将重点介绍有关撰写XML和DTD文档的语法。请继续浏览,谢谢!

 

XML入门精解之结构与语法
咱们暂且使用“记事本”来建立咱们的XML文件吧。先看一个XML文件: 
  例1 
  〈?xml version="1.0" encoding="gb2312" ?〉 
  〈参考资料〉 
   〈书籍〉 
   〈名称〉XML入门精解〈/名称〉 
   〈做者〉张三〈/做者〉 
   〈价格 货币单位="人民币"〉20.00〈/价格〉 
   〈/书籍〉 
   〈书籍〉 
   〈名称〉XML语法〈/名称〉 
   〈!--此书即将出版--〉 
   〈做者〉李四〈/做者〉 
   〈价格 货币单位="人民币"〉18.00〈/价格〉 
   〈/书籍〉 
  〈/参考资料〉 
  这是一个典型的XML文件,编辑好后保存为一个以.xml为后缀的文件。咱们能够将此文件分为文件序言(Prolog)和文件主体两个大的部分。在此文件中的第一行便是文件序言。该行是一个XML文件必需要声明的东西,并且也必须位于XML文件的第一行,它主要是告诉XML解析器如何工做。其中,version是标明此XML文件所用的标准的版本号,必需要有;encoding指明了此XML文件中所使用的字符类型,能够省略,在你省略此声明的时候,后面的字符码必须是Unicode字符码(建议不要省略)。由于咱们在这个例子中使用的是GB2312字符码,因此encoding这个声明也不能省略。在文件序言部分还有一些声明语句,咱们在后面给予介绍。
 
  文件的其他部分都是属于文件主体,XML文件的内容信息存放在此。咱们能够看到,文件主体是由开始的〈参考资料〉和结束的〈/参考资料〉控制标记组成,这个称为XML文件的“根元素”;〈书籍〉是做为直属于根元素下的“子元素”;在〈书籍〉下又有〈名称〉、〈做者〉、〈价格〉这些子元素。货币单位是〈价格〉元素中的一个“属性”,“人民币”则是“属性值”。 
  〈!--此书即将出版--〉这一句同HTML同样,是注释,在XML文件里,注释部分是放在“〈!--”与“--〉”标记之间的部分。 
  你们能够看到,XML文件是至关简单的。同HTML同样,XML文件也是由一系列的标记组成,不过,XML文件中的标记是咱们自定义的标记,具备明确的含义,咱们能够对标记中的内容的含义做出说明。对XML文件有了初步的印象以后,咱们就来详细地谈一谈XML文件的语法。在讲语法以前,咱们必需要了解一个重要的概念,就是XML解析器(XML Parse)。

  1.XML解析器 
  解析器的主要功能就是检查XML文件是否有结构上的错误,剥离XML文件中的标记,读出正确的内容,以交给下一步的应用程序处理。XML是一种用来结构化文件信息的标记语言,XML规范中对于如何标记文件的结构性有一个详细的法则,解析器就是根据这些法则写出来的软件(多用Java写成)。同HTML同样,在浏览器中,必须有HTML的解析器,这样浏览器才可以“读懂”各类用HTML标记所组成的网页,将它们显示在咱们面前。若是有浏览器的HTML解析器读不懂的标记,将会返回给咱们错误信息。 
  因为如今的HTML标记实际上至关混乱,存在大量不规范的标记(有的网页用IE能正常显示,而用Netscape Navigator则不行),因此从一开始,XML的设计者就严格规定了XML的语法和结构,咱们编写的XML文件必须遵循这些规定,不然XML解析器将绝不留情地给你显示错误信息。

  有两种XML文件,一种是Well-Formed XML文件,一种是Validating XML文件。 
  若是一个XML文件知足XML规范中的某些相关法则,且没有使用DTD(文件格式定义——后详述)时,可称这份文件是Well-Formed。而若是一个XML文件是Well-Formed,且正确地使用了DTD,DTD中的语法又是正确的,那么这个文件就是Validating。对应两种XML文件,有两种XML解析器,一种是Well-Formed 解析器,一种是Validating解析器。IE 5中就内含Validating解析器,Validating解析器也可用来解析Well-Formed XML文件。 
  检查它是否知足了Well-Formed的条件。咱们能够将刚才编辑的第一个XML 文件用IE 5以上版本的浏览器打开。 
  你们可能要问为何在浏览器中的显示和个人源文件同样?没错,由于对于XML文件,咱们鼋龉匦乃 的内容,而它的显示形式是交给CSS或XSL来完成的。这里,咱们并无给这个XML文件定义它的CSS或XSL文件,因此它按照原来的形式来显示。实际上,对于电子数据交换,仅仅须要一个XML文件便可,若是要将它以某种形式显示出来,咱们就必须编辑CSS或XSL文件(这个问题会在之后讨论)。

2.Well-Formed的XML文件 
 咱们知道,XML必须是Well-Formed的,才可以被解析器正确地解析出来,显示在浏览器中。那么什么是Well-Formed的XML文件呢?主要有下面几个准则,咱们在建立XML文件的时候,必须知足它们。 
 首先,XML文件的第一行必须是声明该文件是XML文件以及它所使用的XML规范版本。在文件的前面不可以有其它元素或者注释。 
 第二,在XML文件中有且只可以有一个根元素。咱们的第一个例子中,〈参考资料〉... 〈/参考资料〉就是此XML文件的根元素。 
 第三,在XML文件中的标记必须正确地关闭,也就是说,在XML文件中,控制标记必 须有与之对应的结束标记。如:〈名称〉标记必须有对应的〈/名称〉结束标记,不像HTML,某些标记的结束标记无关紧要。若是在XML文件中遇到自成一个单元的标记,就是相似于HTML 中的〈img src=.....〉的这些没有结束标记的时候,XML把它称为“空元素”,必须用这样的写法:〈空元素名/〉,若是元素中含有属性时写法则为:〈空元素名 属性名=“属性值”/〉。 
 第四,标记之间不得交叉。在之前的HTML文件中,能够这样写: 
 〈B〉〈H〉XXXXXXX〈/B〉〈/H〉,〈B〉和〈H〉 
 标记之间有相互重叠的区域,而在XML中,是严格禁止这样标记交错的写法,标记必须以规则性的次序来出现。 
第五,属性值必需要用“ ”号括起来。如第一个例子中的“1.0”、“gb2312”、“人民币”。都是用“ ”号括起来了的,不能漏掉。 
  第六,控制标记、指令和属性名称等英文要区分大小写。与HTML不一样的是,在HTML中, 相似〈B〉和〈b〉的标记含义是同样的,而在XML中,相似〈name〉、〈NAME〉或〈Name〉这样的标记是不一样的。 
 第七,咱们知道,在HTML文件中,若是咱们要浏览器原封不动地将咱们所输入的东西显示出来,能够将这些东西放到〈pre〉〈/pre〉或者〈xmp〉〈/xmp〉标记中间。这对于咱们建立HTML教学的网页是必不可少的,由于网页中要显示HTML的源代码。而在XML中,要实现这样的功能,就必须使用CDATA标记。在CDATA标记中的信息被解析器原封不动地传给应用程序,而且不解析该段信息中的任何控制标记。CDATA区域是由:“〈![CDATA[”为开始标记,以“>〉”为结束标记。例如:例2中的源码,除了“〈![CDATA[”和“>〉”符号,其他的内容解析器将原封不动地交给下游的应用程序,即便CDATA区域中的开始和结尾的空白以及换行字符等,都一样会被转交(注意CDATA是大写的字符)。 
  例2 
  〈![CDATA[飞翔的xml〉〉〉〉〉,:-) 
  oooo〈〈〈〈〈〈〈 
  >〉 
  第八,XML处理空白字符和HTML不同。HTML标准规定,无论有多少个空白,都看成一个空白来处理;而在XML中规定,全部标记之外的空白,解析器都要忠实地交给下游的应用程序处理。这样,咱们有时必须摒弃编写HTML文件时的缩排习惯,由于缩排的空格,解析器也要处理。如: 
   〈做者〉张三〈/做者〉 
  和 
   〈做者〉 
   张三 
   〈/做者〉 
  上述内容对于解析器来讲是不一样的(后者在〈做者〉〈/做者〉标记以内除了张三这个字符之外,还包括两个换行记号以及“张三”前的文字缩排符号)。因此解析器在去掉标记后将信息传给应用程序将有不一样的处理结果。 
  若是咱们想明确地告诉XML程序,标记中的空白有明确的含义,不要随便去掉(如在一些诗中,空格有它具体的意义),则可在标记中加入一个XML内置的属性——xml:space 。如(注意属性名称和值的大小写):    
  〈诗歌 xml:space="preserver"〉 
   祖国啊! 祖国! 
   个人祖国! 
   〈/诗歌〉 
 另外,在XML文件中,若是要用到表1的特殊字符,必须用相应符号代替。 
 表1 
  特殊字符 替代符号 
  && & 
  < &it; 
  > > 
  " " 
  ' &apos; 
  在此作个小结:符合上述规定的XML文件就是Well-Formed的XML文件。这是编写XML文件的最基本要求。能够看到XML文件的语法规定比HTML要严格多了。因为有这样的严格规定,软件工程师编写XML的解析器就容易多了,不像编写HTML语言的解析器,必须费尽心思去适应不一样的网页写法,提升本身浏览器的适应能力。实际上,这对于咱们初学者来讲,也是一件好事。该怎样就怎样,没必要像原来那样去疑惑各类HTML的写法。 
  咱们看到,在XML文件中,用的大多都是自定义的标记。可是你们考虑一下,若是两个同行业的公司A和B要用XML文件相互交换数据,A公司用〈价格〉标记来表示他们产品的价格信息,而B公司可能用〈售价〉来表示价格信息。若是一个XML应用程序来读取他们各自的XML文件中的信息时,若是它只知道〈价格〉标记里表示的是价格信息,那么B公司的价格信息就读不出来,必将产生错误。显然,对于想利用XML文件来交换信息的实体来讲,他们之间必须有一个约定——即编写XML文件能够用哪些标记,母元素中可以包括哪些子元素,各个元素出现的顺序,元素中的属性怎样定义等。这样他们在用XML交换数据时才可以畅通无阻。这种约定称为DTD(Document Type Definition,文档格式定义)。能够把DTD看做编写XML文件的模板。对于同行业之间的XML数据交换,有一个固定的DTD将会方便不少。好比说,若是网上的各大电子商场的XML网页都遵循同一个DTD时,那么咱们就能够轻松地依据这个DTD 编写一个应用程序,去网上将咱们感兴趣的东西自动抓回来。事实上已经有了好几个定义好的DTD,如前面所说的MathML、SMIL等。 
  若是一个XML文件是Well-Formed的,而且它是正确的依据某个DTD创建的,那么,这个XML文件就被称为:Validating XML文件。相应的解析器就称为:Validating Parser。

 

http://blog.csdn.net/tercel99/article/details/3908115http://blog.csdn.net/tercel99/article/details/3908112http://blog.csdn.net/tercel99/article/details/3908108http://blog.csdn.net/tercel99/article/details/3908092

相关文章
相关标签/搜索