JAXB以其方便的XML数据处理能力可能会引起你的爱好。你可能还不了解JAXB是什么,想要知道它到底有什么好处,假如这是你需要的,你才会再花时间去细细的研究它,或者你只需要使用最基本的功能。然而Sun关于JAXB的文档有80页之多。我想大部分人都没有耐心看完这样的长篇大论。本文以简短的篇幅介绍了JAXB的基本使用,算是先睹为快吧。本文附带的代码包括了JAXB1.0 early access版本和本文所使用的代码。欢迎与我讨论: mailto:boyofjava@sina.com
本文假设你会使用Java编程,了解并能够看懂XML,DTD。
1 为什么要使用JAXB 在Java中处理XML数据的常规方法有SAX,DOM等。其中SAX使用起来很麻烦,不能修改XML数据;而DOM的处理大文档速度非常的慢,易用性也不必SAX好到哪里去。实际上,无论是SAX还是DOM都不是专门为Java预备的,它们都是访问XML文档的统一底层接口,与语言无关。 现在我们有了另外的选择。这就是JAXB和JDOM。JDOM与本文无关,目前最新的版本是beta8,感爱好的话,可以访问http://www.jdom.org/。 JAXB的全名是Java ™ Architecture for XML Binding,目前是1.0的early access版本,在Sun的Java站点只有注册为成员才能够下载。JAXB的特点就是将你用DTD定义好的XML文档映射为Java对象,提供简单、快速的数据操作方式。要访问XML中的元素、属性只要通过相应对象上的一系列getter和 setter方法。你还可以通过marshal方法将对象的数据写进XML文件,通过unmarshal方法将XML文件的数据读入对象,通过validate方法验证XML文件是否符合DTD的约束。JAXB的缺点就在于只能访问特定的(也就是你用DTD定义的)XML文档。
3 JAXB的安装 以1.0 early access为例,它不包含在JDK中,先到http://java.sun.com/xml下载。注重由于是早期版本,需要先登录才能下载,本文附带的源码包含了JAXB1.0 early access。下载后将文件解压缩,在lib目录中有两个文件。jaxb-rt-1.0-ea.jar是运行支持库,jaxb-xjc-1.0-ea.jar是模式编译器。注重bin目录中的xjc文件只能在UNIX下使用,假如你的系统是Windows,那么你需要在命令行窗口手工输入命令来编译。为了在任何地方都可以运行模式编译器和它生成的代码,我们要把这两的文件加入CLASSPATH。一个简单的办法是把这两个文件拷贝到jre/lib/ext下。
8 参考文档 1 The Java ™ Architecture for XML Binding User’s Guide (http://java.sun.com/xml/jaxb/jaxb-docs.pdf) 2 Web Services Made Easier. The Java TM APIs and Architectures for XML, A Technical White Paper (http://java.sun.com/xml/webservices.pdf )