返回首页
当前位置: 主页 > 航空资料 > 计算机 >

XML高级编程上

时间:2010-08-09 13:05来源:蓝天飞行翻译 作者:admin 点击:
  

第1章XML 简介
本章我们将简要讨论X M L的历史起源,并理解与X M L相关的技术的关键部分是如何协同工
作的。沿着这条思路,我们还将研究X M L的基本特征,以及此项技术对过去及未来的We b体系
结构产生的冲击。我们希望这些能够为大家深入挖掘本书其他部分的精华提供一个坚实的基础。
1.1 标记语言
早在印刷出版技术出现时,作者就曾经在草稿上做出各种说明,指导印刷工人如何处理版
面排放以及其他制作问题。这些说明被称作标记,而协调一致用来定义整套语法和文法的标记
集合则被称作语言。例如,校对者就是用手写的标记语言( markup language,M L)与作者交流
文字的正确与否。即使是现代的标点符号的使用也是某种形式的标记,因为它告诉读者如何对
一段文本进行断句。大多数M L都非常特殊,以便使标记与其涉及的文本区分开来。校对者的标
记使用的是草体的手写文字和特殊符号,这就与印刷体的文本有着明显的不同。同样,标点符
号本身就非常特殊,不可能与代表文本内容的数字与字母相混淆。由于某些标点符号对于理解
和排放印刷文字来说是不可或缺的,所以被包含进了A S C I I码字符集—用于几乎所有现代计算
机的基本字符集。因此,这些符号也成为了现代编程语言语法的一部分,应该说,符号的标准
化使其又一次占据了重要的地位,不再是仅仅发挥语言标点的作用。
A S C I I标准中还定义了一组用来标记数据传输结构的符号(“C 0控制字符”,其十六进制值为
从0 0到1 F)。这些符号中只有一小部分被广泛接受,而且它们的使用也曾经常常出现矛盾。这其
中最常见的就是用来界定文档中一行文本的字符。
电传打字机使用的是基于物理动作的字符对C R - L F(回车,换行),此后的M S - D O S和M S -
Wi n d o w s也承袭了这种习惯。与此相反的是, U n i x只用一个L F字符,M a c O S只用一个C R字符来
界定一行文本。由于存在这些冲突和A S C I I码的非标准使用,这些系统之间的文档交换就必需要
有一个转换步骤—即便是简单的文本文件如果没有经过这个过程也不能被共享—这仅仅是最
简单的标记问题,它甚至没有涉及到如何组成一“行”文本的问题。大多数字处理程序都淘汰了
文本“行”的概念,而代之以“段落”,将行结束标记当作段落尾对待,A S C I I码句号-空格(“.”),
句号-空格-空格(“.”)则被用来界定语句(虽然这种方法并不完美)。
有各式各样的分隔符用来定义内容的分界,特殊符号的形状,文本的表现形式,以及其他
特殊的文档特征。例如,C和C + +程序语言使用大括号{⋯⋯}来界定数据或代码单元,例如函数、
数据结构、对象定义,等等。主要用于手工编辑的排版语言则可能使用更易阅读的字符串,例
如. b e g i n和. e n d。其他语言也可能使用其他字符或者字符串—它们也常常被称作标记( t a g)。
当然,在不同的标记集之间及其解释上经常会出现冲突。如果没有通用的分隔符表,没有通用
的内部数据格式,要将数据从一种格式转变为另一种格式就会非常困难,更不用说在不同的应
用和组织之间共享数据了。
1 9 6 9年,人类第一次登上了月球。与此同时, I B M的研究人员Ed Mosher,Ray Lorie和
Charles F. Goldfarb 发明了第一种现代标记语言—通用标记语言( Generalized Markup
L a n g u a g e,G M L)。G M L是一种自参考的语言,它可以用于标记任何数据集合的结构,同时它
也是一种元语言( m e t a - l a n g u a g e)—能够描述其他语言及其语法和词汇表的语言。此后,
G M L发展成了标准通用标记语言( Standard Generalized Markup Language,S G M L)。1 9 8 6年,
S G M L被国际标准化组织( I S O)接受为国际性的数据存储和交换的标准,并收录在ISO 8879当
中(参见h t t p : / / w w w. i s o . c h)。考虑到We b对人类商业和通信行为产生的巨大影响,我们有理由相
信,在技术发展史上, G M L的悄悄问世可能是比人类第一次到另一个天体上冒险更为重要的事
件。
“标记”是一种传输元数据(即关于数据集本身的信息)的方法。标记语言使用文字串或
“标记”来界定和描述这些数据。
下面是一个非常简单的S G M L文档的样例:
程序清单1 - 1
S G M L是一种非常强大(当然也相当复杂)的标记语言,它已经被美国政府及其合同商、大
型制造公司、信息技术发布者广泛采用。出版商也经常使用S G M L制作各类纸张文档,如书籍、
报告、参考手册等。然后,这些S G M L文档会被转换为合适的格式,接着交给排版者和印刷者处
理。S G M L还被用来将技术规范应用于生产制造。但是,它的复杂性及其实现所需要的大量资金
又意味着大多数商业用户和个人用户无法享受此项技术所带来的益处。
你可以在http://www.oasis-open.org/cover了解到有关SGML的更多信息。
不过,随着万维网实现技术的不断进步,必将驱动我们寻找到一种更为简便的途径。
1.2 XML的起源和目的
1 9 9 6年,万维网协会(或者叫W 3 C,h t t p : / / w w w. w 3 c . o rg)开始设计一种可扩展的标记语言,
使其能够将S G M L的灵活性和强大功能与已经被广泛采用的H T M L结合起来。这种后来变成
X M L的语言继承了S G M L的规范,而且实际上就是后者的一个子集。从S G M L入手使得该设计小
组能够将精力集中在简化已有的成果上。S G M L已经提供了一种可以无限扩展的语言,它允许任
何人能够根据自己的需要加以扩充。X M L之所以要较S G M L更为简化,很大程度上是出于易用
性的考虑:人们对标记的读写过程应该使用现有的、简便通用的工具,同时,我们也应当简化
2使用XML 高级编程
下载
计算机对文档和数据交换的处理。由于有太多的可选功能, S G M L变得过于复杂,以至于很难编
写出针对这种语言的普通解释器,而X M L的解释器则简单得多。此外, X M L使得现有的I n t e r n e t
 
中国航空网 www.aero.cn
民航翻译 www.aviation.cn
本文链接地址:XML高级编程上
 

------分隔线----------------------------