zoukankan      html  css  js  c++  java
  • Java中如何将XML对象反序列化

    查了下google,主要技术有:JAXB、Castor、JBind、Quick 和 Zeus
    JAXB下载:http://java.sun.com/xml/downloads/jaxb.html
    Sun的作品,应该好用的吧,没试过,主要因为License的原因。
    A JAXB Reference Implementation (JAXB RI) is included in the latest version (1.1) of the Java Web Services Developer Pack (JAVA WSDP 1.1).The Java WSDP is a free, integrated toolkit that allows Java developers to build, test and deploy XML applications, Web services, and Web applications.
    License是这样的:一般来说只限制于二进制机器码使用,做评估系统时可以有一份180天的源码拷贝,但对于LICENSE TO USE FCS SOFTWARE,有这样子的规定:
    Software is confidential and copyrighted.
    Unless enforcement is prohibited by applicable law, you may not modify, decompile, or reverse engineer Software.

    You may not create, or authorize your licensees to create, additional classes, interfaces, or subpackages that are in any way identified as "java", "javax", "sun" or similar convention as specified by Sun in any naming convention designation.

    不可以修改、反编译,也不能建含有"java","javax","sun"字样的包。

    Zeus下载:http://zeus.objectweb.org/
    在用法上,Zeus 代码生成类似于 JAXB 或 Castor,它提供了命令行工具来构造所需要的类。与使用 JAXB 一样,绑定使用接口。JAXB 使用工厂来构造对象类的新实例,而 Zeus 通过原型使用生成的实现类。用 Zeus 可以生成实现类的子类,当对文档进行数据分解时,使用子类而不是使用生成类。

    Zeus 只支持 String ,而不支持其它类型的值,譬如 int 或 Date 。它还缺乏对引用的支持,所以不能直接进行数据分解或编组图结构。
    Zeus 按照 Enhydra 公共许可证 V1.1 进行分发,该许可证来自 Mozilla 公共许可证。



    在网上找啊找,看到lumaqq用这个,然后想看看它怎么用,把它的源码下载来了。打开一看,好像没嘛。估计高版本不用Zeus了。不管了,他以前用Zeus总有一点道理,我就用Zeus吧。
    于是我到网上下载了一份Zeus,看了看docs下的help,叫我要编译成JAR、在console下运行。
    晕~出错了,来了个DTDParser类找不到,由于对Java不熟,弄了半天也不知道怎么就错了呢。
    一开始怀疑java.exe运行zeus.jar时没加载用DTDParser142.jar,老是在找java的-classpath选项怎么用,
    后来想弄清楚为什么会有NoClassDefError错误,自己编了个HelloWorld,故意造出NoClass这个错误,好像只有拼写错误才会出现,但上面没拼错呀。
    再后来直接在Eclipse上写参数么好了,果然在Eclipse上运行一下是好的,一看它用的是javaw.exe,哎?是不是这个的原因?在console下运行,没错误!但,也没结果。哈哈……不对。
    然后,想想把DTDParser那段代码去掉看看,去掉后,报了个DTD类找不到,嗯?怎么都跟DTD有关的呀?可能是DTDParser142.jar 不对吧,然后去下载一个DTDParser212.jar,直接加到项目中,改成5.0的格式,嘿,可以在Console下用了!兴奋ing...

    Zeus弄好了,先用着吧。以后再看看Castor,好像是不错的一个东东。
  • 相关阅读:
    python 读写json文件(dump, load),以及对json格式的数据处理(dumps, loads)
    Postman + newman + jenkins 的API自动化测试应用
    Selenium + WebDriver 各浏览器驱动下载地址
    pythonon ddt数据驱动二(json, yaml 驱动)
    python ddt 实现数据驱动一
    Python + logging 输出到屏幕,将log日志写入文件
    python 多线程小练习
    pycharm + git 的集成使用
    Map的遍历方式
    69道Spring面试题和答案
  • 原文地址:https://www.cnblogs.com/huqingyu/p/304178.html
Copyright © 2011-2022 走看看