从dom4j到JAXB

      寒假前,大费周章地按照BPEL协议的规定,并参考了Eclipse的BPEL设计工具的模型设计,建了大量的POJO模型。然后给每个模型类加了一个toElement()方法,利用dom4j工具将内容翻译成XML。这样可以做到只要最后执行:根节点的toElement()方法,就可以得到完整的BPEL流程的代码。为了保险起见,我还给每个POJO做了单元测试,以保证没有“笔误”。这些代码可都是一个字母一个字母打出来的呀!

 

      随着项目的推进,模型的一些细节需要改进,渐渐感觉dom4j有点麻烦,很多方法设计得不“人性化”,比如设了命名空间的url还要自己设prefix,不会自动生成,说白了就是不能让我偷懒。于是想到了JAXB,不用导第三方包,而且BPEL有现成的schema可以自动生成代码。于是去jdk的bin下翻出了xjc,敲下一行命令:“xjc -d 目的路径 -p "包名" schema文件”,一个回车,啪啦啪啦所有schema里定义的元素都给我生成出来了!靠,之前花在建模上那么多的劳动力都白费了……

 

     另外,记录一个心得:用dom4j从url构建document,只要是http协议(其它的协议没试)即使url的返回是空的或者压根就是乱输的,这个document也不会为空,会有一个默认根节点: <html />,所以不能简单的用根节点是否为空来作判断。

你可能感兴趣的:(eclipse,jdk,html,xml,单元测试)