本书通过为一个假想的家具公司Chase Web Furniture建立一个Web站点和应用程序来学习XML和Java编程。 主要内容包括:卖主网页:用层叠样式表设计XML; 产品网页:在浏览器中使用XSL转换XML;定义数据结构:文档类型定义、XML规划和解析器;XSL处理器和服务器端处理;获得订单:使用TDOM处理数据;调整存货:使用名域和DOM;产品搜索:XQL;更新存货:SQL数据库和SAX;XML(SOAP)的其他应用。 \r\n 本书适合那些不懂编程而又想跟专家一起坐在计算机前共同编程的人员。
第1章 卖主网页:用层叠样式表设计XML\r\n\r\n1.1 热身:HTML和XHTML\r\n1.2 控制表达:层叠样式表\r\n1.3 深入钻研CSS2\r\n1.3.1 颜色(Color)\r\n1.3.2 背景(Background)\r\n1.3.3 边框(Border)\r\n1.3.4 元素的定位(Positioning Element)\r\n1.3.5 文本(Text)属性\r\n1.3.6 列表项目(List Item)属性\r\n1.3.7 表格(Table)\r\n1.3.8 显示(Display)和继承(Inheritance)\r\n1.4 将文档转换为XML\r\n1.5 XML结构\r\n1.6 下一步\r\n\r\n第2章 产品网页:在浏览器中使用XSL转换XML\r\n\r\n2.1 XSL的两个方面:XSL转换和XSL格式化对象\r\n2.2 作准备\r\n2.2.1 安装MSXML3\r\n2.2.2 安装的检验\r\n2.2.3 目标是什么\r\n2.3 XML源文件\r\n2.4 树:XML的基本结构\r\n2.4.1 对XSL应用结构\r\n2.4.2 结构良好性(Well-Formedness)\r\n2.5 建立样式表\r\n2.5.1 样式表和XML文档的结合\r\n2.5.2 模板(Template)\r\n2.6 了解细节--使用XPath\r\n2.7 循环(Looping)和排序(Sorting)\r\n2.8 添加元素和属性\r\n2. 9 条件句(Conditional)\r\n2.10 整理一下\r\n2.11 下一步\r\n\r\n第3章 定义数据结构:文档类型定义、 XML规划和解析器\r\n\r\n3.1 Java简介\r\n3.2 安装Java2软件开发工具包\r\n3.2.1 查找Java 2软件开发工具包的位置\r\n3.2.2 安装\r\n3.3 安装Xerces-J解析器\r\n3.3.1 安装Xerces-J\r\n3.3.2 设置类路径(CLASSPATH)\r\n3.3.3 安装的测试\r\n3.4 格式良好与有效性文档\r\n3. 5 文档类型定义\r\n3.5.1 内部文档类型定义子集\r\n3.5.2 属性定义\r\n3.5.3 混合内容\r\n3.5.4 文档类型定义DTD语法小结\r\n3.5.5 第一个限制:数据类型(Datatype)\r\n3.6 外部文档类型定义(External DTD)\r\n3.7 添加Vendors的其余部分\r\n3.8 指示完整性(Referential Integrity)\r\n3.8.1 第二个限制:Key(密钥)\r\n3.8.2 第三个限制:相同的名字,不同的元素\r\n3.9 XML规划\r\n3.9.1 数据类型\r\n3.9.2 未来的特性\r\n3.10 下一步\r\n\r\n第4章 XSL处理器和服务器端处理\r\n\r\n4.1 XSL处理器\r\n4.2 Xalan\r\n4.2.1 安装Xalan\r\n4.2.2 安装的检验\r\n4.3 从命令行转换文件\r\n4.3.1 输入和输出文件\r\n4.3.2 处理文档\r\n4.4 高级XSLT:引用(Include)和输入(Import)\r\n4.4.1 引用(Include)\r\n4.4.2 输入(Import)\r\n4.5 Java基础知识\r\n4.5.1 完全投入:Hello World!\r\n4.5.2 写Hello World\r\n4.5.3 编译Hello World\r\n4.5.4 执行Hello World\r\n4.5.5 所有这些意味着什么\r\n4.5.6 继承(Inheritance)\r\n4.5.7 看一下Hello World\r\n4.6 从Java应用软件中读取文件\r\n4.6.1 声明变量\r\n4.6.2 显示一个文件的内容\r\n4.6.3 例外\r\n4.7 由Java程序内部转换XML文件\r\n4.8 高级XSLT:参数(Parameter)\r\n4.9 第一个DOM:遍历XML\r\n4.10 更加自动化:添加下一级和上一级链接\r\n4.11 向Mix添加Web服务器\r\n4.12 安装和设置Tomcat\r\n4.12.1 完成安装\r\n4.12.2 检验安装\r\n4.13 第一个Servlet\r\n4.14 获取请求信息\r\n4.15 下一步\r\n\r\n第5章 获得订单:使用JDOM处理数据\r\n\r\n5.1 什么是JDOM?\r\n5.2 安装JDOM\r\n5.2.1 安装JDOM步骤\r\n5.2.2 设置CLASSPATH\r\n5.2.3 运行实例\r\n5.2.4 规则的发展\r\n5.3 创建购物车--AddToOrder.java\r\n5.4 处理XSL样式表\r\n5.5 下一步\r\n\r\n第6章 调整存货:使用名域和DOM\r\n\r\n6.1 处理内存中的文档(In-Memory Document)\r\n6.1.1 创建新文档\r\n6.1.2 创建DOM对象\r\n6.2 DOM文档的结构\r\n6.3 递归(Recursion)\r\n6.4 向文档添加节点\r\n6.5 串行化文档\r\n6.5.1 添加数据\r\n6.5.2 向文档添加Products\r\n6.5.3 整理一下\r\n6.6 添加名域\r\n6.7 检索名域信息\r\n6.8 创建回顾页(Review Page)\r\n6.9 处理转换的结果\r\n6.10 处理临时文档\r\n6.11 最终的样式表\r\n6.12 收集付款信息\r\n6.13 接收付款信息\r\n6.14 下一步\r\n\r\n第7章 产品搜索:XQL\r\n\r\n7.1 下载GMD-IPSI XQL Engine\r\n7.2 创建索引文件\r\n7.3 创建搜索页\r\n7.4 搜索结果页\r\n7.5 执行搜索及增强搜索\r\n7.6 下一步\r\n\r\n第8章 更新存货:SQL数据库和SAX\r\n\r\n8.1 连接到数据库:JDBC、ODBC和SQL\r\n8.2 创建存货数据库\r\n8.2.1 创建ODBC连接\r\n8.2.2 如何连接到一个数据库\r\n8.3 创建初始存货目录并插入数据\r\n8.4 SAX入门:调整存货\r\n8.5 使用SAX解析文件\r\n8.6 更新数据库\r\n8.7 从数据库中检索信息:拒绝订购(Backorder)\r\n8.8 完成循环\r\n8.9 下一步\r\n\r\n第9章 XML(SOAP)的其他应用\r\n\r\n9.1 浏览器检测\r\n9.1.1 请求标题\r\n9.1.2 资源包(Resource Bundle)\r\n9.2 媒体\r\n9.3 移动电话\r\n9.3.1 下载模拟器\r\n9.3.2 WML页\r\n9.4 使Servlet适应无线设备\r\n9.5 简单对象访问协议(SOAP)\r\n9.5.1 如何传送SOAP信息\r\n9.5.2 HTTP请求和响应\r\n9.5.3 进一步论述对象访问协议\r\n9.6 格式化对象\r\n9.6.1 下载、安装并检验FOP\r\n9.6.2 格式化对象文件的结构\r\n9.7 需注意XML的一些话题\r\n9.8 获得更多的信息\r\n9.9 结束语
1.编写背景
我之所以编写《从头学XML和Java编程一例通》,是因为我认为传统的入门读物不能满足每个学生的需要。典型的计算机入门读物按照合理的顺序讲解一系列的技能,然后当用户掌握了一个主题,读物就努力展示这些技能是如何被应用的。这种方法对于许多人来说是不错的,但是它并不适合于每个人。
我已经向10000多名学生讲授编程:小班,大班,以及通过Internet。许多学生告诉我,他们希望能够跟专家一起坐在计算机前共同编程。他们不愿意一步一步地通过听讲学习技能,而是希望能够在创建一个产品的同时学到必要的技能。
书中有一位专家将指导用户来设计和执行一个复杂的程序,从头开始,随着进展教会必需的技能。用户可以直接把《从头学XML和Java编程一例通》当作某个科目的入门书,也可以先读一本传统的入门书,然后再追加阅读该书。两种方式都可以,至于哪种更好些取决于个人的学习方式。
2.编写方案
贯穿这本书的进程,我们将为一个假想的家具公司Chase Web Furniture建立一个Web站点和应用程序。关于产品、价格、卖主等等的信息都存储在XML中。
我们从使用层叠样式表(Cascading Style Sheet,CSS))和XML样式表语言(XML Stylesheet Language,XSL)来建立一些简单的产品页面开始。然后,我们考虑文档类型定义(Document Type Definition,DTD)和解析器,它们分别描述一个XML文档应该包括什么内容以及确认它确实包含。在头几章中只是讨论关于XML的内容,而不涉及任何编程内容。
然后,在我们适应了基本的构造块之后,我们开始考虑Java以及它是如何与XML一起工作的。我们学习处理器以及如何使用它们,在其他事情中,使得我们的XML页面能够被任意浏览器读取,而不仅仅是那些懂得XML的浏览器。
从那儿开始我们转到实际的编程上来,使用Java servlet来处理来自于Web站点的订单。在做这件事情的时候,我们实际上考虑了三个应用编程接口(API,Application Programming Interface),它是对于一套指令的奇特措词。包括文档对象模型(Document Object Model,DOM)、XML的简单API(SAX)和JDOM。
我们也要处理名域,它是一个允许我们将来自不同源(例如这里的卖主)的数据无混淆地结合起来的标准。最后,因为我们要使用XML建立的许多应用程序目前与数据库有关,所以我们学习使用Java与XML协力来存取传统的SQL数据库。
3.系统需求
尽管相对于客户端或者浏览器端,更多的时间被用在了服务器端,用户还是应该能够将本书中的内容应用到自己的机器上,因为这本书是将Java用于服务器端的开发。这包括通常处理Web服务器的内容。本书需要使用的基本软件(所有的软件都可以免费下载)如下所示:
·Netscape 6(本书中使用的预览版1)或者Microsoft Internet Explorer5 Java开发软件工具包(Java Development Kit,J2SDK,也就是大家知道的JDK1.2)
·JavaServerTM开发软件工具包(Java ServerTM Web Development Kit,JSWDK)
·Xalan
·Xerces
·JDOM
·SQL
所有这些都可以从Web上免费下载。下载的地址和方法都包含在相应的部分中。
为了运行这些应用程序,用户需要:
·Windows95、Windows98、Windows2000、WindowsNT 4.0或者Red Hat Linux6.1
·Pentium或相当的级别
·133MHz
·32MB的RAM
Netscape 6应用程序也可以在Macintosh上运行,但是一些服务器端程序则不可以。然而,如果用户有权使用能够运行这些程序的服务器,那么用户只要浏览器、系统满足下面的要求就可以:
·Mac OS 8.5、Mac OS 8.6或者Mac OS 9
·200MHz PowerPC 604或者G3
·48MB的RAM
4.关于这本书
这本书与通常的技术图书不同,基于许多原因。首先,我们假定用户根本不懂这个主题的内容。读者甚至可以不懂HTML。经验总是有帮助的。所以,如果用户有Java或者其他编程语言的经验,当然在读懂本书的过程中会快些。然而,即便用户没有经验,需要知道的东西也都会随着内容的深入而被解释清楚。
第二,本书不使用那些分离的例子,而是从头到尾遵循一个方案。用户不仅可以看到所有这些片断是如何被结合到一起的,而且还可以知道它们源自何处。