使用Xerces-J的SAX方式进行XML程序设计

--简介


  1. 简介
  2. SAX2(Simple API for XML)的结构
  3. SAX2的基本使用方法
  4. 常用的feature介绍
  5. 常用的property介绍
  6. Filter的使用
  7. 用serialize的方法输出XML文档
  8. C++与Perl语言版本的Xerces简介
  9. Xerces-J的性能优化
  10. 后记

Xerces原来是IBM开发的XML解析器项目,后来交给Apache基金作为开放源代码项目开发,后来Xerces还集成了其他一些XML解析器的源代码,例如SUN开发的X project(JAXP),和OpenXML.org开发的XML解析器。包括Java,C++和Perl三种语言的版本,本文仅详细讨论Java版也就是Xerces-J的开发介绍。目前Xerces最高稳定Java版本为2.5。该产品可以从http://xml.apache.org下载。

目前,解析XML文件主要有两种方法,一种是使用我们在这里介绍的SAX接口,另外一个是DOM接口,我们将会在后面介绍。SAX是Simple API for XML的缩写,这个接口是David Megginson写的一个开放源代码的基于Java语言的XML解析器接口,这个解析器接口的C++语言版正在策划中。该接口可以从http://www.megginson.com/SAX下载,在使用中遇到的问题或者发现bug可以同David Megginson联系,email信箱为david@megginson.com。同时David本人对XML和java在世界各地的应用情况也很感兴趣。

Xerces-J提供了SAX(Simple API for XML)Version1/2和DOM(Document Object Module)Level 1/Level2 Version1两种接口。Xerces-J可以进行严格的XML语法校验,另外还支持Schema技术。Xerces-J的适用范围包括具有xml功能的服务器程序,使用XML作为数据源的应用程序,XML编辑器。另外Xerces-J支持包括GB2312和BIG5在内的数十种语言,很容易建立真正的国际化的应用。

根据笔者的测试,Xerces-J在pwindow98, mobile PIII 650,128M内存的情况下解析10K的XML文件使用Java.exe约须时280ms(无校验)/660ms(有校验),使用jview.exe约须时380ms(无校验)/770ms(有校验)。这个速度比Aelfred稍微慢一点点,但是从功能上来讲这一点速度的损失还是值得的,后面我们还将讨论如何加快Xerces-J的运行速度。