`
旁边的手
  • 浏览: 66403 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于JAXB1.0的一些小研究

    博客分类:
  • JAXB
阅读更多
     在一个项目用到了JAXB1.0,用来解析复杂的XSD文件,
     其中我们采用过N多方案处理XSD,包括XMLBeans,当然JDOM,DOM,SAX也都考虑使用,不过,由于后面几种会手写巨多的代码,当然没有被受我这个比较偷懒的人青睐了哟,呵。另外JDK我们用的1.4,迫使我用JAXB1.0,要是用JAXB2.0以上,我们处理XSD就更加如鱼得水了。
     不过在项目中采用JAXB1.0,遇到了很多问题,其中:
      jaxb1.0解析xsd时,是将xsd的层级结构处理成内部类的形式,
      这样,就出现了一个问题,如果xsd层级结构深,复杂的话,内部类的名字会非常的冗长
      因为内部类的命名是按层次累加过来的
      经过测试,得到一下数据:
      windows文件系统, 路径+文件名的长度不能大于255(最大为254)
     java虚拟机对class名字的限制是,class名不能超过248(248+".class" = 254)
      如果文件名过长,会导致class不能加载的错误      不过我们最后的解决方案:是手工改的名。不知道网友们有没有更好的办法,让我采纳下,十分感谢众多网友共现探讨研究。
     
附:xjc命令行接口的一些选项列如下:
-nv                对于输入的模式不执行严格的XML验证
-b <file>          指定外部的绑定文件
-d <dir>           指定生成的文件的存放路径
-p <pkg>           指定目标包
-classpath <arg>   指定classpath
-use-runtime <pkg> impl.runtime包不被生成
-xmlschema         输入的模式是一个W3C XML模式(默认)
3
1
分享到:
评论
6 楼 旁边的手 2009-01-11  
yefeng 写道

不知道JAXB2.0使用性能怎么样

对xsd生成JAVA对象,更加智能化了,比1.0的爽快多了。
5 楼 yefeng 2009-01-04  
不知道JAXB2.0使用性能怎么样
4 楼 旁边的手 2008-12-31  
我知道呀,JDK1.6话,我们用的WEBLOGIC81的话,只能用JDK1.4了,无耐呀。
3 楼 yefeng 2008-12-31  
还是直接用JDK1.6吧,1.6已经整合了JAXB2.0。
2 楼 旁边的手 2008-12-30  
是的,JAXB2.0支持JDK1.5呀,我们项目用的JDK1.4,没有办法呀,
JAXB2.0的话,有XSD就可以直接引进来,如果是JAXB1.0的话,对引入的XSD处理不了,只能处理单个的XSD文件,我们后面把引入拼到一个中去的,还是好费事的,不过相对对XSD数据的处理方便多了。
1 楼 puroc 2008-12-30  
我们项目之前遇到一次core dump问题就是有jaxb1引起的。后来换了jaxb2就好了。jaxb2各方面还是不错的,就是启动速度有点慢。

相关推荐

Global site tag (gtag.js) - Google Analytics