XML程序设计(第二版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-27 08:23:21

点击下载

作者:王震江

出版社:中国铁道出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

XML程序设计(第二版)

XML程序设计(第二版)试读:

版权信息书名:XML程序设计(第二版)作者:王震江出版社:中国铁道出版社出版时间:2015-08ISBN:9787113208035本书由中国铁道出版社授权北京当当科文电子商务有限公司制作与发行。— · 版权所有 侵权必究 · —内容简介

XML已经在Web应用、新型数据库系统、移动互联网技术、网络数据交换和跨平台应用中发挥越来越重要的作用,已成为风靡全球的电子商务的核心技术。

本书全面论述了XML技术的主要方面:XML1.0规范的基本技术要求和规定,XML DTD、XML Schema 2.0、XPath 3.0、XDM 3.0、XPath、XQuery Functions与Operators 3.0、XSLT 2.0、XML DOM Level 3、XML的数据源技术和XML数据库概念,以及HTML、JavaScript、XMLHttpRequest等Web实现和AJAX技术,最后给出一个应用实例。

本书体系完整,采用最新的技术规范,叙述简单扼要,书中大量实例有助于读者对XML技术的理解和学习。本书适合作为本科院校IT类专业、电子商务专业的技术基础课教材,也可作为高等职业院校相关专业教材和社会培训用书。前言(第二版)

XML(eXtensible Markup Language)1.0技术规范从1998年2月10日问世以来,在XML应用技术方面已经发生了翻天覆地的变化,XML作为新一代的数据交换标准和交换文本已经成为今天网络数据交换的新标准,基本取代了上一代的数据交换标准EDI。2004年10月28日发布的XML Schema 2.0技术已经在应用方面日趋成熟,现在在W3C发布的新的XML各种规范中,出现了大量以XML Schema数据模型为基础的描述。XML的应用层出不穷,已经在计算机信息处理、非结构化数据表示、异种平台数据交换与传输、Web编程、网络应用编程、跨平台编程技术等方面得到十分广泛的应用。作为一类文本文件,XML文档和数据可以在Internet上不受任何阻挡,作为各种应用的数据基础承载各种应用,因而以XML为内核的半结构数据库技术,在Web和网络应用程序中具有互操作性好、数据表现灵活、数据类型丰富等特点使得支撑XML的各种技术规范和应用(如AJAX)不断推进和完善,受到行业的大力支持和软件编程人员的欢迎。

本书从第一版出版至今已经9年。这9年中XML从1.0第一版连续更新到第五版。伴随XML的发展,一些原来的技术被弃之不用,一些当时不成熟的技术陆续更新。此次修订,基本上按照W3C最新的技术规范对第一版的内容进行了全面修改,对于原来的内容进行了更新,对原书没有的内容进行了增补。

因为本书的重点放在XML文档的Web应用方面,不是注重于太多的理论,但几乎所有关于XML的应用都离不开HTML。因此,为了那些没有网页设计知识和基础的读者能够较好地掌握XML的应用,本书增加了HTML的内容,在文字、段落、标题、表格、表单、框架、列表、动画与声音等方面简要介绍了HTML的基本内容。

XML文档的查询定位链接的内容有了很大的变化,其中XPath有了很大的发展,而XLink的内容没有太大进展,特别是XPointer基本没有发展,所以本书删除了XLink和XPointer的内容,采用了XPath 3.0,增加了一些新的知识点。另外,还增加了XQuery和XPath Data Model(XDM)3.0、XPath和XQuery Functions与Operators 3.0。

从核心技术上讲,AJAX不是什么新的技术,而是基于XML技术的综合应用技术,目前应用已经十分普遍。作为一本专门讲述XML技术群的书,引入AJAX技术是应该的,也是必须的。但限于篇幅,本书没有太多地讨论AJAX的应用问题。

本书共分11章。第1章概述XML的基础知识、编辑工具、相关技术及其发展,以及Ajax技术。第2章简要介绍HTML 4.0的制表、表单、框架、超级链接、字符控制与多媒体等,为后续的章节提供基础。第3章讲述XML 1.0规范的基本技术要求和规定,对XML的元素、属性、实体等重要概念进行描述。第4章讲述XML文档的元素、元素类型及其定义、XML 1.0提供的内容模型定义等。第5章讲述XML Schema 2.0,包括定义完整的XML数据类型,XML Schema结构,设计XML Schema文档等内容,是XML数据库的基础部分。第6章讲述用于XML文档的查询规范XPath 3.0、XPath和XQuery Functions与Operators 3.0。第7章讲述专门用于XML转换的技术XSLT 2.0,包括样式表、模板规则、样式表设计技术和实现等。第8章讲述XML DOM Level 3,包括DOM内核,以及XML DOM应用和编程。第9章讲述用ASP、ADO实现XML与传统关系数据库连接,XML数据库技术简介。第10章介绍AJAX编程基础,讨论JavaScript的数据类型,程序控制(分支,循环),函数等基础,讨论XMLHttpRequest对象,如何建立Web连接,通过XMLHttpRequest访问XML文档。第11章给出一个简单实例。

为了方便读者学习,每一章都附有习题,通过习题和实验,可以帮助读者加深理解XML技术及其应用的各个方面。本书的实例全部通过上机调试。

本书由王震江编著。参与本书研究工作和资料整理的人员有彭嘉凤、方刚、俞锐刚、马宏、王玉见、欧晓明、李燕,在此向他们表示感谢。

由于编者水平有限,书中难免存在疏漏和不足之处,衷心希望广大读者给予批评指正。编 者2015年6月前言(第一版)

随着Web技术和Internet的广泛应用,HTML的可扩展性、结构化和灵活性已经不能满足应用的需要,其局限性已经影响到Internet应用的发展。1998年2月,W3C提出了XML技术的第一个规范XML 1.0,目标是创建一种标记语言,并同时具备定义严格、语法明确、表示方便、结构良好、适用于所有行业的新的标记定义等特点,用来彻底解决在Internet应用中存在的问题。XML技术源自SGML,它既具备SGML的核心特征,又有HTML的简单性。目前,XML技术已经开始在Web、新型数据库系统中被广泛应用,在未来的计算机网络应用、网络编程、跨平台编程中将发挥越来越重要的作用。

本书共分10章。第1章概述XML的基础知识、编辑工具、相关技术及发展。第2章讲述XML 1.0规范的基本技术要求和规定,对XML的元素、属性、实体等重要概念进行介绍。第3章讲述XML文档的元素、元素类型及其定义、XML 1.0提供的内容模型定义等。第4章讲述XML Schema 2.0,包括定义完整的XML数据类型、XML Schema结构、设计XML Schema文档等内容,是XML数据库的基础部分。第5章讲述CSS 2.0技术规范和要求,用CSS转换XML文档的方法和技巧。第6章讲述专门用于XML转换的技术XSL 2.0,包括样式表、模板规则、样式表设计技术和实现等。第7章讲述用于XML文档的查询链接和检索的规范XPath、XLink、XPointer。第8章讲述XML DOM Level 3,包括DOM内核,以及XML DOM应用和编程。第9章讲述用ASP和ADO实现XML与数据库的连接、SQL Server 2000提供的XML技术支持、XML数据转换成SQL Server 2000数据库的相关技术以及介绍XML数据库技术。第10章讨论建立Web连接和用ASP技术访问XML文档,并在最后给出一个简单的应用实例。

为了方便读者学习,每一章都附有习题,通过练习和实验,可以帮助读者理解XML技术及其应用的各个方面内容。

本书由王震江编著。参与本书研究工作和资料整理的人员有彭嘉凤、王武、梁振碧、方刚、俞锐刚、马宏、王玉见、欧晓明、李燕。在本书的编写工作中,得到了彭嘉凤同志的大力支持,在此表示感谢。由于编者水平有限,书中难免存在疏漏和不足之处,衷心希望广大读者给予批评指正。

在此,对大力支持本书出版的中国铁道出版社的各位编辑表示感谢!编 者2006年3月第1章概述1.1XML技术简介

XML技术是在Internet广泛应用之后,传统的Web技术HTML的可扩展性、结构化和灵活性已经不能满足应用需要,且已经影响到Internet应用发展的背景下提出的。1998年2月,W3C(World Wide Web Consortium)提出了XML技术的第一个规范XML 1.0,目标是创建一种标记语言,并同时具备定义严格、语法明确、表示方便、结构良好、适用于所有行业的新标记定义等,用来彻底解决Internet应用中存在的问题。XML技术源自SGML,它既具备SGML的核心特征,又有HTML的简单性。目前,XML技术已经开始在Web、新型数据库系统中广泛应用,在计算机网络应用、网络编程、跨平台编程、移动互联网、物联网技术中发挥越来越重要的作用。1.1.1 XML的历史

1.SGML

1979年国际标准化组织(ISO)设立了一个文本处理小组,开始开发一种基于GML(Generalized Markup Language)的文本描述语言。1980年,第一个GML工作草案发布。1983年,这个文本描述语言最终演化成SGML(Standard GML),这是一个标准化的信息结构化技术,后来SGML扩展和修改成为一种全面适应工业范围的信息标准。1986年,ISO采纳了SGML。

SGML语言庞大,功能强,体系严密,同时技术比较复杂,价格昂贵,需要大量的软件来支持它,导致运营成本较高。20世纪80年代主要用于电子产品交易、科技文献分类等方面。

2.HTML

HTML(HyperText Markup Language,超文本标记语言)于1989年在欧洲核子物理实验室问世,这个技术采用超文本传输协议(HyperText Transfer Protocol)。

HTML的出现对Internet的爆炸性发展起到了积极的作用,WWW成为人类了解信息、了解世界的一种全新的概念和模式。HTML的巨大成功,使HTML迅速从1.0版本发展成4.0版本。在发展的过程中,给HTML赋予了比最初设想要复杂得多的功能,目的是使HTML完成来自于商业应用、科学研究、信息发布的所有任务,使得HTML的语言失去了最初的简单性,并且在使用HTML时出现了随意性、不规范和不严格等问题。

另一方面,HTML的专用词表有限,用户无法自由增加新标记并进行有效性验证,用HTML来完成不同行业内的数据定义、数据表示,以及行业之间的数据交换很不方便,而随着Internet的广泛应用,这种交换又是必须的、大量的、十分广泛的,这使得HTML捉襟见肘,无法满足这种要求。

3.XML

为了解决HTML在Internet应用中的局限性,1996年,W3C开始寻找在Web中使用SGML的方法。因为,SGML具备HTML所没有的三种优势:可扩展性、结构化和灵活性。他们的目标是创建一种标记语言,这种语言既要具备SGML的核心特征,又要有HTML的简单性。同时具备许多新的特征,如定义严格、语法明确、表示方便、结构良好、适用于所有行业的新的标记定义等。1998年2月10日,W3C发布了XML 1.0规范,这就是XML(Extensible Markup Language),可扩展标记语言。

XML是Web发展到一定阶段的必然产物。W3C在XML 1.0规范中是这样定义XML的:“可扩展标记语言(XML)是用来描述一种称为XML的文件的数据对象,同时也部分地描述了处理这些数据对象的计算机程序的行为。XML是SGML应用的一个子集,或为SGML的某种限制形式。根据指定规格的定义,XML文件是符合规范的SGML文件。”

根据XML 1.0(第5版)规范,XML的设计目标是:

①XML应能直接用于Internet。

②XML应支持广泛的应用。

③XML应与SGML兼容。

④处理XML文档的程序应该容易编写。

⑤XML的可选择性特征保持绝对小,理想情况下为零。

⑥XML文档应该是人易读的且合理清晰的。

⑦XML设计应该是可很快准备好的。

⑧XML文档的设计应该正规和简洁。

⑨XML文档应容易创建。

⑩在XML标记中简洁性可以忽略不计。

XML 1.0规范包含三个主要部分,它们是XML文档内容、文档的逻辑结构、文档的物理结构。

XML文档是由被称为实体的存储单元组成的。实体或者是解析的,或者是不可解析的。解析的数据由字符组成,其中一部分形成字符数据,一部分形成标记。标记对描述XML文档的存储布局和逻辑结构进行编码。XML提供了把各种约束强加在该存储布局和逻辑结构上的机制。

XML文档内容中,包括结构良好性、字符集、通用语法结构、字符数据与标记、注释、处理指令、CDATA节、序言及文档类型定义、文档的独立性声明、空白符处理、行结束控制和语言标识等十余项内容,对书写XML文档的数据给出了详细的规定。

在XML文档的逻辑结构部分,定义了XML文档的标记书写的规则、元素类型声明、属性表声明和条件节等内容,从而规定了XML元素和属性的定义规范。

在XML文档的物理结构中,对字符和实体参考、实体声明、实体解析、XML处理器对实体和参考的处理、构造内部实体替代文本、预定义实体、表示法声明和文档实体等内容,对XML文档中实体的定义、引用、内部和外部实体进行了统一规定。1.1.2 XML与HTML的比较

对于XML的语法,将在后续章节中详细讨论。为了便于理解XML的语法、标记、文件格式,对HTML与XML进行简单的比较讨论是一件有意义的事情,可以帮助我们理解XML。

1.HTML文档

HTML文件是一系列用“<”和“>”符号,把具有特定含义的英文字符串括起来,构造成称为标记的元素来描述语法的。

例1.1一个简单的网页文件。

在HTML文件中出现的标记都是由HTML规范规定的,如、、、

等,每个标记应该有一个结束标记,结束标记由“”包括标记名构成,如

。一个HTML文件必须在第一行写上,最后一行写上来包含所有的内容。浏览器判断一个文件是否为HTML文件,就是根据文件是否包含在和这一对标记中。但是也有几个元素没有结束标记,如

等。目前使用的是W3C在1998年4月24日推出的HTML 4.0规范。

2.XML文档

一个XML文档是由用户自行定义的标记组成的,这些标记与HMTL一样,都使用“<>”来包含标记名。下面来考查一组数据的表示,如表1.1所示。表1.1 学生成绩表

例1.2根据表1.1建立XML文档。

与HTML文件一个最重要的差别是,在每一个XML文档的第一行必须写上命令,用于标识该文件是一个XML文档,也方便XML处理器识别哪些是XML文档,哪些不是XML文档。接下来的内容是用户自定义的根元素标记,根元素必须有一个结束标记,所有用户定义的其他元素都被包含在根元素中,如之间的内容是其他元素标记的定义。每一个标记必须有一个结束标记与之对应。一对标记之间包含的对象称为一个元素。标记的表示与HTML的标记表示一样,都是把标记名放在“<”和“>”中间构成,结束标记是把标记名放在“”之间。如等。但是,XML的标记与HTML的标记名不一样。XML的标记名定义的含义、合法性和有效性,由用户专门在DTD(文档类型定义)或者XML Schema(XML模式)中定义。而HTML的标记名由HTML规范确定。

一般说来,在设计一个标记名时,应该使标记名具有特定的含义,以表示元素的意义。虽然,XML规范没有对哪种语言可以用作标记名做特别的限定,但为了使用方便,建议使用英文字符作为标记名,最好使用与元素名具有相同或相近含义的英文单词作为标记名,如学生名单、学生、姓名、性别等。另外,使用中文字符作为元素名称,也是可行的,如<成绩>、<高等数学>、<程序设计>、<街道>等。

在例1.2中,有一个根元素,根元素下有若干个元素,每个元素下都有标记中还嵌套了下一级子元素,这样的元素嵌套,根据需要可以有许多层次。1.1.3 XML的编辑工具

XML文档是文本文件,任何一种纯文本文件编辑工具都可以用于XML文档的编辑。如记事本、XML Writer、XML SPY等。下面是XML文档编辑器的简介。

1.记事本

Windows中的记事本,是一个文本文件编辑器,也是XML文档最常见的编辑工具。当读者手中一时没有更好的编辑工具时,可以使用记事本来编辑XML文档。Windows 98的记事本没有引入处理Unicode字符集的功能。Windows 2000及其以后版本的记事本提供了处理Unicode字符集的功能。

2.XML Notepad

XML Notepad是微软公司为XML文档编辑特意设计的编辑工具。其界面如图1.1所示,这是一个简单的XML文档编辑器。图1.1 XML Notepad界面

3.Amaya

Amaya是W3C专门为XML设计的开发工具,这是一个比较全面完整的XML开发工具,其界面如图1.2所示。读者可以在http://www.w3.org/中下载该软件。图1.2 Amaya界面

4.XML SPY

XML SPY是Altova公司开发的专用XML编辑管理工具,一共有三个版本:XMLSpy Enterprise Edition/Professional Edition/Home Edition。用户可以获得三个月免费使用的试用版,读者可以在http://www.altova.com/中下载。1.1.4 浏览XML文档

作为Internet上的主要浏览器,一个是微软的Internet Explorer,另一个是网景公司的Navigator(该公司已破产)。微软的浏览器IE 5.5及其以后的版本均支持XML。支持XML的还有W3C推荐的Awaya和Opera。

HTML文件在浏览器上显示,这就是众所周知的网页。HTML文件在IE浏览器上显示效果如图1.3所示,这是一个包含了标题、段落和图形的简单网页。

对于XML文档,在IE浏览器上直接显示的效果如图1.4所示。从图1.4可看出,XML文档在IE浏览器上显示出元素的树状结构,这类似于微软Windows资源管理器中的文件夹的形态。每个元素前的“-”表示该元素已经展开,若某个元素包含下一级子元素,展开后将显示该元素的下级元素,若某个元素前出现“+”,表示这个元素及其下一级子元素被封闭起来。图1.3 HTML程序的浏览效果图1.4 XML文档的浏览器显示效果

这个效果可能出人意料,但是,这就是XML文档应该出现在浏览器中的样子。读者不禁要问:不是要把XML文档作为新一代的Web应用标准来设计吗?不是要让XML代替HTML成为Internet上的主要技术标准吗?用IE浏览器显示XML文档怎么是这个样子?这样的XML能够实现W3C的良好愿望吗?

为了使XML文档在浏览器上显示人们期望得到的效果,可以采用几种技术。图1.5是使用XSL(eXtensible Stylesheet Language)对上面的XML文档进行转换后的显示效果。显然,图中表现的XML文档已经可以满足Internet上的一般应用了。图1.5 经过XSL转换的文档的显示1.1.5 XML的相关技术及其发展

从1998年到现在,XML技术规范从1.0第一版本发展到1.0第五版本。XML不仅在Internet领域,还在各种行业的数据描述和表示方面展现出良好的行为和品质,尤其在电子商务领域的表现十分出色,因而XML得到了广泛应用。现在,在W3C和业界的大力支持下,XML逐渐向广泛的应用领域迅速发展,开始成为Web技术中的核心。同时XML的相关技术也快速出现,基于XML技术核心的软件体系正在逐渐形成。

1.XML数据类型定义

XML文档数据的类型和有效性定义,可以保证XML文档数据的正确性和完整性。在XML技术规范中,通过DTD和XML Schema来定义数据类型。(1)DTD

DTD(Documents Type Definition,文档类型定义)是W3C建议的XML有效性检验的标准,其使用先定义根元素,然后分别定义各级子元素以及元素属性的方式对XML元素(Element)和属性表(Attlist)进行定义,提供十分有限的元素类型来定义元素和属性。(2)XML Schema

XML Schema最开始是微软公司推荐并且在微软产品中通用的XML文档有效性标准,在2001年5月成为W3C的建议规范,W3C一直在致力于适合描述XML内容模型的规范的开发工作。2001年5月3日,W3C发布了XML Schema 1.0规范的推荐版本,并声明这个规范是稳定的,有助于Web互操作性,并且被W3C的成员修订,这些成员来自学术界、业界和研究团体,他们赞成采用这个规范。XML Schema 1.0定义了公用标记词表、使用这些词表的XML文档的结构,以及提供了与这些词表和结构相关的联系。W3C认为:“XML Schema 1.0为XML发挥其全部潜力提供了一个实质构件”。在开发过程中,参与标准制定的各方都一致认为XML Schema 1.0标准的制定将是XML发展历史上意义重大、影响深远的事件。

XML Schema 1.0包含三个模块:结构、数据类型和初级读物(Primer)。结构描述了XML文档的结构和内容模型的约束和规则来操纵文档元素的有效性;数据类型为确定XML的元素和属性的数据类型提供了40多种,允许XML软件在操作数据、数字、时间、串等信息时表现得更好;初级读物是为了读者方便理解XML Schema而写的一个非标准文档,使用了大量的例子来描述XML Schema 1.0。

XML Schema 1.0给XML技术带来更大的灵活性,加速了XML技术在重要领域的应用,因此,也加速了XML Schema的深入发展和进一步成熟。2004年10月28日,W3C发布了XML Schema 2.0规范。(3)XML文档的有效性验证

微软对XML的技术支持主要反映在它的XML解析器MSXML.dll中。这个解析器伴随着XML的发展而发展,从最初的2.0发展到今天的4.0版本,在MS XML 4.0中,引入对XML Schma进行验证的技术支持——SOM(Schema Object Model)。该对象对XML Schema文档进行加载、分析和检验,以确定XML元素定义的有效性。

2.XML文档数据显示和转换技术

XML文档直接在Web浏览器上显示时的形态,上面已经讨论过,这一点与HTML文档的显示不一样。为了解决XML文档的显示问题,需要借助其他技术,下面对这些技术分别进行简单讨论,详细内容可以参考本书后续章节。(1)CSS

CSS(Cascading StyleSheet)原本是为了HTML文档的格式化提出的。1998年XML 1.0规范提出时,还没有相应的XML转换语言,所以使用了人们熟悉的CSS1对XML文档进行格式化。但是CSS1只提供了一些简单的格式标记,除了这些用于格式化HTML的样式元素外,无法满足XML元素进行格式化的要求,如不能为XML很好地工作、没有表格功能等。

1998年,W3C修订了CSS1,扩展了CSS1的功能,使之成为CSS2。CSS2是一个样式表语言,使设计者和用户可以了解CSS2,然后构造HTML文档和XML应用。把文档的样式表示和文档的内容分开,CSS2简化了Web设计和站点维护。(2)XSLT

XSLT(eXtensible Stylesheet Language Transformation)是W3C推荐的XML文档数据的转换技术,于1999年11月提出。可以采用XSLT技术,实现XML文档数据的查询、读写操作。现在使用的是XSLT 2.0版本。

XSLT技术以“模板驱动”的方式访问XML数据,XSLT文件符合XML规范。XSLT处理器可以安装在客户端或服务器端。微软公司的MSXML(XML解析)支持XSLT,可以解析XML和处理XSLT转换。经过XSLT处理的XML数据可以HTML的形式显示在浏览器上。

XSLT包含XSL转换和XSL格式化对象。XSL文档本身是一个定义严格的XML文档,符合XML语法规范。在XSL格式化对象中,通过引进模板(template)访问XML数据元素及其属性。(3)DOM

DOM(Document Object Model)是一组接口集合。这个集合为各种应用程序提供了标准设计接口,各个接口规定了相应的属性、方法和对象。

DOM对XML文档的访问主要以结点访问为基础,从XML数据树状结构的根结点开始,每一个下层元素都作为结点处理。通过对结点的处理,可以实现数据检索、增加和删除等操作,从而实现对XML文档数据的管理。这样,DOM在处理时需要一次性完整地读入XML文档,从而获得XML文档的整个树状结构。

DOM已经出现了三个版本:DOM Level 1、DOM Level 2、DOM Level 3。其中,DOM Level 3是最近期的版本,于2004年7月提出。DOM技术在XML应用中扮演越来越重要的角色,特别是在Web应用编程中有广泛应用,因此受到了业界的普遍重视,XML DOM得以迅速发展。(4)Data Island

Data Island(数据岛)技术是以HTTP来实现网络传输,并显示XML数据文件的另外一种技术。把XML数据文件嵌入HTML文本中的,作为提供数据的模块,借助HTML可以方便地在浏览器上浏览这个XML数据文件,这就是所谓的数据岛技术,也称XML数据源。

XML数据岛分为内部和外部两类。内部数据岛是直接在HTML中通过在元素之间包含XML数据,其数据格式完全符合XML规范。外部数据岛是通过元素的属性src来引用以XML文档形式保存在磁盘上的XML数据。(5)SAX

SAX(Simple API for XML)是另外一个常用的XML文档处理技术。目前SAX还不是W3C的建议规范,是由XML-DEV电子报的一组开发人员进行设计和发展的。在读取XML文档时,顺序地读入XML文档中的元素名和元素值、属性名和属性值。它与DOM的差异类似于磁带和磁盘,SAX只能向前顺序读取XML数据,把XML文档作为一个可读取的字符流,这与磁带的读写类似。而DOM可以完整浏览和更新XML文档数据,这与磁盘的读写类似。

SAX是一组程序设计接口。在加载XML文档时可以部分调入内存,使得内存使用效率比较高,同时可以提高读取速度,提高处理效率。在顺序读取XML文档的场合,SAX可以大大提高XML文档的处理效率。但是,SAX不能随机访问XML,不能方便地对XML数据进行修改。

3.XML的查询、链接、检索

目前XPath、XQuery、XLink是W3C推荐的用于XML文档的查询链接和检索的规范。

XPath 3.0的目标是定义一种定位XML文档各部分的语言。XPath规范定义了两个主要部分:允许到XML文档各个部分的路径说明的表达式语法,另一部分是支持这些表达式的核心库基本函数。XPath是XSLT的基础。

XQuery 3.0是XPath 3.0的扩展。一般情况下,任何在语法上合格和成功运行的XQuery 3.0和XPath 3.0的表达式将返回相同的结果。

XLink(XML Linking Language)称为XML链接语言,它使用XML语法创建与简单HTML的单一方向超链接类似的结构。为了创建和描述资源之间的链接,XLink允许在XML文档内插入元素。XLink提供建立基本单方向链接和更复杂链接结构的框架,使XML文档可以:确定两个以上资源之间的链接关系;把元数据与一个链接联系起来;表示与所链接资源相分离的内部的各种链接。

4.XML数据库技术

XML文档作为数据存储的载体,从一开始就引起了人们对其数据库特性的研究兴趣。XML文档与传统的关系数据库差别较大,如果把XML文档当作数据库处理,如何让它具备关系数据库的安全机制、事务管理、并发操作、数据完整性和一致性统一等技术呢?于是提出了半结构数据库的概念。几年来,关于XML数据库的研究发展很快,已经有了一个基本的框架。

基于XML的数据库系统分为NXD(Native XML Database)和XEDB(XML Enable Database)两类。NXD是以XML文档为基础的数据库管理系统,目前是XML数据库研究的重要课题。XEDB则是在传统的RDBMS中增加了支持XML技术的功能,使得传统数据库系统能够访问XML。(1)NXD

XML文档是一种简单的文本文件,把XML文档作为一种数据存储方式,可以使XML文档具有传统数据库存储数据的基本功能,而访问XML文档数据要比访问传统数据库更简单、更方便。这就是NXD数据库系统。这个数据库模型和概念正处于研究和探索阶段。到目前为止,这个数据库系统的初步概念是:XML文档是数据库的数据区,DTD和XML Schema是数据库的数据定义模型,XSLT、DOM、SAX是数据库数据处理技术,XPath、XLink、XQuery是数据库数据的查询链接工具。这些技术有机地结合在一起,就形成了未来XML数据库的雏形。

NXD可以方便地处理以数据为主的结构化XML文件,也能够方便地处理以文本为中心的XML文档。(2)XEDB

传统关系数据库以表作为数据存储容器,它类似于以数据为中心的XML文档,由XEDB管理的以数据为中心的结构简单的XML文档可以方便地存储到关系数据库中,关系数据表也可以转换成结构简单的XML文档,由XEDB管理。

对于以数据为中心的结构复杂的XML文档,用XEDB来管理,将破坏XML文档的内部结构,同时也使转换时的技术复杂化。因此,用XEDB来管理结构复杂的XML文档时,还需要在传统的关系数据库中加入复杂的XML文档转换的功能。例如,微软的SQL Server 2000中引进了大量的表与XML文档转换的技术,如带批注的XDR架构、FOR XML语句等。

对于以文档为中心的XML文档,XEDB表现不是很好,所以,在研究大量非结构化文本数据的XML文档的处理时,不采用传统数据库的方法。

5.XML的安全技术

XML作为网络上传输和转换的对象,作为重要的Web技术,其安全性十分重要。除了网络安全技术外,从XML技术入手的专用XML安全技术规范已经出台。在标准的XML成分中,增加了一些专用属性,可以提供检验XML文档安全的手段和工具。XML安全技术包括XML加密、XML签名、XML密钥管理规范和XML的访问控制语言等内容。(1)XML加密

XML加密为需要安全地交换数据的应用程序提供端到端的安全服务,XML文档可以整体加密。XML Encryption规范是W3C推荐标准,用于XML文档的加密。除整体加密外,还可以部分加密。加密的数据可以是任意的数据、XML元素、XML内容模型等。(2)XML签名

XML Signature是W3C推荐标准,它支持数据的完整性检验、消息认证、签名者身份认证。XML Signature适用于任何数据内容,可应用于一个或多个数据内容。XML Signature可分为三类:被封装式签字、封装式签字和分离式签字。被封装式签字指Signature元素位于被签字数据块之内。封装式签字是指Signature元素包含了被签字的数据块。分离式签字是指Signature元素和签字的数据相互独立,位于不同的文档内或内容模型中。(3)XML密钥管理规范

XML密钥管理规范是分发和注册公钥信息的规范,它包含如下的内容:XML关键信息服务规范和XML关键注册服务规范。前者支持应用程序把对与XML Signature、XML Encryption或其他公钥关联的密钥信息的处理任务委托给一个网络服务。后者支持密钥对持有者向信任服务系统注册密钥对,从而该密钥对随后可用于前者或更高层的信任断言服务。(4)XML访问控制语言

XML访问控制的目的是为XML文档提供一个精细的访问控制模型和访问控制规范语言。利用这一访问控制技术、访问控制策略可以控制一个XML文档如何显示给用户,如具有某一角色的用户可以查看该文档的某一部分,而这一部分对其他普通用户来说应该是隐藏的。1.2AJAX技术简介1.2.1 什么是AJAX

AJAX(Asynchronous JavaScript and XML,异步JavaScript与XML)是2005年初由Jesse James Garrett提出的一种技术。从字面上看,它是随着XML技术的出现而出现的,而XML是1998年2月提出的,所以AJAX不是什么新的技术,而是一些老技术的综合应用。

AJAX中所谓“异步”,意味着浏览器的工作与数据传输可以不同时,浏览器不必等待从服务器返回的数据,而是在后台处理数据,它既可以在数据返回时处理数据,也可以在数据返回后处理数据。如果浏览器必须等待返回的数据,则应用程序就是同步的。由于Internet的速度问题,同步处理显然存在问题。所以,异步是AJAX的核心。

JavaScript很早就用在网络应用程序中,是一种连接服务器的技术,浏览器通过JavaScript连接到服务器,并处理从服务器上返回的数据。有多种技术可以实现从服务器上取回数据并对数据进行处理,如ASP(Activex Server Page)、PHP(PHP:Hypertext Preprocessor)、ASP.NET、JSP(Java Server Page),JavaScript只是这类技术中的一种,但却十分有效。

XML文档是纯文本文件,对于Internet而言,XML可以通行无阻地畅游在Internet的海洋中,所以,XML在发布后迅速成为Internet上的数据交换标准,现在已经是Web上的通用语言。图1.6 Google Suggest示例

2004年,Google悄然在网络中上线了Google Suggest测试版本,但此产品一直没有受到关注,一直到2005年才引起了公众的注意。Google Suggest在用户输入部分查询参数时,AJAX会使用异步方式查询服务器端数据,返回客户端,为客户端补全查询参数,如图1.6所示。

Google在Gmail、Google Map(见图1.7)等产品中更广泛地应用了AJAX,提供了更好的用户体验。通过这两个杰出的应用,各大网站竞相开始采用AJAX,包括国内的百度、搜搜、淘宝等均采用了类似Google Suggest的方式提供搜索查询服务,同时,网络中各电子邮箱也开始广泛应用AJAX来提高用户体验,如图1.8所示。图1.7 Google Map上的中国国家博物馆图1.8 Yahoo中文邮箱AJAX操作界面1.2.2 AJAX运行模式

AJAX到底能为我们做什么呢?试想,如果Google Map每移动一次观察位置,都要使用“提交-等待-显示-再提交-再等待-再显示……”这样的方法,那么将会有1/5甚至1/2的时间都在等待回传数据,同时每次回传数据仍然包括诸如上方的搜索框、左侧的超链接等内容,这样,势必造成两个最主要的问题:用户花了大量时间在等待白色的屏幕;多次回传的数据中,有很多是相同的,造成了浪费。

在传统同步浏览模式中,用户浏览过程需要经历“查看-提交-等待-显示”这个过程,在“等待”这个过程中,用户不能进行任何操作或浏览,如果需要过多的交互,那么这个“等待”过程必将浪费太多的时间。传统同步的方式,还会在提交与等待间打断用户的操作。

来看一个极端的例子,在填完一个很长的用户注册表单后,提交时,提示用户名已经被注册,返回后,又需要再次填入所有数据,这是因为所有数据的提交必须是同步的,必须等到用户单击“提交”按钮后,才会将请求发送到服务器,服务器这时才能判断用户名是否重名。当然,也能看到有些很长的表单被设计成了多个页面或其他形式,允许用户填入部分数据后,单击“下一步”按钮进入下一个页面或区域,这样做的目的是,将用户的输入以更小的时间段作为分割,即使用户当前表单数据有误,也不至于需要重新填入所有数据,如图1.9所示。

但这仍然不是一个好办法,因为总的等待时间仍然存在,同时用户被更多的中断打断了操作。使用AJAX,可以使用户在填入每一项数据时,浏览器即以异步的形式将填入的数据提交到服务器,在用户填入下面项目的同时,服务器将反馈以异步的形式反馈回客户端,那么用户不必等到最后提交时才知道填入的数据是否符合要求。这样做的好处除了以上几点外,还可以使服务器的负载更加均衡,减轻了服务器的负担,但是这样做也会导致客户端代码增加,客户端数据处理量增大等问题。随着网络和应将更加快速,硬件价格更加低廉,这样异步处理的方式将会获得更高的效率和更好的用户体验,如图1.10所示。图1.9 传统模式图1.10 AJAX模式

传统模式和AJAX模式的区别主要体现在用户体验、交互方式等方面,其主要区别如表1.2所示。表1.2 传统模式与AJAX的比较1.2.3 AJAX所使用的技术

以Google为首的软件企业正在寻求一种“浏览器即操作系统”的解决方案,而AJAX或许是这个方向的开拓者。

AJAX本身并不能完全算是一种技术,它是多种技术间的协作。AJAX是使用JavaScript将XHTML、DOM、CSS、XSLT、XML HttpRequest和后台程序技术整合而得到的产物,可以说,AJAX是使用了老技术、新思想而获得成功的典型。

AJAX的核心是XMLHttpRequest对象,这个对象一直到1999年IE 5.0的发布才出现,而随着各浏览器的发展,IE系列和FireFox类(Mozilla的FireFox、Netscape的Navigator、Opera、Safari等)逐渐分成两大阵营,两系列浏览器所创建XMLHttpRequest的方法不尽相同,随着IE更多地支持W3C标准,在IE 7.0推出后,对于XMLHttpRequest的创建方式,已经可以和FireFox类一样了,这对开发者来说是一件好事。

XMLHttpRequest提供了一种类似“代理”的机制来异步传送数据,这区别于传统的方式。通过这样的方式,客户端和服务器间仅仅传送需要变化的数据部分即可,而对于页面格式部分不用再次传送,这样做的一个明显好处就是页面不刷新即可实现数据由客户端到服务器间的双向传送,如图1.11和图1.12所示。图1.11 传统交互模式图1.12 AJAX交互模式1.2.4 AJAX的用处

使用AJAX可以做很多事情,如创建实时搜索、实现聊天程序、处理电子表格、登录、下载图像、玩游戏、动态修改网页等。习题1

1.什么是SGML?

2.什么是XML?为什么要用XML?

3.XML与HTML有何异同?

4.XML数据的转换技术有哪些?

5.请叙述XML数据库的基本构成。

6.什么是AJAX,有哪些技术构成?第2章HTML技术2.1概述

1990年,Tim Berners-Lee和欧洲核子物理实验室(European Laboratory for Particle Physics,CERN)的研究人员一起得到了一个从Internet服务器上取回并显示文档的有效的办法,这些文档采用超文本规则,这就是最初的HTML(HyperText Markup Language,超文本标记语言)。

1993年,Marc Andresson领导的美国国家计算机应用中心(National Center for Supercomputing Applications,NCSA)的一个开发小组开发出真正的WWW的Web浏览器,名为Mosaic。Marc Andresson后来建立了Netscape公司,Netscape公司对Mosaic又进行了改进。Mosaic被商业化后,成为Microsoft公司的Internet Explorer的前身。今天的Internet Explorer就是在Mosaic的基础上开发出来的。

1995年11月,Internet Engineering Task Force在整理以前的Web应用的基础上,开发了HTML 2.0规范。后来相继出现了HTML+和HTML 3.0。

1996年,World Wide Web Consortium(W3C)的HTML工作组开始组织编撰了新的规范,1997年HTML 3.2问世。在HTML 3.2问世以前,在不同浏览器上看到的同一HTML文档,可能会有不同的表现形式,这个问题在HTML 3.2中得到了解决。

1999年,HTML 4.0将原来的HTML语言扩展到了一些新领域,如样式表单、脚本语言、帧结构、内嵌对象、动态文字等。

本章以HTML 4.0为基础进行讨论。2.2提出问题

1.典型的商业网站

新浪网是一个以信息发布为主的商业网站,其内容十分丰富,几乎囊括了政治、经济、生活、学习的方方面面。经常上网的读者对这样的页面是十分熟悉的,图2.1所示是新浪网的首页。

这个版面显示的信息多,内容庞大,但不凌乱。读者对新浪网首页的分析,能得出什么样的结论?图2.1 新浪网的首页

2.一个教学课件

为了方便网页设计课程的教学,笔者曾经用HTML编写了一个网页教学的课件,图2.2所示是这个课件的首页。整个系统把浏览器的显示窗口分为标题栏、菜单栏、主页和代码显示四个区域。顶部显示标题;左边是菜单栏,菜单项是基本的网页技术,如文字、表格、表单等;中间的区域将显示单击左边各个菜单项目后的显示结果;而右边的区域则用来展示与该菜单项对应的HTML代码。图2.2 一个教学课件的网页示意

图2.3所示是单击“文字”菜单项后的页面效果,该页同时展示了代码(右边部分),以及与代码对应的显示效果(中间部分)。图2.3 在图2.2的网页上单击“文字”菜单的效果

3.问题的提出

通过这三个网页,读者会有什么样的感性认识?从中会有什么样的启示?通过这三个网页,至少可以提出如下问题:

①一个网页应该怎样规划和布局,才能结合网页的主题有效地利用其有限的空间显示尽可能多的信息?新浪网的首页是如何规划的?图2.2的课件又是如何规划的?

②一个网页应该包含哪些基本要素,应该如何设计?

③页面的字体、颜色、背景怎样搭配才能使人赏心悦目?

④菜单怎样设计的,如何才能实现菜单功能?

⑤图形、动画、声音如何在网页中实现?

本章的内容将结合上述问题展开HTML 4.0技术的讨论。2.3HTML语法2.3.1 HTML语法基础

1.元素

HTML语言中,所有命令都由元素表示。元素由符号“<”和“>”包含的元素名而构成,这些元素名不能随意更改,全部由HTML 4.0规范规定,如、、等。在编写网页程序时必须使用这些元素。

有的元素必须要与结束标记配对。在符号“<”和“>”之间的关键词前加上“/”,就构成了结束标记,如

、、。

有的元素可以独立实现其功能,不需要结束元素,如


,这些元素称为空元素。

注意: 在XML中是不允许这种无结束标记的元素出现在程序中的,所以XML问世后,所有的HTML程序的编写必须符合XML 1.0关于结构良好性和合格名称的要求来编写。

在书写元素时,在“<”和关键词之间不能有空格,如< body>是不允许的。

在HTML语言中,所有的显示内容都由元素引出,元素的格式如下:

<元素名>显示内容

2.属性

大多数元素拥有隶属于自己的若干个属性。每个元素的属性只在元素内发生作用。每个属性使元素在某个方面起作用。如中,元素的属性bgcolor的作用是设置网页显示区的背景颜色;bgcolor后边的等号是给该属性赋值,等号后的双引号中的内容是颜色值。

注意: 这对双引号是必须的,也可以用一对单引号,不能忽略。

3.注释

在HTML中注释可以被系统识别,但不被翻译成网页元素显示在网页上。注释由“”结束,中间放置注释语言。如:

4.特殊符号的显示

有时需要表示用来作为元素成分的符号,如“<”和“>”,这就需要特别的规定,表2.1中给出了特殊字符集的转义表示。表2.1 特殊字符集的转义表示2.3.2 简单网页设计

从一个简单网页开始,然后围绕这个网页展开HTML程序设计的详细讨论。

1.一个简单的网页设计

例2.1设计一个程序,显示如图2.4所示的网页(ch2-1.htm)。

2.网页程序的结构

一般用HTML语言编写的网页程序的结构如图2.5所示。图2.4 一个简单的网页设计图2.5 网页文件的结构

所有的网页程序必须把网页语句行包含在和之间,并且用.htm或.html作为扩展名。凡是这类文件,系统自动识别为网页文件。

在和之间的内容基本分为两大类,一类是浏览器环境设置,一类是显示在浏览器可视区中的信息主体。前者包含在和元素内,后者包含在诸如一类的块级元素内。块级元素用于显示网页的信息主体,在HTML中,常用的块级元素有、

、。

和之间封装了网页的可视内容,一般来说是不可缺少的。

用于表格设计,可以代替和,但习惯上总是把和
嵌套在和内部。今天,用来规划网页是一种非常流行的方法。新浪网首页就是用
来规划的。

和是HTML中专门用于规划网页的元素,使用时代替和成为下的顶级元素。由于和规划的网页会使网页变得比较复杂,所以它适合于内容较少较简单的网页设计。图2.2的课件就是用和规划的。

3.元素

程序ch2-1.htm中使用了头元素,这是网页程序中重要的顶级元素。其中嵌套了,它还可以包含样式<style></style>

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载