持之以恒
分类:
2009-07-25 19:15:05
是Extensible Markup Language的简写,一种扩展性标识语言
和的区别 :和都 来自于SGML,它们都含有标记,有着相似的语法,HTML和XML的最大区别在于:HTML是一个定型的标记语言,它用固有的标记来描述,显示网页内容。比如表示首行标题,有固定的尺寸。相对的,XML则没有固定的标记,XML不能描述网页具体的外观,内容,它只是描述内容的数 据形式和结构。 这是一个质的区别:网页将数据和显示混在一起,而则将数据和显示分开来。
1.所有的标记都必须要有一个相应的结束标记;
2.所有的标记都必须合理嵌套;
3.所有标记都区分大小写;
4.所有标记的属性必须用""括起来;
标记必须遵循下面的命名规则:
1.名字中可以包含字母、数字以及其它字母;
2.名字不能以数字或"_" (下划线) 开头;
3.名字不能以字母 (或 XML 或 Xml ..) 开头;
4.名字中不能包含空格。
在文 档中任何的差错,都会得到同一个结果:网页不能被显示。各浏览器开发商已经达成协议,对XML实行严格而挑剔的解析,任何细小的错误都会被报告。
文档包含三个部分:
1. 一个文档声明;
2. 一个关于文档类型的定义;
3. 用标识创建的内容。
举例说明:
version="1.0"?>//1
//2
......
其中第一行 version="1.0"?>就是一个XML文档的声明,第二行说明这个文档是用filelist.dtd来定义文档类型的,第三行以下就是内容主体部分。
我们来了解文档中有关的术语:
1.Element(元素):
元素在我们已经有所了解,它是组成HTML文档的最小单位,在中也一样。一个元素由一个标识来定义,包括开始和结束标识以及其中的内容,就像这样:
2.Tag(标识)
标识是用来定义元素的。在中,标识必须成对出现,将数据包围在中间。标识的名称和元素的名称是一样的。例如这样一个元素:
其中
3.Attribute(属性):
什么是属性?看这段代码:。其中color就是font的属性之一。属性是对标识进一步的描述和说明,一个标识可以有多个属性,例如font的属性还有size。中的属性与中的属性是一样的,每个属性都有它自己的名字和数值,属性是标识的一部分。举例:
中属性也是自己定义的,我们建议你尽量不使用属性,而将属性改成子元素,例如上面的代码可以改成这样:
原因是属性不易扩充和被程序操作。
4.Declaration(声明)
在所有文档的第一行都有一个XML声明。这个声明表示这个文档是一个XML文档,它遵循的是哪个XML版本的规范。一个XML的声明语句就象这样:
version="1.0"?>
5.DTD(文件类型定义)
DTD是用来定义文档中元素,属性以及元素之间关系的。
通过DTD文件可以检测文档的结构是否正确。但建立XML文档并不一定需要DTD文件。关于DTD文件的详细说明我们将在下面单独列项。
6.Well-formed (良好格式的XML)
一个遵守语法规则,并遵守XML规范的文档称之为"良好格式"。如果你所有的标识都严格遵守XML规范,那么你的XML文档就不一定需要DTD文件来定义它。
良好格式的文档必须以一个声明开始,例如:
version="1.0" standalone="yes" encoding="UTF-8"?>
其中你必须说明文档遵守的版本,目前是1.0;其次说明文档是"独立的",它不需要DTD文件来验证其中的标识是否有效;第三,要说明文档所使用的语言编码。默认的是UTF-8,如果使用中文,你需要设置为GB2312。
良好格式的文档必须有一个根元素,就是紧接着声明后面建立的第一个元素,其它元素都是这个根元素的子元素,属于根元素一组。
良好格式的文档的内容书写时必须遵守XML语法。
7.Valid (有效的XML)
一个遵守语法规则,并遵守相应DTD文件规范的XML文档称为有效的XML文档。注意我们比较"Well-formed XML"和"Valid
",它们最大的差别在于一个完全遵守XML规范,一个则有自己的"文件类型定义(DTD)"。
将文档和它的DTD文件进行比较分析,看是否符合DTD规则的过程叫validation(确认)。这样的过程通常我们是通过一个名为parser的软件(比如说是tinyXML)来处理的。
8.Document Tree(文档树)
"文档树",它是文档元素分级结构的形象表示。一个文档结构树包含根元素,根元素是最顶级的元素,(就是紧接着声明语句后的第一个元素)。看例子:
version="1.0"?>
上面的例子分三级结构排列成"树"状,其中的
9.Parent Element(父元素)/Child Element(子元素)
父元素是指包含有其它元素的元素,被包含的元素称为它的子元素。看上面的"结构树",其中
10.Parser(解析软件)
Parser是一种检查文档是否遵循DTD规范的工具软件。
的parser发展为两类:一种是"非确认类paeser",只检测文档是否遵守XML语法规则,是否用元素标识建立了文档树(比如TinyXML)。另一种是"确认类paeser",它不但检测文档语法,结构树,而且比较解析你使用的元素标识是否遵守了相应DTD文件的规范。
DOM 采用建立树形结构的方式访问 XML 文档,而 SAX 采用的事件模型。
DOM 解析器把 XML 文档转化为一个包含其内容的树,并可以对树进行遍历。用 DOM 解析模型的优点是编程容易,开发人员只需要调用建树的指令,然后利用navigation APIs访问所需的树节点来完成任务。可以很容易的添加和修改树中的元素。然而由于使用 DOM 解析器的时候需要处理整个 XML 文档,所以对性能和内存的要求比较高,尤其是遇到很大的 XML 文件的时候。由于它的遍历能力,DOM 解析器常用于 XML 文档需要频繁的改变的服务中。
SAX 解析器采用了基于事件的模型,它在解析 XML 文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。SAX 对内存的要求通常会比较低,因为它让开发人员自己来决定所要处理的tag。特别是当开发人员只需要处理文档中所包含的部分数据时,SAX 这种扩展能力得到了更好的体现。但用 SAX 解析器的时候编码工作会比较困难,而且很难同时访问同一个文档中的多处不同数据。