初识XML
经常会使用和看到XML配置文件(如常见的web.xml,tomcat中的server.xml等),也基本了解该配置文件的用途,但都是通过阅读说明(注释文档或百度)"照猫画虎"的去配置XML文件,对其基本的工作原理一概不知,也从未自己写过一个感觉很有用的XML文件(如何配置数据,如何获取数据等)。最近在读《项目实践精解:Java Web应用开发》,贯穿全书的是一个"eBookStore"("电子书店")项目,其中第四章便是XML技术,项目中使用一个XML文件来存放有关数据库的相关数据(如数据库名称,使用的数据库驱动名称,数据库登录用户和密码等,我以前都是将这些数据写入代码中)。将数据放入XML文件有一个很大的好处就是:方便维护,修改密码等只需修改XML配置文件即可,而无需更改代码。
对于XML这一块知识体系还是相当庞大的,涉及的知识面比较广(SAX,XSL等),需要记忆的东西也是特别多(如dtd文件里的那些元素规则)。就本人的情况来看,在今后的一段时间里,依然不会经常使用XML,所以在此大致梳理一下XML涉及的知识内容以及XML的工作流程(主要是数据的获取)。
XML是Extensible Markup Language的简写,即可扩展标记语言。至于XML和HTML、XHTML的关系,百度一大坨,在这里就不详细说了。
一个XML文档包含三个部分:文档声明、文档类型的定义、用XML标识("标识"是XML文档中的术语,"标识"是用来定义元素的,必须成对出现)创建的内容
XML基本语法和HTML类似,但也有一些特殊语法,需要特别记忆,具体有哪些语法可自行百度。
每一个良好格式的XML都必须遵守XML语法规则,每一个有效的XML都必须遵守相应的DTD文件规范。
DTD是一种保证XML文档格式正确的有效方法,它就像Java里面的接口一样,定义一系列规范,方便共享和交换数据。定义DTD文件,需要掌握大量的元素规则,这需要时间去记忆。有关DTD语法可自行查找其他资料或百度学习。
DTD规范严格地定义了结构,但只支持相对功能较弱的内容类型规范,而对强制性结构(如:规定名为Data的数据必须包含有效值)却无计可施。此时,就需要XML Schema了,XML Schema自身就是一个XML文档,它是用一套预先规定的XML元素和属性创建的,这些元素和属性定义了文档的结构和内容模式。XML Schema预定义的数据类型包括简单类型和复杂类型,这些都得花时间去记忆,有关详细的XML Schema可自行查找资料或百度学习。
首先我们定义规范,然后根据规范创建有效的XML文件,此时就需要我们获取XML中的数据了,即XML解析。有针对XML的文档对象模型(DOM)和简单的API(SAX)解析技术,借助这些解析技术,我们便可以从XML文件中获取到想要的数据。DOM功能比较强大,使用起来简单,可以对数据和结构进行更改,但是花费的时间较长。SAX读取和操作XML数据更快速、更轻量,SAX API是一个基于事件的API,适用于处理数据流,即随着数据的流动一次处理数据。具体的DOM和SAX使用可以查看源码或阅读说明文档。
XML是对数据和数据结构的存储,而Schema是对XML数据类型的定义。接下来就是XML数据的显示了,这就涉及到XSL(XML的样式表),它能让XML数据以漂亮的形式显示出来。关于XSL的详细使用可自行查找资料或百度进行学习。
关于XML,书中(《项目实战精解:Java Web应用开发》第四章)涉及的东西大致就这么多,这里尽可能的绘制出一个大概轮廓,方便以后继续深入研究。