关于JAXB1.0的一些小研究

     在一个项目用到了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模式(默认)

你可能感兴趣的:(jdk,数据结构,虚拟机,xml,windows)