目 录
1. XML技术
1.1 XML教程——XML简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 XML教程——DTD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 XML教程——命名空间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.4 XML教程——XSL样式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
1.5 XML教程——XPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
1.6 XML教程——XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
1.7 XML教程——XML解析器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
1.8 XML教程——采用SAX来解析XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
1.9 XML教程——采用DOM来解析XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
1.10 XML教程——XPath实例详解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
1.11 XML教程——JAXP详解(一) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
1.12 XML教程——JAXP详解(二) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110
1.13 XML教程——XML四种解析器的比较 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
1.14 设计模式之Visitor模式的应用(一) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123
1.15 设计模式之Visitor模式的应用(二) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132
http://xtu-tja-163-com.javaeye.com
第 2 / 137 页
1.1 XML教程——XML简介
发表时间: 2010-11-24
什么是XML
XML即为可扩展的标记语言(eXtensible Markup Language)。XML是一套定义语义标记的规则,这些标记
将文档分成许多部件并对这些部件加以标识。
XML是标记语言。理解XML,首先要理解标记。先说说HTML的标记(Markup),通俗地讲,它就是一种用来
给文本添加标记的语言。在HTML里每个标志都是有确切含义的。例如,在HTML 中,标签〈B〉的含义是要求
HTML浏览器将一段文本加粗表示,而标签〈CENTER〉的含义是告诉浏览器将这段文本在一行的中间显示。
而XML并非象HTML那样,提供了一组事先已经定义好了的标签,而是提供了一个标准,利用这个标准,你可
以根据实际需要定义自己的新的置标语言,并为你的这个置标语言规定它特有的一套标签。准确的说,XML是
一种源置标语言,它允许你根据它所提供的规则,制定各种各样的置标语言。
回页首
XML的产生
XML有两个先驱——SGML和HTML,这两个语言都是非常成功的标记语言,SGML的全称是标准通用化标记语
言,它从80年代初开始使用。正如XML一样,SGML也可用于创建成千上万的标记语言,它为语法置标提供了
异常强大的工具,同时具有极好的扩展性,因此在分类和索引数据中非常有用。目前,SGML多用于科技文献和
政府办公文件中。SGML 非常之复杂,其复杂程度对于网络上的日常应用简直不可思议。不仅如此,SGML非
常昂贵。HTML免费、简单,而且它获得了广泛的支持。它是一个非常简单的SGML语言,可以方便普通人的使
用。1996年人们开始致力于描述一个置标语言,它既具有SGML的强大功能和可扩展性,同时又具有HTML的
简单性。W3C于1998年2月批准了XML的1.0版本,一个崭新而大有前途的语言诞生了。
回页首
XML的优点
1.XML允许各种不同的专业(如音乐、化学、数学等)开发与自己的特定领域有关的标记语言。这就使得该领
域中的人们可以交换笔记、数据和信息,而不用担心接收端的人是否有特定的软件来创建数据。
2.XML具有较好的保值性.过去40年来的大多数计算机数据都丢失了,不是因为自然损害或是备份介质的磨损,而
只是因为没有人来写出如何读取这些数据介质和格式的文档。以不常用的格式保存的二进制数据,数据也许会
永远地消失了。XML在基本水平上使用的是非常简单的数据格式。可以用100%的纯ASCII文本来书写,也可以
用几种其他定义好的格式来书写。ASCII文本是几乎不会"磨损"的。
http://xtu-tja-163-com.javaeye.com
1.1 XML教程——XML简介
第 3 / 137 页
3.应用间交换数据.由于XML是非专有的并易于阅读和编写,就使得它成为在不同的应用间交换数据的理想格
式.XML使用的是非专有的格式,不受版权、专利、商业秘密或是其他种类的知识产权的限制。XML的功能是非
常强大的,同时对于人类或是计算机程序来说,都容易阅读和编写。因而成为交换语言的首选。
此外,相对于HTML,XML具有先天的优越性。
为了自己的浏览器增加一些特殊的显示效果,HTML加入了一些特殊的标记。日益增多的标签不但使HTML越来
越庞大,浏览器的开发越来越复杂,还降低了不同浏览器之间的兼容性。尽管HTML的标签越来越多,其显示力
却还远远不够。如果你希望非常精确地表现一些你自己的数据,可能你需要一些现在在HTML中尚不存在的标
签。现在HTML内部结构的条理性越来越差。你写的HTML文件,甚至是那些专门的所见即所得工具自动生成的
HTML文件,可能在语法上会错误百出,不过没关系,浏览器照样能读它。
现在有了XML,你终于可以自由地制定你自己的置标语言,而不必再念念不忘微软、 Netscape、W3C的首肯
了。实际上,现在许多行业、机构都利用XML定义了自己的置标语言。比较早而且比较典型的是下面两个实
例:
• 化学置标语言CML (Chemistry Markup Language)
• 数学置标语言MathML (Mathematical Markup Language)
回页首
一个简单的XML文档
现在让我们考察一个简单的XML文档:
<?xml version="1.0" standalone="yes"?>
<FOO>
Hello XML!
</FOO>
第一行是XML声明:
<?xml version="1.0" standalone="yes"?>
这是XML处理指令的例子。处理指令以<?开始,而以?>结束。在<?后的第一个单词是处理指令名,在本例中是
xml。
http://xtu-tja-163-com.javaeye.com
1.1 XML教程——XML简介
第 4 / 137 页
XML声明有version和standalone两个特性。特性是由等号分开的名称-数值对。位于等号左边的是特性名,而
其值位于等号的右边,并用双引号括起来。每一个XML文档都以一个XML 声明开始,用以指明所用的XML的版
本。在上例中, version特性表明这个文档符合XML 1.0 规范。XML声明还可以有standalone特性,这告诉我
们文档是否在这一个文件里还是需要从外部导入文件。在本例中,以及在以后的几章中,所有的文档都在一个
文件里完成,因而 standalone特性的值要设置为yes。
再看剩下三行。总体上说,这三行组成了FOO元素。分开说,<FOO>是开始标记,而</FOO> 是结束标记,
Hello XML!是FOO元素的内容。读者可能要问,<FOO>标记的意义是什么?回答是"你要让它是什么就是什
么"。除了几百个预定义的标记之外,XML还允许用户创建所需的标记。因而<FOO>标记可以具有用户赋于的
任何意义.同一个XML文档可以用不同的标记名编写,如:
<?xml version="1.0" standalone="yes"?>
<GREETING>
Hello XML!
</GREETING>
或是:
<?xml version="1.0" standalone="yes"?>
<P>
Hello XML!
</P>
回页首
XML标记的意义
标记有三类意义:结构、语义和样式。结构将文档分成元素树。语义将单个的元素与外部的实际事物联系起
来。而样式指定如何显示元素。
结构只是表达文档的形式,而不管单个标记和元素间的差别。它们都指定文档具有一个非空的基本元素。标记
的不同名称没有结构上的意义。语义的意义存在于文档之外,在作者的心中或是读者或是某些生成或读取这些
文件的计算机程序中。例如,理解HTML但不理解XML的Web浏览器,可能会将段落的意义赋给<P>和</P>标
http://xtu-tja-163-com.javaeye.com
1.1 XML教程——XML简介
第 5 / 137 页
- 1
- 2
- 3
- 4
- 5
前往页