首页>参考读物>计算机科学与技术>软件与程序设计

XSL 高级编程
作者 : (美)Kurt Cagle 等
译者 : 韩平 程永敬 董启雄 等
出版日期 : 2002-04-01
ISBN : 7-111-09947-8
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 684
开本 : 16开
原书名 : Professional XSL
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书以一种实用的、教程样式的方法来讲解XSLT、XPath和XSL-FO规范的核心基础。主要内容包括:如何创建结构合理的模块化样式表来生成所需要的输出文档,如何对数据进行更改、过滤及排序,以及与其他内容进行合并而显示出来。
  对于非常熟悉XML数据及其结构的开发人员,以及转换数据和将样式表应用于B2B和Web应用程序的人员来说,这是一本有益的参考书。

图书特色

Kurt Cagle(库尔特·卡格尔)
  Kurt Cagle是XML和相关问题的专门作家和开发人员。他已经写了八部书和一百多篇文章,从Visual Basic编程到Internet对社会的影响,他的主题都有涉及。他还为Microsoft、Nordstorm、AT&T等公司提供咨询。他还帮助发行Fawcette的XML杂志,并在最近两年成为DevX、DHTML和XML的专家。
  Michaelv Corning(麦克尔·考宁)
  Micheal Corning是Microsoft公司的一名Memetic工程师,致力于基于.Net框架为应用程序中心构建一种软件测试体系结构。夜间他为Wrox出版社、ASPToday.com、ActiveWeb Developer杂志写作,并在XMLDeveloper杂志开设了一个每周专栏,叫作"XSLT狂热者的自白(Confesions of an XSLTBigot)"。他的第一本书是《Working with Active Server Pages》,该书1997年由Que出版社出版。Corning还在全球大会上发言,讲述基于Schema(大纲)编程的好处。闲暇时,他喜欢约上妻子(他的崇慕者)外出,或者驾驶他的West Wight Potter(西部陶工) "Finally"(终结)号航行,或者读书。他是三位英俊儿子引以自豪的父亲,这三个孩子分别是:Christian、Seth和Casey;此外,他还拥有三只猫:Minnie、Dixie、和Nutmeg.
  致谢:首先,我要感谢我亲爱的妻子Katy。她深深了解作为作家妻子的生活。还要感谢我的老板Dan Casey和Tony Godfrey,感谢他们对我的信任,并让我在白天时间之外做这么多的事,就像写书。最后,感谢我的好朋友和XML小组的同事,特别是Jonathan Marsh、Derek Denny-Brown和Chris Lovett,与你们这些人共同工作是我职业生涯中的一种荣耀。
   Jason Diamond(杰森·迪曼德)
  "Jason Diamond热爱他的母亲"。
  Teun Duynstee(特恩·坦斯特)
  Teun Duynstee是Macaw公司(荷兰的一家一流的Web构建和咨询公司)的一名首席开发人员,专攻在Windows DNA平台上构建复杂的企业Web应用程序。他最喜欢干的事就是热心为别人提供新技术方面的帮助,还喜欢晚睡。
你可以通过电子邮件与他联系:proxsl-feedback@duynstee.com.
Oli Gauti Gudmundsson(奥利·高提·伽德曼德森)
  Oli为SALT公司工作,他是SALT系统的两个首席系统构造师之一,还担任纽约的开发主管。他现在的工作是将xML和x比整合到SALT的编辑和目录管理系统中。他还是冰岛大学计算机科学Java课程的导师,而Java是他的强项(及兴趣)。作为一种"业余爱好",他正在努力获得计算机工程的理科学士学位。
  他的祖国是冰岛,但他现在和女友Edda一起居住在纽约。你可以通过电子邮件和他联系:oli.gauti@salt.is.
  MichaelMason(麦克尔·马逊)
  Mike于1999年毕业于牛津大学,获计算学士学位,并开始为当地的一家叫做DecisionSoft的公司工作。Mike参与了创建XML脚本语言及相关工具的工作。现在,他就职于伦敦二家名为Digital Rum的公司,使用Java、XML和XSLT来开发移动商务应用程序。
  Mike喜欢滚轴溜冰、空手道、在伦敦以外的任何地方驾驶自己的汽车,余暇时间就摆弄Linux。他也是Buffythe Vampire Slayer游戏的超级迷恋者之一,虽然这不是一个时髦的爱好。
  可以通过下面的邮件地址来与Mike通信:mgm@eskimoman.net.
  Mike感谢DecisionSoft公司的所有同仁,尤其是Philip和Ben,因为当Mike刚开始工作的时候,他们是很好的工作伙伴,还有Gareth,感谢他解答了v2的问题。Mike还要感谢他在牛津和伦敦的一帮伙伴感谢他们认为他可以是一名作家,感谢在他写这一章内容时来自他们的鼓励。Wrox出版社的人们给了Mike很多帮助,他要感谢Marsha,感谢她回答了所有他作为新手所提出的问题。
  Jon Pinnod((约翰·比诺克)
  Jonathan Pinnock早在其学生时期,就在其学校的PDP8/e上,使用着4KB的内存,编写Pal III的汇编程序。现在,他花大部分的时间来开发和扩展日益成功的平台集成产品,这是他的公司(JPA)为开拓面向金融服务社团的市场所做的主要工作。他似乎将他的剩余时间都投入到了为Wrox的写作工作中,当然他偶尔也简单地向他长期受苦的妻子和两个孩子问个好。
  JPA的主页是:www.jpassoc.co.uk。
  Paul Spencer(保罗·斯本瑟)
  作了三年的自由XML顾问之后,Paul在2000年底决定不再过一周七天都要工作的日子了,并找到了他现任CTO的alphaXML有限公司。以Henley-on-Thames为基地,他带领一个扩展小组在全世界范围内提供XML服务。Paul是一个XML建议者,他为英联邦税务局、政府网关和电子外交办公室提供服务。因此,他实际的工作量并没有减少。当然,他也决定保留空闲时间采航海,在这个领域他试图保持领先的地位。他的航行水平是出名的,这是由于他有一次击败了刚刚击败Dennis Conner胜利而归的一个人。
  Paul要感谢所有为他提供他所喜爱的工作的人们,还要感谢Wrox出版社将本书的写作安排在非航海的季节里。
  Jeff Tang(杰弗·唐)
  Tang是Tellngo有限公司的首席软件工程师,在这里,他使用Nuance和Speechworks技术及Java、C十十,还有VoiceXML来设计并开发具有语音功能的企业应用程序。之前,Jeff在Sprint、Informix、Cerner和PercptiveVision等公司做过六年的高级软件工程师、技术带头人和咨询等工作。他帮助设计并开发了许多企业系统,包括医疗信息系统、文档镜像产品、基于Web的计算机电话应用程序、Internet媒体应用程序,以及企业定购管理系统。在此之前,他在中国做了大概五年的软件工程师,参加开发了自然语言处理/机器翻译系统和数据库应用程序。
  AndrewWatt(安德鲁·瓦特)
  Andrew Watt是一个独立的咨询工作者,除了探讨那些别人没有试验过的技术问题外,他很少有其他兴趣。在20世纪80年代中期,他就用6502汇编语言和BBC Basic语言写了他的第一个程序,当时他已经尝试过Pascal、Prolog和C++等语言。最近,他又对Web相关的技术(包括Lotus Domino、Java和HTML等)产生了兴趣。他现在的兴趣是可扩展标记元语言(XMML)的各种应用程序(XMML在不太严密的情况或误解的情况下也会叫做XML)。现在他还关注着SVG、XSL-FO、XSLT、CSS、XLink、XPointer等等,以及当这些工具真正完全一起工作时令人激动的前景。他还刚刚开始涉足于XQuery。他的学习范围涉猎如此之广,用他的话说,这叫作"活到老学到老"。
  在闲暇时,他也在思考Web技术为现实世界中的人们带来的影响。语义学的Web将会有什么影响?这些如何不同于一些知识产权的事件呢?
  感谢上帝和天堂赋予人类观察、思考和感觉的能力。感谢我的父亲在生活上对我的大量教导。

图书前言

作为用来构造和描述Web数据、甚至于构造和描述企业应用程序数据的语言,可扩展标记语言(XML)已经得到了广泛的认可。XML的魅力在于它是基于文本的(因此与平台无关)和可扩展的(允许对底层数据进行更有意义的描述)。它是描述数据的一种方法,而不管数据最终如何使用,同时将内容与表示分离,因而使其非常适用于需要为不同的最终用途而对数据进行重新规划的场合。但当我们想要对这些数据进行某些处理时,例如从其中抽取部分数据或者以一种非XML格式来对其进行表示时,我们需要的就不仅仅是单一的XML规范了。
可扩展样式表语言--XSL,最初提交给环球网联盟(W3C)时就是为了提供一种对观L数据进行格式化的手段。对XML进行格式化的过程包括下述内容:
.用来指定使用源文档的哪一部分的方法。
  .为了得到理想的输出文档,用来描述对被使用的源数据进行何种操作的方法。
  .将命令结合到输出文档中去的方法。
  XSL规范很快就产生了两个分支:XSL转换(XSLT)和XSL格式化对象(XSL-FO),在整个的转换过程中,它们分别起着不同的作用。
  第三种相关的规范是XPath,它是一种用来对XML文档中的各部分(及位置)进行标识的一种语言。XML数据是作为一种层次式、树状节点结构来表示的,而XPath提供了一种用来定义表达式和包含函数的语法,它可以深入到XML的树结构中直至到达指定的节点。
  XSLT是用来对找到那些指定节点时所将采取的动作进行声明的一种语言。它用于书写样式表,这些样式表由一些模板组成,当在源文档中找到指定的大纲时,将会应用这些模板--当找到匹配的节点时,接着就会在模板中找到相应的指令,例如选取并存储输出的数据。通过这种方式,我们可以生成输出文档。XSLT语言有一组单元及函数,用于完成诸如复制一个单元、将文本内容或属性值抽取到输出文档中,以及输出一个节点的排序列表等任务。XSLT可以用于许多应用程序,这些应用可以是任何需要对XML数据在结构上进行修改或转换成指定格式的场合。 
  XSL-FO定义了一组格式化对象,这些对象可以包含到输出文档中,以精确地指出数据应该如何被表示。目前,虽然有些工具可以将XSL-FO翻译成其他格式,但可以理解和正确翻译XSL-FO的Web浏览器却还很少。通常Web应用程序并不使用XSL-FO,而是将HTML(或者CSS、WML、VoiceXML、SVG、JavaScript等)插入到输出文档中在"浏览器"中显示。
  在许多类型的应用程序中XML数据并不需要以用户友好的形式呈现。例如,在商务对商务(BtoB)的应用场合,不同的商业合作伙伴使用的应用程序相互之间需要通信并共享数据,但每个合作者都各有其首选的数据格式。XSLT可以完成这些转换,从而使得企业可以高效而广泛地和其他合作伙伴进行合作。
  即使对于开发人员来讲,虽然他们不需要呈现或交换数据,例如那些纯粹处理数据存储的人,但他们仍然会发现XSL的用处。依据schema(大纲)来验证数据以及从大纲中生成XML文档,这正是使用XSLT来帮助实现自动化并加速开发进程的两个例子。
  本书的内容范围
  本书将为你讲解所有XSL技术"家族"中三个部分(XSLT、XSL-FO,以及相关的XPath)的目的及语法。更为重要的是,本书使用大量的应用程序来演示如何在实际工作中使用XSL,包括将由多个提供商提供的产品信息转换为统一的产品目录、为移动用户动态创建WML Web页面;以及生成XML内容的图形化表示等。当你读完了这本书的时候,你将清楚地理解什么是XSL、它的用途,以及如何着手将其使用到你已有的或将来开发的应用程序中。
  本书的读者对象
  本书的读者应是那些已经熟悉XML的程序员。如果你对XML知之甚少,那么推荐你阅读《Begining XML》(ISBN l-861003-41-2) (XML初级编程)或《Professional XML》(ISBN1-861003-11-0)(XML高级编程),这两本书都已经由Wrox出版社出版。
  本书适合下列两类开发人员:
  ·需要将数据转换为XML格式或者要将x瓜格式的数据转换为其他格式的。
  ·需要将样式应用到其XML数据的。
  可以在其中使用XSL的应用程序几乎数不胜数,且覆盖了许多领域,包括商务对商务的交换、基于Web的目录发布以及XML数据存储器的管理等。
  本书的结构
  本书的各章节是这样安排的:在深人了解XSL典型的实际应用之前,首先讲解XSL的基础知识。全书中提供了大量的小例子来对所讲的概念进行演示。内容组织如下:
  ·第1章对XML知识的复习回顾,并详尽解释了之所以开发一种转换语言来处理XML的背景。该章介绍了XSL技术家族的每一个成员。初步介绍了XSLT样式表的基本概念及其处理方式,并提供了几个关于所介绍XSL的实例,用来说明XSL可以用于哪些地方。
  .第2章提供了一份XPath语言语法的完整参考,同时以实例来演示其用法。当使用朋-LT时,XPath是必不可少的,它用来定位并识别给定XML文档的指定部分,同时,善于使用XPath可以提高XSLT样式表的性能。
  ·第3章对XSLT语言的核心部分进行了解释并加以演示--即为创建应用于多种应用程序的能完成各种功能的样式表所需掌握的内容。
  ·第4章学习使用XSLT和用来提高样式表的能力和效率的更高级的技术。该章内容中包括了变量和参数的使用。
  ·第5章继续介绍XSLT的高级技术,学习如何插入外部模板。在该章的结尾处,对XS-LT规范的未来版本中所做的一些改进进行介绍。
  ·第6章从不使用XSL而转换XML的观点出发,对XML文档对象模型(DOM)以及用于XML的简单API(SAX)这两者进行讨论。这些编程接口可以用作XSLT的替代或者作为XSL转换的前身,该章中还包含何时使用哪项技术最为合适的有关讨论。
  ·第7章包含Microsoft的MSXML3以及.Net架构产品有关照L特性的一些资料。该章中的示例代码使用MSXML来对数据进行分析,并使用.Net架构的基本类来对XML数据进行流操作、定位、选择及进行转换。
  ·第8章基于作者的实际经验,通过对一个实例的研究,指出一些在开发样式表时应注意的问题,并对如何提高XSLT样式表的性能给出了一些建议。
  ·第9章讨论由W3C所建立的XML样式化技术。由于级联样式表(CSS)得到现代浏览器的广泛支持,我们首先对其进行讨论。XSL-FO也是基于类似的原理,但其目标是更多的输出格式。该章对这两者都进行了详细的解释,从而使你能够在你的转换中使用它们。
  ·第10章介绍XSLT的典型应用,而不涉及为显示而对输出进行样式化,换句话说,就是对XML数据进行结构上的转换(例如抽取、修改、添加及合并)。这些内容包括商务词汇间的转换、使用样式表生成新的样式表以及使用私有数据库中的数据。
  ·第11章演示以较为通用的方法来为XML数据加入描述信息(换句话说,就是使用HTML而不是XSL-FO)。该章所开发的示例程序展示了如何使用样式表,结合CSS,并通过恰当地在服务器端或客户端进行转换,来动态生成Web页面的HTML及基于WML的表示法。
  ·第12章讲解当前图形格式的背景,尤其是可缩放矢量图形(SVG)语言。然后演示了如何编写生成SVG的样式表来产生图形、格式化文本及描绘各种形状。
  ·第13章介绍VoiceXML语言的语法,这是一种用于有声音的Web应用程序的新的基于XML的方法。该章介绍了相关的开发工具。该章的例子演示了如何使用XSLT来加速生成新的VoiceXML的过程,当应用程序是基于不断变更的数据源时,这就更加有用了。
  ·第14章将对一些有用的方法进行演示,根据这些方法,可以将XSLT和XML大纲进行组合,例如,使用XSLT来从一个大纲生成一个X瓜文档实例(或反之),创建样式表来依据一个大纲验证XML文档,或使用XSLT规则表达式来规范数据完整性。
  ·第15章给出了关于XSLT转换的最后一个例子,这次的基础是Petri网计算机。Petri网是一种用于图形化和数学化建模系统的工具,在本章XSLT用来将Petri网标识语言(PNML)转换为用于图形表示的SVG。为使本书更加完整,该章还提供了略微不同的思路来考虑XSL编程,为你未来的编程提供一些启发。XSL是基于大纲编程(这是一个基于XML应用程序开发的术语)的关键部分,该章的讨论将对为什么XSL对于使用XML的开发人员来说是至关重要的这一问题进行进一步的补充。
  .第16章演示了一个典型的XSLT实际应用程序,其中使用了许多本书各处所提供的技术。它展示了XSLT是如何能够用在Web应用程序的核心部分,向最终用户提供底层内容的友好界面,并提供了实现在文档各部分间轻松定位的功能。该程序既可以成批转换来生成静态HTML,又可以根据需要来实时转换生成一些特定的内容。此外,该程序还进一步巩固了前面各章中的知识,样式表的组件化和参数化促进了程序的可重用性和可维护性。
  在本书的附录中,我们还提供了一些相关的参考资料:
  ·附录A提供了完整的XPath规范1.0版。
  ·附录B提供了完整的XSLT规范1.0版。
  ·附录C包括了DOM标准2核心的所有接口,包括用于处理XML文档的基础接口和扩展接口。
  ·附录D列出并描述了SAX 2.0的所有接口和方法。
  ·附录E内容包括如何获取并安装(可免费得到的)通用XSL处理程序,其中有许多是运行本书所提供示例代码所需的。本附录还介绍了其他一些可免费得到而有用的工具的样例,例如帮助你理解复杂样式表的工具。
  ·附录F介绍了几种用来加速XSLT样式表开发的途径,并详细讨论了两个这样的工具:XSLTScript(一种用来快速生成XSLT的工具)和XML Script(XSLT的一种替代工具)。
  ·附录G提供了一些在线资源和将来可能会用到的其他书籍。
  本书中所用到的技术
  由于XML是一种平台无关的语言(或者更确切地说是一种平台无关的语法),我们将尽可能地保持书中示例的平台无关性。尽管在一些章节中使用了HTML、Java、Visual Basic、Visual C十十、C#、ASP、JSP、JavaScript、Windows Script Host、Oracle以及XSQL来演示一些特殊的编程技术,但这些方法可以毫不费力地移植为别的语言。尽管我们采用了一些常用的编程知识,但所有的代码在需要时还是给出了解释。
  本书中提供的示例(除非特别声明)可用于常用的以及通用的处理程序,这将在本书的适当位置讲到。有关如何获取和安装这些处理程序的详细情况,参见本书附录。
  用户支持
  虽然我们已经努力使本书尽可能地准确并有趣味性,但实际上你仍然可能发现一些不尽人意的地方。请让我们知道你对本书的看法,你的反馈意见可以通过书后的反馈卡片寄给我们,也可以通过电子邮件联系,我们的邮件地址是:feedback@wrox.com.
  源代码及其更新
  你使用本书代码时,可以选择手工输入所有的代码。许多读者都采取这种方式,因为这是熟悉这些代码的一个好办法。
  当然,我们已经将本书的这些源代码放在了我们的网站上,网址如下:
  http://www.wrox.com/Books/Book_Down.sap isbn=1861003579
  如果你属于那种喜欢自己输入代码的读者,那么可以使用我们的文件来检查你所获得的结果,如果你觉得你可能输入得有错,那么这是你第一个用来确定是否错误的方法。如果你属于那种不愿意输入代码的读者,那么你必须从我们的站点下载这些源代码。
  无论是哪种方式,这些源代码都有助于你修改和调试程序。
  勘误表
  我们付出了全部努力来确保在全书的文本和源代码中不出现错误。然而,人总是会犯错误的,因此我们觉得需要通知你一些已经发现并纠正的错误。全书的勘误表可以在http://www.wrox.com找到。如果你发现了任何还没有报告的错误,请让我们知道。
  我们的站点承担着收集信息和支持的任务,另外还包括我们所出版的所有图书中的源代码、图书的一些样章、将要出版的图书的预览以及相关主题的文章和观点。
  P2P
  在线论坛p2p.wrox.com提供了程序员对程序员的广泛技术支持。你可以订阅其邮件列表并周期性接收摘要,或者可以查找其存档文件来找出可解决你所遇到编程问题的解决方案。

作者简介

(美)Kurt Cagle 等:暂无简介

译者简介

韩平 程永敬 董启雄 等:暂无简介

译者序

首先,我们非常荣幸地将这些最新的资料翻译过来,介绍给大家。我们也真心希望我们的工作能够帮助你迅速掌握最新的技术。
  我们知道,XML是一种为实现与平台无关的数据存储和交换、实现将内容与显示分离而建立的标准。它的普及要归功于这种语言的灵活性和以各种方式对数据进行重用的能力。而我们要介绍的XSL是用于XML的一项关键技术,它由两部分组成:XSLT是一种正式语言,它用于将XML从一种格式转换为另一种格式,既可以用于对数据进行重构选择性处理,也可以用于为显示而呈现数据;XSL-FO是一个提议用语,主要是为了将与文档为表示而进行的排列相关的信息进行合并。XPath是一种与XSL转换紧密相关的标准,这种语言主要用于对XML文档中的指定部分进行访问。
  本书首先对什么是XSL、XSL能干什么进行了解释,然后以一章的篇幅对用于在一个XML树中指定位置的XPath语言进行了描述。第3章和第4章中,主要对作为XSL的重要组成部分的XSLT进行了介绍,包括该语言的核心内容和一些为了增强应用程序而附加的一些功能和技术。此外,本书还对通用的结构化转换以及为了显示而将XML进行转换等内容进行了说明和演示。最后本书还介绍了CSS和XSL-FO的概念和关键元素、XSLT和XML大纲的使用等内容。在本书的附录中,还提供了各种丰富的内容和资料来帮助我们学习,
  本书主要由韩平、程永敬、董启雄、张宝玲、张怀利、庄锦山等人翻译,参加翻译的有程永敬、董启雄、韩平、张宝玲、张怀利、庄锦山、叶伟、刘学来、汪洋、唐雪飞、程思羽、于海龙、马君艳、董骥、叶雨涵、吴嵘、任卓涛、李德峰、张永明、胡子飞等。本书涉及的技术和内容较新,其中有些甚至还没有正式的标准;再加上个别章节由于作、译者的水平和理解、阐述的水平等限制,所以本书可能还存在一些这样或那样的问题。我们真心地欢迎各位读者对我们的工作进行批评和指正。我们的邮件地址是:freediscovery@263.net.
  自由探索工作组
  FreeDiscovery WorkGroup
  2001年11月

图书目录

第1章 XSL简介
1.1 XML概述
1.1.1 DTD和Schema
1.1.2 XML名字空间
1.1.3 转换/格式化的必要性
1.2 XSL简介
1.2.1 XSLT样式表
1.2.2 XSLT处理模型
1.3 工具
1.4 转换XML的其他手段
1.5 XSL的应用
第2章 XPath--XML路径语言
2.1 XPath简介
2.1.1 XPath的应用目标
2.1.2 XPath的工作原理
2.1.3 XPath数据模型
2.1.4 其他的XPath概念
2.1.5 XPath出函数
2.2 XPath语法
2.2.1 非简写XPath语法
2.2.2 简写语法
2.2.3 两种语法的注意事
2.3 实例
2.3.1 下载并安装Instant
2.3.2 XML源文档
2.4 XPointer、XLink和XQuery
2.4.1 XPointer
2.4.2 XLink
2.4.3 XQuery
2.5 本章小结
第3章 XSLT基础
3.1 XSLT处理
3.1.1 XSLT处理模型
3.1.2 处理一份文档
3.1.3 推模型和拉模型
3.2 关于名字空间的话题
3.3 XSLT元素
3.3.1 <xsl:stylesheet>
3.3.2 <xsl:output>
3.3.3 <xsl:template>
3.3.4 <xsl:apply-templates>
3.3.5 <xsl:value-of>
3.3.6 <xsl:copy>和<xsl:copy-of>
3.3.7 控制流程元素
3.3.8 <xsl:sort>
3.3.9 <xsl:number>
3.3.10 <xsl:text>
3.3.11 <xsl:element>
3.3.12 <xsl:attribute>
3.4 默认模板
3.5 模板匹配冲突
3.6 XSLT函数
3.6.1 position()和last()
3.6.2 name()
3.6.3 count()
3.7 本章小结
第4章 模块化的XSLT
4.1 变量的取值
4.1.1 <xsl:variable>的select属性
4.1.2 变量选择和节点集
4.2 参数的功能
4.2.1 参数和外部程序的关系
4.2.2 建立命名模板
4.3 本章小结
第5章 外部XSLT
5.1 文档和超空间世界
5.2 过于繁复的样式表
5.2.1 导入的重要性
5.2.2 OO XML的起点
5.2.3 超级应用导入
5.2.4 Import和Include,谁更好
5.2.5 可扩展性
5.3 样式表的将来:XSLTl.1
5.3.1 废除node-set()
5.3.2 多个输出流
5.3.3 通用脚本块和扩展
5.3.4 导入模板的参数化
5.4 XSLT2.0以及其他
5.5 本章小结
第6章 使用DOM和SAX进行转换
6.1 什么时候使用DOM或者SAX来代替
XSLT
6.2 XML DOM
6.2.1 快速了解对象和接口
6.2.2 文档对象模型
6.2.3 使用Java进行DOM编程
6.2.4 使用VBScript进行DOM编程
6.3 SAX
6.3.1 基础知识
6.3.2 SAX的简短历史
6.3.3 什么时候使用SAX
6.3.4 使用Java开发一个SAX 2.0转换应用程序
6.3.5 使用Microsoft的SAX产品
6.3.6 过滤和编写XML
6.3.7 SAX的其余内容
6.4 本章小结
第7章 Microsoft XSL技术
7.1 MSXML3
7.1.1 安装
7.1.2 XML文档
7.1.3 高级转换
7.2 .NET
7.2.1 XmlReader
7.2.2 XmlDocument
7.2.3 XmlNavigator
7.2.4 XslTransform
7.2.5 .NET中的MSMML
7.3 本章小结
第8章 优化性能
8.1 性能陷阱
8.2 第一阶段:转换中的脚本
8.2.1 克服XSLT语言限制
8.2.2 遗漏操作符的情况
8.2.3 从有脚本到无脚本的转换
8.2.4 早期的XSLT
8.2.5 中间XSLT
8.2.6 简单小结第一阶段的性能问题
8.3 第二阶段:低劣的设计、功能延伸和野心
8.3.1 事倍功半的做法
8.3.2 静态代码分析
8.3.3 第二个性能改进
8.3.4 第三个性能改进
8.3.5 第二阶段性能问题的小结
8.4 第三阶段:低劣的体系结构
8.5 补充
8.6 一些惊奇
8.7 综述
8.8 本章小结
第9章 CSS和XSL-FO
9.1 将样式应用到XML的技术
9.2 CSS原理
9.2.1 关于级联样式表的说明
9.2.2 CSS格式化模型
9.3 将CSS应用到XML
9.3.1 将XML链接到样式表
9.3.2 SVG中的CSS
9.3.3 与XSLT一起使用CSS
9.4 XSL-FO--XSL格式化对象
9.4.1 XSL-FO术语
9.4.2 XSL-FO概况
9.4.3 XSL-FO网页
9.5 XSL-FO文档的结构
9.5.1 利用XSLT创建一个XSL-FO文档
9.5.2 使用XSL-FO创建PDF:FDP
9.5.3 展望
9.6 本章小结
第10章 通用结构转换
10.1 转换XML树
10.1.1 创建产品目录
10.1.2 交付购货订单
10.2 以样式表生成样式表
10.3 从关系型数据库中转换数据
10.3.1 Oracle XSQL Servlet
10.3.2 从XSQL页中创建XML结果集
10.3.3 将XML数据插入到Oracle数据库中
10.4 本章小结
第11章 以XSLT增加样式
11.1 应用程序的要求
11.2 原型1:基本目录
11.3 原型2:控制显示的详细内容
11.4 版本1:按作者进行选择
11.4.1 样式表的变化
11.4. 2 脚本的变化
11.5 版本2:服务器端版本
11.5.1 ASP代码
11.5.2 样式表
11.6 版本3:走向移动
11.6.1 WAP和WML
11.6.2 list.xsl
11.6.3 book.xsl
11.6.4 ASP页
11.7 应用程序集成
11.8 本章小结
第12章 转换到SVG
12.1 PGML、VML和SVG
12.2 SVG中的简单图形
12.3 以XSLT分解文本
12.4 制作星图案
12.5 SVG的将来
12.6 本章小结
第13章 转换为VoiceXML
13.1 具有声音能力的应用程序
13.2 VoiceXML解决方案
13.2.1 VoiceXML示例文档
13.2.2 VoiceXML元素
13.2.3 建立环境
13.3 一个更高级的VoiceXML应用程序
13.3.1 定义语法
13.3.2 基于Web的应用程序
13.3.3 通话流程
13.4 用于VoiceXML的XSLT
13. 4.1 XSLT:开放源工具
13.4.2 XSLT:生成VoiceXML文档
13.5 本章小结
第14章 XSLT与XML大纲
14.1 XML大纲概述
14.2 从大纲生成XML实例
14.2.1 术语
14.2.2 大纲设计
14.2.3 转换
14.3 从XML文档生成大纲
14.4 生成用于大纲验证的样式表
14.5 实施数据完整性约束条件
14.5.1 规则表达式简介
14.5.2 大纲中的规则表达式
14.5.3 Xalan Java扩展
14.5.4 验证大纲
14.6 本章小结
第15章 XSLT和XML展望
15.1 打破XSLT的框框
15.1.1 六个简单的物理机器
15.1.2 六种简单的抽象机械
15.1.3 XML与其他计算技术的关系
15.2 第一个复杂的抽象机械
15.2.1 PNML介绍
15.2.2 了解你的大纲
15.2.3 变量的值
15.2.4 最困难的部分
15.2.5 开发的最后阶段
15.3 基于大纲的编程
15.3.1 基于大纲编程的三个级别
15.3.2 XSLT中的基于大纲的编程
15.3.3 Petri网中基于大纲的编程
15.4 本章小结
第16章 案例研究--在线内容发布
16.1 源格式
16.2 一个简单的转换
16.3 添加独立样式表功能
16.3.1 第一次导入
16.3.2 创建一个具有指向各章链接的目录
16.4 将内容拆分到几个文件
16.4.1 拆分文件
16.4.2 创建术语表
16.4.3 创建一个索引
16.4.4 家族树
16.5 一个实时转换方案
16.5.1 ASP页
16.5.2 样式表
16.6 结论
16.7 本章小结
附录A XPath参考
附录B XSLT参考
附录C XML文档对象模型
附录D SAX2.0:XML简单应用编程接口
附录E XSLT处理程序和工具
附录F XSLT便捷工具
附录G 资源

教学资源推荐
作者: [英] 约翰·M. 斯图尔特(John M. Stewart) 著
作者: (美)Maurice Herlihy 布朗大学 Nir Shavit 麻省理工学院 著
作者: 钱晓捷 编著
参考读物推荐
作者: Andrew Koenig;Barbara E. Moo
作者: 张文亮 编著
作者: (美)Heather Williamson