如何使用JavaBinding减轻开发负担.docVIP

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java XML Data Binding,简单来说就是一种在XML和Java之间做转换的技术,比如把XML文件转换为Java对象,或者反之。这样的工具有很多,比如JAXB,Castor, Zeus等等。他们目的相同,只是功能有强弱之分。如果你有很多XML文件需要解析,又不想写代码,使用Java XML Data Binding将会省下你很多的力气。LumaQQ采用XML做为配置文件的格式,其解析部分均有Zeus自动生成。Zeus功能虽然不多,但是比较适合简单的应用场合,而且其生成的代码结构是完全的面对对象式的;缺点就是Zeus目前缺乏维护,基本上都已经不更新了,但是如果你只想用它来简单读写XML文件,它还是非常适合的。本文主要介绍Zeus的一些相关概念和使用方法,你了解了一个,其他的自然也就很好了解了。Zeus目前已经停止了更新,但是我觉得它还是很好用的,LumaQQ使用的Zeus是经过我修改的,纠正了一些Zeus的Bug,所以也许我这里的版本是必威体育精装版的,如果你对Zeus有兴趣,可以向我索取源代码。 使用Zeus自动生成代码 如果你有一个XML文件想读取,同时你又不知道这个世界上有那么多方便的工具,也许你会开始自己动手写XML解析的代码,也许一个你可以写,如果要写很多呢?这些功能相似结构也相似的代码会让你烦躁的,所以我们要用工具来减轻工作的负担。要想自动生成代码,首先你需要写一个DTD文件,对于Schema,Zeus的支持不太好,如果你想用Schema,可以尝试Castor。为了了解Zeus的使用方法,举个例子最简单,我们开始: 第一步:定义你的DTD 如果你想读写一个XML文件demo.xml,例如下面的例子: ?xml version=1.0 encoding=UTF-8? A attA=a Bb1/B Bb2/B /A 那么demo.dtd可以这样定义: ?xml version=1.0 encoding=UTF-8? !ELEMENT A (B*) !ELEMENT B EMPTY !ATTLIST A attA CDATA #REQUIRED 对于XML的一些知识,如果你不熟悉的话可以先找一些资料看看,上面的例子非常简单,如果是更复杂的文件,只不过产生的类多一点而已。 第二步:使用Zeus生成代码 Zeus提供了一个批处理文件来包装它的功能,使用时需要提供许多参数,但是基本上每次都是这个模式,你可以每次都使用相同的参数,只要稍微改一下即可,就像下面这样: zeus.bat -constraints=demo.dtd -outputDir=src -javaPackage=edu.tsinghua.demo constraints参数指定你的DTD文件路径,outputDir指定Java源文件输出目录,javaPackage是生成的类所在的包。Zeus会对每个元素生成一个接口和一个实现类:A和AImpl,B和BImpl。由于B是A的孩子,所以A会有一个getBList()和setBList()方法,其返回一个List对象。对于属性,会生成getAttrA()和setAttrA()方法,其参数或者返回值都是String对象。可见,生成的代码结构是非常简单的,如果你要写demo.xml,你只需要调用A对象的marshal方法,就像这样,new AImpl().marshal(demo.xml)。如果你要读demo.xml,稍微有点不同,Zeus会额外生成一个AUnmarshaller类,你可以调用这个类的unmarshal方法来读文件,如下: A a = new AUnmarshaller().unmarshal(demo.xml); AUnmarshaller读取demo.xml,把它转换成了根元素对象,然后的事,还用我说吗? 在Eclipse中使用Zeus 你可以在Eclipse中添加一个外部工具,这样就不用次次都敲命令行了,当然更好的是,你可以写一个Zeus插件来用。 其他的Java XML Data Binding工具 其他的工具虽然功能各有差异,但是你明白了Java XML Data Binding基本含义就够了,使用都是一些具体的事,看看它们的文档,你就明白怎么用了。 总结 Java XML Data Binding工具也不是万能的,但是它至少可以让你活的更轻松一些,忘掉那些无谓的解析代码,让它自动来帮你搞定,而且还能搞的很好,如果你不是自虐狂,你应该会喜欢它。至于其他的一些功能,自己慢慢挖掘吧。

文档评论(0)

精品资料 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档