前 言
自从1998年问世以来,XML已经广泛应用于各种开发平台、各种编程语言中,并衍生出大量新的标记语言:如SVG(Scalable Vector Graphics)、SMIL(Synchronized Multimedia Integration Language)等,这些都充分说明了XML强大的生命力和广泛的应用前景。
对于大部分Java开发者而言,使用XML最多的地方还是配置文件,不管是Java Web应用的初学者,还是Struts、Spring等开源框架的学习者,几乎每天都会接触到大量的XML文档。因此大部分开发者都会把XML文档和配置文件等同起来,但实际上XML的应用是非常广泛的。本书系统而深入地介绍了XML以及XML相关方面的内容,并通过实际案例示范了XML在实际开发中的应用,本书将带领读者系统而深入地掌握XML的相关知识。
本书大部分章节后都提供了相应的编程习题,供学习者巩固所学、将理论融入实际开发之用。关于这些编程习题的解题思路和参考答案可登录http://www.crazyit.org获取。
本书有什么特点
本书写作过程中大量参考了http://www.w3c.org站点中关于DTD、XML Schema、XSLT、XPath、XQuery等技术的最新规范。也参考了微软MSDN里关于XML的内容,主要由http://msdn. microsoft.com/zh-cn/library/ms256177.aspx和http://msdn.microsoft.com/zh-cn/library/ms256177(VS.80).aspx两个页面提供。
本书希望系统、深入地介绍XML以及相关技术,希望读者能通过本书更全面地掌握、使用XML的相关知识。归纳起来,本书大致有如下3个特点。
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体系的其他图书一样,即使在介绍专业性极强的知识时,也尽量使用深入浅出的类比来帮助读者理解它们,然后配合针对性很强、重点突出的小示例来说明这些知识,降低初学者的学习难度。通过这种案例驱动的讲解方式,让读者阅读时更容易理解各知识点的功能;接下来又能迅速将所学知识应用于实际开发。
本书创作感言
动手写作本书之前,博文视点的朱沭红老师已经善意地提醒笔者:关于XML的书都很难卖,可能大家都觉得XML太简单了。想一想也是,几乎所有学习Java开发的读者都应该接触过XML文档:当你开始学习JSP开发时,你就得写web.xml配置文件;当你学习Struts时,你又得写struts-config.xml配置文件。几乎所有Java学习者都接触过XML文档,所以大家可能觉得XML如此简单,怎么可能需要一本书来介绍呢?
很多人可能觉得XML非常简单,因为他们每天都会接触XML文档,但如果再深入问一下:XML除了做配置文件之外,还能干什么?他们往往一无所知。
他们知道XML可以做配置文件,但可能不知道XML配置文件的结构是由DTD、Schema控制的——因为我经常看到有人问web.xml文件能包含哪些元素?如何将JSP文件配置成一个Servlet?等等诸如此类的问题,如果他知道阅读web.xml文件对应的DTD、Schema,那他就不会再存在这些疑问了。
他们可能不知道XML还可以作为一种轻量级的持久化解决方案,就像数据库一样,应用程序可以用类似于SQL的XQuery来查询XML文档中的信息。他们可能不知道XML可以直接作为表现层来代替传统的HTML……
后来我觉得,如果确实存在上面这些情况,那我就更应该有这样一本书:全面而深入地来介绍XML的相关知识,希望可以让大家掌握XML的全貌。作为配置文件只是XML的功能之一,而XML的作用远不止这些。
最后我和朱沭红老师达成一个共识:出版一本图书除了考虑经济上的回报之外,更多地应该考虑一本书对社会价值的作用。就我以一个老程序员的眼光来看,XML不管是对于Java平台、还是其他如.NET平台都具有非常重要的作用。就像做B/S开发的程序员,你可以选择Java、PHP或者其他,但你无法回避JavaScript;XML也是如此,它不仅对于Java平台是有用的,而且对于其他开发平台也是有用的。
由于XML技术有着广泛的用途,而广大Java学习者、开发者又对其重视不够,因而我们觉得出版这样一本书也许可以让大家对XML投以更多的目光,那这本书的价值也就体现出来了。
本书写给谁看
本书是疯狂Java体系丛书之一,学习本书无须任何XML基础,但DOM、SAX、dom4j、JDOM解析部分包含了大量Java编程,因此建议先阅读疯狂Java体系的《疯狂Java讲义》一书。如果时间允许,建议读者按照本书所附的学习线路图,遵循学习规律进行学习。