首页>参考读物>计算机科学与技术>综合

XML高级编程
作者 : Didier Martin
译者 : 李喆 严春莹 马琳
出版日期 : 2001-01-01
ISBN : 7-111-07315-0
定价 : 95.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 944
开本 : 16开
原书名 : Professional XML
原出版社: Wrox
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书着重于将XML作为一种开放技术的实现应用工具,用通俗易懂的专业语言介绍了精彩的设计技巧,展示了如何在支持XML的应用程序与Web应用程序和数据库系统之间提供接口。无论你的需求是面向数据交换还是可视化风格,都能在本书中找到相关技术。
本书适用于任何希望用XML构建应用程序和系统的读者,Web站点的开发者能够学到把自己的站点提高到一个新的层次上的技术,编程人员和软件系统程序员能够学到在自身系统的那些部分使用XML的方法,以及如何使用它来解决应用程序集成中的问题。

图书特色

作 者 简 介
Didier Martin
Didier PH Martin已经和电脑打了21年的交道。即便如此,他仍然喜欢接触各类新技术,而XML工具对他来说就好像是圣诞节收到的新奇玩具一般。在从事了许多工作—开发财务软件包、制造机器人、甚至制作视频游戏—之后,Didier迷上了SGML,然后是XML。从此他开始投入极大的热情来进行标记技术的研究。现在,他已经成为Talva Corp的首席执行官,而且非常喜欢和自己的同事一起共同开发下一代的XML工具。他的座右铭是:“与众不同的想法会使你变得更加聪明”。
Mark Birbeck
Mark Birbeck作为一名专业程序员已经工作了18年有余。他曾经精通Z80和6502汇编语言,并在早期的Unix系统上编制过C语言程序。在他的脑海里能够清楚地回忆起许多重要的时刻—Windows在何时真正成为能在其上编制程序的平台,微软从哪一天开始把它的C编译器称作C++。他也没有忘记第一次看到Web服务器运作时的情景。但是,这一切与他第一次接触XML相比,都显得那么的无关紧要—即便到了现在也是如此。目前,他的公司—xport.net—专门开发XML工具以帮助人们构建门户站点。
Mark希望本书的所有读者能够谅解在他所撰写的章节中出现的失误与不足,即便我们认为不会有谁会产生这样的抱怨。
Michael Kay
Michael Kay在一家IT服务公司ICL工作,负责研究最新的技术和为自己的宣传投放广告,主要集中在信息管理方面。他的成名作是开放源XSL处理器SAXON。作为一名博士,Michael的专长是数据库管理:过去他曾经设计过从面向对象的数据库到文本搜索引擎的许多ICL软件,他也是包括ANSI X3H2在内的标准组织的成员,负责SQL。他所负责的最新的XML项目是为一家有线电视公司设计通信骨干,用以在各类由内部或由供应者操作的系统之间交换数据。在个人应用方面,他还加强了XML在家族历史数据交换方面的使用。Michael的办公地点在英国Bracknell。
Brian Loesgen Brian Loesgen是Stellcom Inc.(办公地点在圣地亚哥的一家重要公司,主要业务是Internet解决方案)的资深软件设计师。在Stellcom,Brain参与了一些目前来说最为高级的Web应用程序的开发项目。Brian曾经在许多国际技术会议上发表过演讲,并以不放过任何可能导致技术革命的机会而著称。他非常喜欢从事尖端软件的开发并把最新的技术应用到现实生活中为人们带来巨大的利益。
Brian的E-mail是bloesgen @ msn.com. Stephen Mohr Stephen Mohr是Omicron Consulting的资深系统工程师。在过去的十年里,他专注在PC的计算平台上,设计和开发了使用C++、Java、JavaScript、COM和各种互联标准与协议的系统。他最新的成果包括XML在应用程序集成方面的尝试。Stephen拥有Rensselaer Polytechnic Institute的计算机科学BS和MS学位。他的研究领域包括基于对象的分布式计算和人工智能的实践应用。
Jonathan Pinnock
早在摩尔定律提出以前,Jonathan Pinnock就在自己学校的只有4KB内存的PDP 8/e上用Pal Ⅲ汇编程序进行过编程。在剑桥大学研究了三年数学之后,他为了生计又再次干起了编程的老行当。这些日子,他主要在伦敦充当独立编程者和顾问的角色。他也是Professional DCOM Application Development一书的作者。
Jonathan与他的妻子和两个孩子生活在英国的Hertfordshire。他个人比较有趣的Web站点设在http://www.jpassoc.co.uk,读者可以通过jon@jpassoc.co.uk和他联络。
Steven Livingstone
Steven的办公地点设在苏格兰的Glasgow,专注于开发用于商业目的的分布式Web应用程序,以及用Site Server和XML创建电子商务应用。此外,他还负责维护两个站点citix.com和deltabiz.com。在deltabiz.com中,他正致力于一项令人振奋的项目—用BizTalk和SOAP开发一系列下一代电子商务产品。大家可以通过电子邮件和Steven联络:ceo@citix.com。
Peter Stark
Peter Stark是Phone.com的系统工程师。从WAP论坛开创之日起他就在为之工作:第一年在协议组,第二年在应用程序组,专门从事WML和WMLScript开发。他也是Phone.com在W3C HTML工作组(专门从事HTML的XML变种XHTML)的代表。Peter原先住在瑞典,现在移居到加利福利亚的旧金山。
Kevin Williams
Kevin在计算机方面的第一次尝试是他在10岁时(1980年)参加了本地社区大学的使用PDP-9的BASIC班,12岁时他连续4天在自己的Atari 400上手工汇编6502代码。他的职业生涯主要专注于Windows开发—开始是客户机-服务器,然后是Internet工作。他在许多方面都有所涉足,从VB到Powerbuilder、Delphi、C/C++、MSAM到ISAPI、CGI、ASP、HTML、XML、以及其他任何你可能想到的术语缩写,但最近他的注意力完全集中到了XML上。Kevin现在正与Mortgage Banker's Association of America协作,帮助他们将XML标准应用到抵押业务中。
Richard Anderson
Richard Anderson是一名坚定不移的软件开发人员,他已经和微软的技术打了近十年的交道。他所供职的公司是Peterborough(英国某地)的一家规模虽小但却全球闻名的软件工作室,职位是“开发和研究经理”。这意味着他需要接触许多最新的技术,然后告诉大家它们是如何工作的,保证他们正确地理解和成功地应用到自己的程序中。他也亲自编写应用程序,并负责管理和指导C++和VB开发人员。大家可以通过Richard的私人电子邮件账号同他联络:rja@arpsolutions.demon.co.uk。
Nikola Ozu
Nikola Ozu是一名住在Wyoming的系统工程师和顾问。现在他正致力于一套用于体系结构和设计者的XML词汇表。他最近的工作包括将XML用做创作的基础,医药和兽医学参考书籍和数据库的出版者的索引系统。而之前他还从事过从基于主机的图书馆系统到嵌入式操作系统(telecom、robotics、toys、arcade games)的诸多工作。90年代初,他是Health Reference Center和InfoTrac CD-ROM产品的设计者和开发领导者。
Bruce Peat
Bruce Peat是XML/edi组(专注于改进电子商务的一个基层组织)的创始人之一。该组织自1997年7月以来在加强XML对全球商务解决方案的作用方面的努力给业界带来了不小的惊喜——读者可以访问http://www.XMLedi.org了解更多的信息。他高昂的工作热情和人们对于这个小组的努力的高度评价促使Bruce开办了eProcess Solutions,一家专注于开发基于XML的商业交换进程和渠道的管理和技术顾问公司(http://www.eProcessSolutions.com)。
David Baliles David Baliles在微软公司供职,主要负责他们的Site Server和IIS产品的支持和开发工作。除了微软,David还曾经用Electronic Data Systems(EDS)从事工作,供职于亚特兰大的Center for Disease Control & Prevention,以及Equifax E-Business Solutions,在这里他把微软最新的服务器产品和Web开发技术应用到了现有的企业架构当中。除了在微软负责的工作,David还喜欢钻研基于XML的新技术,以及开发自己的音频标记语言,AUML。业余时间,他喜欢和妻子朋友共度时光。
David欢迎大家通过电子邮件和他联络:dbaliles@dndconsulting.com。

图书前言

可扩展标记语言(Extensible Markup Language, XML)作为一种计算技术出现不过是短短几年前的事情。它是一种概念,以其简便性而颇得人心,它驱动了Internet应用程序编写方式的动态改变。

本书的覆盖范围

本书解释和演示了设计、使用、显示XML文档所必需的技术。首先也是最重要的,本书覆盖了万维网协会(W3C)整理编撰的XML的全部基础内容。W3C是以正统方式发明XML的标准主体并在不断开发XML的规范。虽然有越来越多的XML社团在不断涌现并提出崭新的超出W3C控制之外的与XML相关的想法,但W3C对于XML的开发来说,仍然是非常重要并处于中心地位的。

本书的焦点集中在如何使XML与现实生活中的应用结合在一起。它展示了很好的设计技术,演示了如何在支持XML的应用程序与Web应用程序和数据库系统之间提供接口。它研究了XML的尖端部分并预览了一些新兴技术。不管你的需要是针对数据交换还是显示样式化,本书都会覆盖XML领域的所有相关技术。

本书中的每一章都包含一个实践范例。由于XML是一种独立于平台的技术,所有这些例子覆盖了各种语言、解析器和服务器。所有的技术都与所有的平台有着某种关系,所以即便它们不是在你最习惯的平台上实现的,你仍然可以从这些例子中得到许多有益的知识。

本书的读者群

本书适用于任何希望使用XML构建应用程序和系统的读者。Web站点的开发者能够学到把自己的站点提高一个层次的技术,而编程者和软件系统程序员能够学到XML如何和他们的系统相配合,以及如何使用它来解决应用程序集成中的问题。

XML应用程序天生就具备分布性而且通常是面向Web的。本书并不是一本专注于分布式系统或Web开发的著作,所以你不必深入了解这些领域的内容。大概了解Web中的多层结构和网络互联就已经足够了。

本书中的样例使用了各种各样的编程语言和技术。XML之所以吸引人,很重要的一点就在于它是独立于平台和语言的。如果你做过一些Web开发,肯定会发现其中的某些例子你曾经用自己偏爱的语言编写过。如果你没有发现针对自己的平台的任何例子,也不要担心。用于XML的工具已经有了Perl、C++、Java、JavaScript和任何支持COM的语言版本。Microsoft Internet Explorer(主要是5.0或更新的版本)拥有很强的XML内置功能,而Mozilla浏览器也有类似的支持。XML工具还深入到了主要的关系型数据库管理系统,以及Web和应用程序服务器当中。如果本书没有涉及到你的平台,学习XML的基础并掌握例子中所包含的技术,就能够把学到的经验应用到任何普通的计算平台上。

本书的组织结构

本书的每一章都有一个关于XML的单独主题。第1章提供了XML主要特点的概念性介绍。第2章和第3章关系非常密切,因为它们都涉及XML的基础。第2章涉及XML的基本语法和规则。第3章提供了正式定义针对自己特定问题的XML词汇表的工具。但是,此后的章节因本身介绍的技术和技巧的不同相对非常独立。

本书的主要章节是和一个统一的例子紧密相关的。这个例子假设一个出版商希望用XML表单显示自己的数据目录。开始时,我们设计出目录中书籍的描述规则,然后构建那些规则逐个演示每种技术是如何帮助我们构建XML应用程序的。你将看到书籍目录如何转变成文档,每个文档如何用代码操作和访问,它们的内容如何样式化以便于人们阅读。既然从实践来说,这类应用程序不可能凭空存在,所以我们将看到XML应用程序如何与数据库接口。

这些是贯穿全书的、在此后的章节中将重点突出的几个主线。这使得你能够在通读全书时把注意力集中在那些对于你非常重要的问题上,而跳过其他章节。

学习主线

XML是从一种简单的文档标记语言逐步发展成为涉及范围广泛的标记技术的。这种成长也正是XML应用程序的强大所在。但是,随着这种成长也出现了分歧。不同的读者可能会抱着不同的期待来阅读本书。XML对于不同的人来说是完全不同的事情。虽然我们希望大家能够逐章地阅读全书,但这并不是必须的。实际上,对于任何接触本书的人来说这都不是最好的方式。

本书是由从一个核心辐射出去的三个主线组成的。读者当然可以从第1章开始,然后按顺序逐章阅读到最后一章,但读者也可以根据自己的需要找到一个更为直接的途径。每个人应该阅读本书的核心章节以理解XML包含的基本内容。以此作为开始,你可以从数据的角度或者从内容的可视化和样式化这个角度来了解XML。

1. 核心

第2章(XML)和第3章(DTD)覆盖了XML 1.0的基础内容。第2章给了我们基本语法概念,第3章告诉我们如何以一种每个XML编程者都能够理解的方式正规地定义XML词汇表。这些章节提供了理解和使用XML所必需的最基本内容。第4章(关于数据建模)在创建良好的XML结构方面为读者提供了有效的指导和经验。从一个不佳的XML词汇表中恢复过来是非常困难的,而好的结构将免除许多编程错误。第5章向大家讲解了文档对象模型(DOM),W3C用于XML文档的API,以及其他诸多事物。这将引导大家走出文档的范畴进入应用程序的世界。

这四章对于读者开始XML应用程序的编程来说已经足够了。当你读完它们之后,你将理解XML是什么,如何筹划它的结构,如何用代码操作XML文档。虽然XML技巧资源已经相当丰富,但你仍需要首先打好坚实的基础。

所以关键的主线包括:

第2章:格式正规的XML

第3章:文档类型定义

第4章:数据建模

第5章:文档对象模型

2. 作为数据的XM
L
正如你在核心章节中看到的,XML和HTML不同,它清晰划分出文档内容和可视化显示两个部分。实际上,从许多应用程序的目的出发,XML文档的可视化显示并不重要。这些应用程序把XML看作是数据。它的意思就是把XML当作程序和系统之间的接口使用。这可能是现在XML最令人振奋的特征—特别是XML能够使电子商务成为从事商务交易处理的Web应用程序的一种技术。

第6章将从这一线索开始。它讨论了一种用于操作XML文档的由事件驱动的API(被称作SAX)。这种API对于处理大容量的XML、XML流或者你在解析器中留下最少的痕迹的时候特别有用。第7章介绍了命名空间和模式,这两个领域使我们能够以比DTD更有效和更富有创造性的方式来表达概念。它们是XML中描述数据的核心。

第8章向大家演示了如何链接文档和在文档中针对特定元素进行查询。在本书样例中使用的查询技术实际起源于XML的样式化,所以本章还承当了显示主线的双重重任。它在这条主线中对于展示查询如何快速找到所需元素,以及如何将不同XML文档关联起来非常有用。第9章(操作XML)也涵盖了出于各类目的转换XML文档的种种技术。从数据的角度讲这非常有趣,因为它展示了一些在词汇表之间转化的非常强大的技术。我们将证明,对于数据交换,特别是在电子商务和B2B的环境下,它是非常有用的。此外,本章也会涉及到显示主线,因为它介绍了将XML文档转换为其他语言的思想,这是有助于向用户显示XML内容的。

第10章(XML和数据库)全是关于数据的。关系型数据库和XML是获取数据用于计算的两种途径,但是它们所扮演的角色不同。本章将教会大家如何在传统方法和数据存储之间提供接口以便于XML的使用。第11章(服务器到服务器)将介绍当我们无法从本地得到数据时如何到达另外一个服务器。这种新奇的技巧将变得越来越普通,因为Web应用程序正逐渐走向计算技术的前台。接下来,第12章会利用前两章的信息来讨论XML如何作为电子商务的信息媒介来使用。在这个例子中,另一台服务器属于一个商业合作伙伴。他们会根据具体情况利用XML解决数据交换的问题并说明具体细节。

这条主线的一个题外话就是对无线应用协议(Wireless Application Protocol, WAP)的讨论,它与第14章中XML在无线标记语言(Wireless Markup Language, WAL)中的使用有着关系。WAP所关心的大部分内容是如何把XML的冗长形式变形为简练的二进制表示,在不失去以往优势的同时也适合移动设备使用。考虑这个问题并了解WAP的解决方案会使我们更加感叹XML作为数据交换介质的优势。此外,如果XML用来存储和传输数据,我们可能希望把自己数据放到所有的普通数据设备上,而越来越多的无线设备(例如蜂窝电话和专用Web设备)会成为我们的选择。

所以XML作为数据的这条主线包括:

第6章:SAX:XML的简单API

第7章:命名空间和模式

第8章:链接和查询

第9章:操作XML

第10章:XML和数据库

第11章:服务器到服务器

第12章:电子商务

第14章:WAP和WML

3. XML的可视化显示

XML的数据处理对于在机器之间移动数据来说是再好不过了,但是如果你要把XML传递给人的话,就会对它的样式处理比较感兴趣。和大多数注重于数据的传统计算领域(例如关系型数据库)不同,XML的研究者们在如何显示数据方面花费的心思相当地少。XML的解决方案都是数据驱动型的。不管我们使用的是CSS还是XSL,我们将样式单中的数据应用到XML文档中的数据上,以产生适合人们阅读的可视化显示。

第8章(链接和查询)将以此为线索开始。这是因为查询技术的一个子集允许编程者指定一个标准集,用来选择文档中必须样式化的部分。样式化要精确到能够指定如何根据特定元素所处位置的上下文关系来实现。相同类型的元素可能因为它们父元素的不同,或者周边显示的不同而以不同的面貌出现在大家面前。第9章将告诉编程者根据适当的环境,在需要时把XML转换成适合显示的某些其他格式的技术。这正是数据驱动的样式化的核心所在。

第13章(样式化)在第8章和第9章的基础上告诉读者如何对XML样式化。我们的样式单将成为强大的规则集合,能够应用于XML文档的数据以产生可视化的显示。从一个数据集,你可以快速而有效地产生用于显示的多种视图。这就是把数据与显示实现分离开来的好处。

第14章(WAP)也包含在显示主线当中,因为样式化对于小型设备来说是一种很重要的选择,而小型设备是无线通信的主要用户。它帮助设计者解决如何压缩可视化内容以适应非常小的显示区域。这就将数据副本的考虑和数据压缩结合在了一起,以适合低带宽的网络使用。因为我们的样式是由样式单驱动而不是嵌入在数据当中的,所以我们能够专门针对无线设备创建一种有效的显示格式。

总而言之,我们的显示主线包括:

第8章:链接和查询

第9章:操作XML

第13章:样式化

第14章:WAP

阅读本书前的准备

本书假设你已经掌握了一些关于HTML、JavaScript、Java和ASP的知识。如果你不熟悉Java或ASP,它并不会妨碍你了解隐含在主题后面的概念,它们的影响会限制在一个较小的范围内。但是,为了能够使用本书中提到的所有样例,你必须得有一个浏览器,一个兼容ASP的Web服务器(例如Microsoft的Personal Web Server)并(作为运行Java程序的最小环境)安装Sun Java运行时环境(JRE)。

Personal Web Server(用于Windows 9x机器)可以作为NT4 Option Pack的一部分免费下载:

http://www.microsoft.com/ntserver/nts/downloads/recommended/NT4OptPk/default.asp

在同样的地址你可以下载IIS for Windows NT 4。Windows 2000 Professional预装了支持ASP的Web服务器,但是你需要从定制安装中进行选择,而不能采用典型安装。

JRE能够从以下地址免费得到:

http://www.java.sun.com/products/jdk/1.2/jre/index.html

本书涉及代码的全部内容都可以从http://www.wrox.com下载。

保持联络

如果大家能够对本书提出宝贵的意见和建议,我们将不胜感激。我们的电子邮件地址是:

feedback@wrox.com

大家也可以通过反馈链接和我们联络:

http://www.wrox.com

本书原书书号为ISBN 1-861003-11-0。


作者简介

Didier Martin:暂无简介

译者简介

李喆 严春莹 马琳:暂无简介

译者序

我们非常高兴能够向广大读者推荐这本XML方面出色的专业指南。应该说,我们还没有看到过任何一本与本书类似的书籍。以往我们所看到的书往往是从编程语言的角度去讨论XML这种技术,或者局限于某种特定类型的应用。

本书的几名作者是XML标准的创始成员,他们在XML语言和应用上有着很深的造诣。本书解释和演示了设计、使用、显示XML文档所必需的技术,把焦点集中在如何使XML与现实生活中的应用结合在一起。本书展示了很好的设计技术,演示了如何在支持XML的应用程序与Web应用程序和数据库系统之间提供接口。而且本书中的每一章都包含一个实践举例,所有这些例子覆盖了各种语言、解析器和服务器。如果你期望将XML技术应用到自身的工作和生活当中,在这本书中一定能够找到最合适的答案。

参加本书翻译工作的有李吉吉、严春莹、马琳、刘相峰、李迎辉、张伟、阎宏娟、严基刚、李双华等同志。限于水平,错误和不妥之处在所难免,敬请广大读者批评指正。
2000年9月

图书目录

译者序
作者简介
前言
第1章  XML简介 1
1.1  标记语言 1
1.2  XML的起源和目的 2
1.3  Web体系结构:过去与未来 4
1.3.1  传统Web体系结构 4
1.3.2  XML下的Web体系结构 5
1.4  XML基本特征 6
1.5  词汇表 8
1.5.1  科学词汇表 8
1.5.2  商业词汇表 9
1.5.3  法律词汇表 10
1.5.4  医学词汇表 11
1.5.5  计算机词汇表 11
1.6  XML技术的主要特性 12
1.6.1  格式正规的XML 12
1.6.2  文档类型定义 13
1.6.3  数据建模 14
1.6.4  文档对象模型 14
1.6.5  XML 简单API 14
1.6.6  命名空间和模式 14
1.6.7  链接和查询 15
1.6.8  转换XML 15
1.6.9  XML和数据库 16
1.6.10  服务器到服务器 16
1.6.11  电子商务与XML 17
1.6.12  使用样式 18
1.6.13  无线应用协议和WML 18
1.7  XML的应用程序举例 19
1.8  小结 19
第2章  XML语法 20
2.1  标记语法 20
2.1.1  字符 20
2.1.2  命名 21
2.2  文档部分 22
2.3  元素 23
2.3.1  起始标记 24
2.3.2  结束标记 24
2.3.3  空元素标记 24
2.3.4  标记:一个简单的例子 25
2.3.5  文档元素 25
2.3.6  子元素 26
2.3.7  元素嵌套 27
2.3.8  字符串 29
2.4  字符数据 29
2.5  属性 30
2.5.1  特殊属性 31
2.5.2  空白 33
2.5.3  行尾的处理 34
2.6  字符引用和实体引用 34
2.6.1  字符引用 34
2.6.2  实体引用 34
2.7  处理指令 35
2.8  注释 36
2.9  CDATA部分 37
2.10  文档结构 38
2.10.1  序言 38
2.10.2  尾声 43
2.11  XML语法小结 43
2.12  格式正规的文档 44
2.13  解析器 45
2.13.1  事件驱动的解析器 45
2.13.2  基于树的解析器 46
2.13.3  解析器基准测试 46
2.14  书籍目录应用程序 47
2.15  小结 49
第3章  文档类型定义 51
3.1  为何需要正式的结构 51
3.1.1  文档域 52
3.1.2  验证文档的有效性 52
3.2  编写DTD:通用原则 52
3.2.1  将DTD与XML文档相关联 53
3.2.2  基本标记声明 55
3.3  正式的DTD结构 55
3.3.1  实体 56
3.3.2  元素 58
3.3.3  属性 61
3.3.4  条件部分 67
3.4  DTD的缺点 69
3.5  用于图书目录问题的DTD 70
3.5.1  图书目录问题的正式定义 70
3.5.2  对象关系问题 77
3.5.3  进一步讨论 78
3.6  小结 79
第4章  数据建模与XML 80
4.1  信息建模 80
4.1.1  静态模型和动态模型 81
4.1.2  文档和数据 82
4.1.3  从何处开始 82
4.1.4  静态信息模型 83
4.1.5  动态建模:对数据进行哪些处理 87
4.2  设计XML文档 90
4.2.1  XML的两种角色 90
4.2.2  将信息模型映射到XML 93
4.3  模式语言和表示法 101
4.3.1  模式的作用 101
4.3.2  将DTD作为模式 103
4.3.3  XML模式建议 109
4.4  小结 110
第5章  文档对象模型 111
5.1  什么是文档对象模型 111
5.1.1  XML文档结构 111
5.1.2  为何使用DOM 113
5.1.3  DOM规范 115
5.1.4  现实世界中的DOM 116
5.1.5  特殊的XML DOM实例—
   HTML DOM 117
5.2  使用DOM 120
5.2.1  DOM API 120
5.2.2  客户端和服务器端 121
5.2.3  DOM在出版过程中的应用 122
5.3  使用DOM和XML的应用实例 125
5.3.1  简单的客户端实例 125
5.3.2  更复杂的编程实例 133
5.4  DOM和XML的未来 143
5.4.1  W3C的工作 143
5.4.2  应用 144
5.4.3  数据库、模式和DOM 144
5.5  小结 144
第6章  SAX 1.0: XML简易API 145
6.1  事件驱动接口 145
6.2  SAX的由来 148
6.3  SAX的高级特性 165
6.3.1  可选择的源输入 166
6.3.2  处理外部实体 168
6.3.3  选择解析器 169
6.4  一些SAX设计模式 171
6.5  SAX 2.0 187
6.5.1  可配置的接口 187
6.5.2  核心的特性和属性 188
6.6  小结 189
第7章  命名空间和模式 191
7.1  混合词汇表 192
7.1.1  分解问题 193
7.1.2  重用 193
7.1.3  多义性名称冲突 193
7.2  命名空间 195
7.3  定义和声明命名空间 196
7.3.1  声明一个命名空间 196
7.3.2  限定名 196
7.3.3  范围 197
7.4  在格式正规的书籍里使用命名空间
    实例 199
7.5  模式 201
7.5.1  与DTD有关的问题 201
7.5.2  一个对创建模式的帮助 203
7.6  W3C在XML 模式方面的工作 209
7.6.1  DTD与XML 模式的比较 210
7.6.2  结构 211
7.6.3  数据类型 219
7.7  简化了的XML Data 222
7.7.1  MSXML对命名空间和模式的支持 228
7.7.2  数据类型 229
7.8  图书目录中的变化 230
7.8.1  为什么烦恼 230
7.8.2  重铸DTD 231
7.8.3  模式协调 236
7.9  小结 240
第8章  链接和查询 241
8.1  XML 信息集合 241
8.1.1  信息类型 241
8.1.2  信息集合的重要性 248
8.1.3  小结 250
8.2  链接 250
8.2.1  什么是链接 250
8.2.2  W3C规范:XLink 252
8.3  Xpointer 266
8.3.1  HTML指针 266
8.3.2  Xpointer 规范 267
8.4  W3C Xpath推荐标准 269
8.4.1  Location Step 269
8.4.2  XPointer对XPath的扩展 276
8.4.3  Xpointer错误 277
8.4.4  小结 277
8.5  XML程序段交换 278
8.5.1  什么是文档程序段 278
8.5.2  文档程序段的一些用途 279
8.5.3  问题:Bare文档程序段并不总
     是充分的 281
8.5.4  解决办法:环境信息 283
8.5.5  回顾实例 285
8.5.6  如何传输程序段 287
8.5.7  小结 289
8.6  查询 289
8.6.1  什么是查询语言 289
8.6.2  关系型数据库和XML文档之间
      的区别 291
8.6.3  XML查询语言的发展历史 295
8.6.4  使用Xpath和XSLT查询XML文档 298
8.6.5  查询语言展望 309
8.7  小结 309
第9章  转换 XML 310
9.1  为什么转换 XML 311
9.1.1  在不同词汇表之间转换 311
9.1.2  动态转换 312
9.1.3  不同的浏览器 312
9.2  XSL 313
9.3  XSLT 样式表命令 325
9.3.1  创建模板 325
9.3.2  处理空白 326
9.3.3  输出格式 326
9.3.4  合并样式表 327
9.3.5  嵌入样式表 328
9.4  使用XSLT的例子 328
9.4.1  命令的转换 329
9.4.2  循环 335
9.4.3  排序 336
9.4.4  条件处理 338
9.4.5  名称模板 341
9.4.6  编号方式 342
9.4.7  拷贝 344
9.5  使用DOM进行XML文档的转换 345
9.5.1  用DOM进行命令的转换 346
9.5.2  在运行时修改一个XSLT文档 349
9.6  XSL转换与DOM转换的比较 353
9.7  小结 354
第10章  XML和数据库 355
10.1  存储XML 355
10.1.1  持续性问题 355
10.1.2  文档管理 360
10.1.3  XML存储和数据库 362
10.1.4  结论 376
10.2  XML的交换 377
10.2.1  数据标准 377
10.2.2  查询标准 380
10.2.3  结论 388
10.2.4  你可能需要的标准 388
10.3  图书目录的例子 389
10.3.1  处理存在的数据和应用 389
10.3.2  图书目录模式 395
10.4  结论 420
第11章  服务器到服务器 421
11.1  XML的传送 421
11.1.1  基于FTP的XML传送 422
11.1.2  XML和消息队列 422
11.1.3  基于HTTP的XML 423
11.1.4  基于SMTP的XML 423
11.2  作为一种分布式组件模式的XML 424
11.2.1  消息传送和串行化 424
11.2.2  紧耦合系统和松耦合系统 428
11.2.3  通信方式 430
11.3  XML-RPC 431
11.3.1  为什么使用XML-RPC 432
11.3.2  XML-RPC适用于何处 433
11.3.3  XML-RPC规范—技术全瞻 434
11.3.4  XML-RPC的实现 440
11.3.5  书籍应用例子 444
11.3.6  到哪里去 464
11.4  SOAP 465
11.4.1  XML-RPC++ 465
11.4.2  实现 478
11.4.3  结论 493
11.5  WebDAV 493
11.6  小结 494
第12章  电子商务和XML 495
12.1  什么是电子商务 496
12.1.1  对客户直接销售 496
12.1.2  企业对企业交易 497
12.1.3  信息共享和内容联合 497
12.1.4  EDI—电子数据交换 498
12.2  在电子商务中应用XML 503
12.2.1  通常的错误概念 509
12.2.2  在电子商务中使用XML的感受 512
12.3  展望未来 513
12.3.1  发现和调解 514
12.3.2  容器 517
12.3.3  代理 519
12.3.4  模板 520
12.4  理论转化为实现 521
12.5  电子商务解决方案 521
12.6  行业方案 521
12.6.1  纵向行业解决方案的关键 522
12.6.2  旅游 523
12.7  人力资源 524
12.7.1  HR-XML 524
12.7.2  健康 532
12.8  cXML—纵向行业的一个详细
     例子 535
12.8.1  为什么有cXML 535
12.8.2  cXML协议规范 536
12.8.3  消息传输 540
12.9  第1步—横向行业 546
12.9.1  ASC X12 546
12.9.2  XML-EDIFACT 547
12.9.3  电子商务XML工作组 549
12.10  第一个横向步骤 549
12.10.1  BizTalk标记规范 550
12.10.2  规范的目标和当前的限制 550
12.10.3  文档结构 551
12.10.4  一个用于Wrox书店的BizTalk
       文档 557
12.10.5  BizTalk Jumpstart工具包简介 561
12.10.6  BizTalk服务器 562
12.11  小结 565
第13章  样式XML 567
13.1  解释的位置 567
13.2  客户端的XML转换 568
13.3  解释模型 568
13.3.1  视觉解释 569
13.3.2  语音解释 570
13.3.3  如何将样式表链接到XML文档上 571
13.3.4  规则语言 571
13.3.5  CSS 572
13.3.6  XSL 592
13.3.7  用XSL解释XML 594
13.3.8  DSSSL 611
13.3.9  Omnimark 614
13.4  小结 616
第14章  无线应用协议 617
14.1  新客户介绍 617
14.2  了解无线环境 621
14.2.1  服务 621
14.2.2  无线网络 622
14.2.3  WAP如何解决无线网络应用遇到
       的问题 624
14.3  介绍WML 626
14.3.1  怎样将第一份文档传送到电话上 626
14.3.2  WML文档的结构 627
14.3.3  通用属性 629
14.3.4  WML包括什么 630
14.3.5  Meta信息 630
14.3.6  基本字符、表格和演示 631
14.3.7  使用计时器 633
14.3.8  事件处理器 634
14.3.9  使用变量 635
14.3.10  任务和菜单 637
14.3.11  客户端模板 641
14.3.12  表单数据 643
14.3.13  图像 646
14.4  在服务器上生成WML 646
14.5  WROX的WML应用 648
14.6  WML脚本 651
14.6.1  基本概念 652
14.6.2  字节码 652
14.6.3  如何从WML上调用脚本函数 652
14.7  脚本库 653
14.7.1  决定浏览器的状态—WMLBrowser
       脚本库 653
14.7.2  Dialogs库 654
14.7.3  特定的语言函数 655
14.7.4  浮点数 655
14.7.5  字符串 656
14.7.6  URL 657
14.8  如何得到更多的信息 660
14.9  小结 660
第15章  实例研究1─数据双重性 662
15.1  商业需求 662
15.2  系统要求 662
15.3  设计时间:让我们开始吧 662
15.4  实现方法概述 663
15.5  建立数据库 665
15.6  提供XML功能的ASP 665
15.7  客户端页面 668
15.8  “以编号浏览”XSL样式表 676
15.9  “以名字浏览”XSL样式表 678
15.10  激活XSL样式表 679
15.11  问题:保持树的同步 680
15.12  小结 683
第16章  实例研究2—XML和分布式
     应用程序 684
16.1  目前的弱点 684
16.2  构建网络应用程序的五条原则 685
16.2.1  从粗粒度服务构建应用程序 686
16.2.2  通过查询目录发现服务 687
16.2.3  将服务提供为自描述数据 688
16.2.4  服务是短暂的 689
16.2.5  服务必须可扩展,且能够降低对
       外部的要求 690
16.3  商业实例 691
16.4  应用程序设计 692
16.4.1  应用程序的组织 694
16.4.2  程序员服务客户 694
16.4.3  服务 695
16.4.4  交换词汇表 696
16.5  实现 697
16.5.1  定位服务 698
16.5.2  管理数据绑定 699
16.6  输入和编辑程序员信息 700
16.6.1  客户端 700
16.6.2  服务器端 701
16.6.3  用于插入程序员信息的完整客户
      端代码 704
16.6.4  用于插入程序员信息的完整服务器
       端代码 705
16.7  搜索程序员信息 707
16.7.1  客户端 707
16.7.2  服务器端 709
16.8  清除程序员表单 710
16.9  输入程序员成果报告 711
16.9.1  客户端 711
16.9.2  服务器端 712
16.10  清除成果报告历史表单 714
16.11  获取程序员的成果历史 714
16.11.1  客户端 714
16.11.2  服务器端 716
16.12  经验教训 718
16.12.1  违反的开发原则 718
16.12.2  组件 718
16.12.3  重用的可能性 718
16.13  小结 719
第17章  实例研究3—图书目录信息
     服务 720
17.1  图书目录信息服务 721
17.1.1  系统概述 721
17.1.2  创建BCIS 732
17.2  小结 764
第18章  实例研究4—SOAP 765
18.1  追根溯源 765
18.2  SOAP Opera 770
18.2.1  OPERA客户端 771
18.2.2  OPERA服务器 780
18.2.3  订单输入应用程序 793
18.2.4  对象 796
18.3  小结 809
附录A  XML 1.0规范 810
附录B  IE 5 XML文档对象模型 847
附录C  SAX 1.0:XML简单API 887
附录D  IE 5 XML模式和数据类型 906
附录E  IE 5 XSL引用 915
附录F  CSS属性 927
附录G  安装XT 939
附录H  支持与勘误 940

教学资源推荐
作者: 吕云翔等编著
作者: 雷震甲 编著
作者: 刘艺 王春生 等编著
参考读物推荐
作者: Clay Breshears 著
作者: 卞诚君 编著
作者: (美)Harley Hahn