主要分为五个部分。第一部分介绍了XML、DTD、XML Schema等基础知识,这些知识主要教读者如何定义有效的XML文档,这部分内容是深入学习后面知识的基础,也是每个使用XML的开发者都应该掌握的基础。第二部分介绍了CSS、XSLT和XPath等知识,通过使用CSS或XSLT,可直接将XML文档当成视图技术。第三部分介绍了DOM、SAX、JAXP、dom4j、JDOM、XQuery和XQJ等,其中的DOM、SAX、JAXP、dom4j和JDOM都以结构化的方式来创建、解析XML文档,从而可以将XML文档作为数据传输工具,而XQuery则是一种新规范,通过XQuery可以查询XML文档中的数据,就像使用SQL查询关系数据库的数据一样。第四部分介绍了Web ServicesService和CXF,其中CXF是Java领域的主流Web ServicesService框架,简单易用。第五部分则提供了两个综合性案例:基于XML的电子公告系统和电子拍卖系统,让读者将前面所学应用到实际项目中。尤其是电子拍卖系统。它是一个包含5个表,表之间具有复杂关联映射的系统,该案例采用目前流行、规范的轻量级Java EE架构,将整个应用分为领域对象层、DAO层和业务逻辑层,然后用CXF将业务逻辑组件包装成Web ServicesService,从而可以将现有的Java EE项目与其他平台的、其他语言的异构项目进行整合,具有极好的指导价值和借鉴意义。
疯狂Java体系成员,李刚老师作品, 提供代码下载和不定期答疑等服务
前 言
自从1998年XML问世以来,XML已经广泛应用于各种开发平台、各种编程语言中,并以XML为基础衍生出大量新的标记语言,如SVG(Scalable Vector Graphics)、SMIL(Synchronized Multimedia Integration Language)等。这些都充分说明了XML具有强大的生命力和广泛的应用前景。
目前虽然XML在Java领域的热度不如以前,因为有不少框架都开始采用注解代替了原来的XML配置,但这并不意味着能彻底忽略XML,实际上XML在Android开发、Java Web开发中依然有着广泛的应用,掌握XML、XML Schema的语法能帮助开发者更好地理解Android开发、Java Web开发中的各种XML文档;在跨平台数据交换方面,XML依然是一个非常优秀的选择;此外,编写爬虫程序时还需要利用XPath来提取文档内目标节点的信息……总之,XML可能不如以前热门,但XML依然是很多开发领域(甚至不局限于Java)的基础知识,扎实的XML基础可以让你在学习其他编程知识时事半功倍。
很多人可能都觉得XML非常简单,因为每天都会接触XML文档,但如果深入地问一下:XML除作为配置文件之外,还能干什么?他们往往一无所知。
他们知道XML可以作为配置文件,但可能不知道XML配置文件的结构是由DTD、XML Schema控制的——因为我经常听到有人问web.xml文件能包含哪些元素、如何将JSP文件配置成一个Servlet等诸如此类的问题,如果知道阅读web.xml文件对应的DTD、XML Schema,那么他们就不会再存在这些疑问了。
他们可能不知道XML还可以作为一种轻量级的持久化解决方案,就像数据库一样,应用程序可以用类似于SQL的XQuery来查询XML文档中的信息;可能不知道XML可以直接作为表现层来代替传统的HTML……
大部分人都知道XML可以作为配置文件,但即使只打算把XML作为配置文件使用,掌握XML Schema也能更好地理解配置文件的结构:配置文件能包含哪些元素、各元素之间的父子关系、各元素能指定哪些属性等。
实际上,XML作为配置文件只是XML的功能之一,不管是对于Java平台,还是其他如.Net平台,XML都具有非常重要的作用。就像做B/S开发的程序员,可以选择Java、PHP或者其他语言,但是却无法回避JavaScript;XML也是如此,它不仅对于Java平台是有用的,而且对于其他开发平台也是有用的。
希望本书能让广大Java学习者、开发者掌握真正的XML及其相关知识,与疯狂Java体系中的其他图书类似,《疯狂XML讲义》也是一本立足“实战”的图书。本书不再是简单的知识点铺陈,而是致力于将知识点融入实际的项目开发中,因此仅仅“阅读”本书是不够的,一定要配合实际的代码练习才能真正掌握本书介绍的XML知识。
此外,本书大部分章节后都提供了相应的编程习题,供开发者巩固所学,将理论融入实际开发中。关于这些编程习题的解题思路可以通过本书学习交流群参与讨论。
本书有什么特点
在写作本书过程中大量参考了http://www.w3c.org站点中关于DTD、XML Schema、XSLT、XPath、XQuery等技术的最新规范。
本书系统、深入地介绍了XML以及相关技术,希望读者能通过本书更全面地掌握、使用XML的相关知识。归纳起来,本书大致有如下三个特点。
1. 知识全面、专业性强
本书并不是一本关于XML基础的图书。本书系统而深入地介绍了XML相关知识,不仅包括DTD、XML Schema等基础内容,而且包括XSLT、XPath、XQuery、DOM、SAX、JDOM和dom4j等高级内容。除此之外,还介绍了XML在实际企业开发中一个重要的应用方向——Web Service,并介绍了Java领域的Web Service框架:CXF的用法。这些知识点覆盖了与XML相关的绝大部分内容,专业性非常强。
2.案例实际、实用性强
本书前面章节在讲解各知识点时,不仅介绍了它们的基本语法,还提供了与之对应的示例,希望读者能够理论结合实际,边读边练,通过编码来掌握相应的知识。本书除介绍XML及其相关知识之外,还重点介绍了如何将XML知识融入实际的应用开发中。例如书中最后两个案例,都是XML在实际企业开发中极好的范例。
3.深入浅出、易读性强
本书与疯狂Java体系的其他图书一样,即使在介绍专业性极强的知识时,也尽量使用深入浅出的类比法来帮助读者理解,并配合针对性很强、重点突出的示例来说明这些知识,降低初学者的学习难度。通过这种案例驱动的讲解方式,让读者在阅读时更容易理解各知识点的功能,并能迅速将所学知识应用于实际开发中。
本书写给谁看
本书是疯狂Java体系图书之一,在学习本书之前不需要任何XML基础,但DOM、SAX、dom4j、JDOM解析部分包含了大量Java编程,因此建议读者先阅读疯狂Java体系的《疯狂Java讲义》一书。如果时间允许,建议读者按照本书所附的学习线路图,遵循学习规律进行学习。
2019-09-16