- 1、本文档共2页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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工具也不是万能的,但是它至少可以让你活的更轻松一些,忘掉那些无谓的解析代码,让它自动来帮你搞定,而且还能搞的很好,如果你不是自虐狂,你应该会喜欢它。至于其他的一些功能,自己慢慢挖掘吧。
您可能关注的文档
- 人性的光辉.doc
- 人性光辉写人要凸显个性.doc
- 如何实现javabean的属性拷贝.doc
- 如何正确的编写高质量高性能的MySQL语句.doc
- 使用多个Struts配置文件.doc
- “高等数学”教学大纲.doc
- “高等数学”课程教学大纲.doc
- “汽化之蒸发”教案.doc
- “祖国宝岛”--台湾.doc
- 《程序结构力学》英文教学大纲.doc
- 2024年灌装机系列设备项目资金申请报告代可行性研究报告.docx
- 2024年地板护理品项目资金筹措计划书代可行性研究报告.docx
- 2024年煤及矿产品批发服务项目投资申请报告代可行性研究报告.docx
- 2024年包装薄膜项目资金申请报告代可行性研究报告.docx
- 2024年武器、弹药及其零件项目资金筹措计划书代可行性研究报告.docx
- 2024年平板显示检测系统项目投资申请报告代可行性研究报告.docx
- 2024年打印耗材项目资金需求报告代可行性研究报告.docx
- 2024年煤焦油深加工产品项目资金筹措计划书代可行性研究报告.docx
- 2024年旅行社服务项目投资申请报告代可行性研究报告.docx
- 2024年多士炉项目资金筹措计划书代可行性研究报告.docx
文档评论(0)