XML学习笔记(上)
Copyright ? 2004 本文遵从GNU 的自由文档许可证(Free Document License)的条款,欢迎转载、修改、散布。
发布时间:2004年12月03日
最近更新:2005年02月18日
Abstract
XML技术是Internet技术的又一次革命。本笔记记录标记语言的历史和发展,还有我的学习历程。
--------------------------------------------------------------------------------
Table of Contents
1. XML简介
2. XML语法
2.1. 基本语法规则
2.2. 良构XML文档和有效XML文档
2.3. XML文档的组成
2.4. XML文档树
3. DTD
3.1. 文档类型声明
3.2. 元素声明
3.3. 属性声明
3.3.1. 属性类型
3.3.2. 属性缺省值
3.4. 实体
4. XML名称空间
5. XHTML
6. 样式表
6.1. XSLT
6.2. XPath
6.2.1. 匹配模式
6.2.2. XPath轴
6.2.3. 谓词
6.2.4. XPath表达式
6.2.5. XPath函数
6.3. XLink
7. 分析XML
7.1. 分析器工具
7.2. Unicode
A. 附录
A.1. 标记语言的历史
A.2. XML相关技术名词解释
A.3. XML应用
List of Tables
6.1.
6.2. XPath轴描述
6.3. 选择节点常用谓词
Chapter 1. XML简介
XML(eXtensible Markup Language,可扩展标记语言)是SGML的一个子集,但比SGML简单,用以创建可相互转换的结构化文本文档和数据文档。下面说明一下与XML相关的一些概念。
SGML(Standard Generalized Markup Language,标准通用标记语言),由于IBM公司的三位先驱者Charles GoldFarb、Edward Mosher和Raymond Lorie创立,主要作为大型文档的编制工具。DTD(Document Type Definition,文档类型定义)是SGML文档的核心,它定义了SGML文档必须遵循的一组语法规则。由于它很复杂,所以只是在一些大公司或大项目中使用。直到HTML面世,它还是默默无闻。
HTML(Hypertext Markup Language,超文本标记语言),它是在SGML框架中通过DTD定义的标记语言,是SGML的一种应用。它由于结构简单,容易学习而迅速普及,每个人都能很快地建立自已的页面,HTML造就了现时Internet上无数的信息资源。HTML标记只描述文档的外观,而不描述文档的内容本身--里面有什么。HTML是不明白网页内容的,这样就造成了内容搜索的差异和不确定性。另一个问题是,HTML不是可扩展的,这意味着没有一种方便的途径来扩展标记。每一个新标记的引入都会造成系统的不一致性和对标准的修订。这就是为什么现在我们用不同的浏览器浏览同一个网站时表现效果会有差异。
XHTML(eXtensible Hypertext Markup Language,可扩展超文本标记语言),它是按XML规则编写的HTML,由于有统一的规则约束,所以它不会出现如HTML一样的不规范、不一致性问题。
XML(eXtensible Markup Language,可扩展标记语言),继承了SGML的优点,但又没有了SGML的复杂性。XML专门为WEB应用而设计,和HTML不同,它是一种元标记语言(meta-markup language),也就是说它没有一套能够适用于各个领域中所有用户的固守的标签和元素,相反,它允许开发者根据自已的需要定义自已的元素,XML中的X(eXtensible)就是说明了这一点。它的特点有:
XML使用Unicode字符集,可生成英文、中文、希腊文或梵文等多种语言。
可将多个来源(包括其他XML文档和二进制文件)汇合进一个XML文档。
可利用DTD或Schema(模式)管理一致性问题。DTD主要用于文档型文档,Schema主要用数据型文档。
具有很好的扩展性,可定义自已的元素和属性。
通过XML可从关系数据库管理系统中提取数据到结构化文档。它还被设计成可对各种数据对象进行操作。
在一个设计良好的XML应用中,XML标记不涉及文档如何显示,只表示文档的结构。
XML被设计用来存储、支持和交换数据,而不是用来显示数据的。通常,XML被用于数据交换,而不是数据存储。
元数据,定义数据的数据。
标记语言是一种定义文档的格式语言。SGML、XML、XHML、HTML都属标记语言。
XML文档是什么?它有时是一个文件,有时是关系数据库中的一条记录,有时是由Object Request Broker(对象请求代理程序)传送的一个对象,有时是到达网络接口的一个字节流。XML文档可使不同系统、不同平台的数据实现统一接口,这就是XML真正的威力所在。下面列举几个使用XML的领域:
文档设计和管理,可利用XML维护公司的文档资料。
Web开发,利用XHTML和XSLT实现的Web页面扩展性更好,更容易维护。
数据库应用和程序开发,可从数据库中提取数据并生成XML文档,实现信息的跨平台、跨系统沟通。
定义其它语言,WML和WAP就是用通过XML建立的。
XML不是什么?
XML只是一种标记语言,不是一种编程语言。不存在一种编译器,把XML文档转化成可执行二进制代码。
XML不是一种网络传输协议,但通过网络协议传输的数据格式则可以是XML格式的。
XML不是数据库,不能替代Oracle或MySQL这类的关系数据库管理系统。