首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java绑定与手动定义类

问Java绑定与手动定义类
EN

Stack Overflow用户
提问于 2008-11-04 11:39:34
回答 2查看 884关注 0票数 5

我有一个需要为其创建Java类的XML模式。这不是一个特别大的模式,我会说它将导致大约20个类。我正在尝试权衡是否使用自动绑定程序(如JAXB或JiBX中提供的程序),还是手动编写我自己的类并使用XStream之类的东西进行编组/解组。

与使用绑定程序相比,编写自己的类有什么优点/缺点。

另外,我使用绑定程序,我永远与之捆绑在一起。例如,如果我使用JAXB的绑定编译器创建类,是否必须使用JAXB进行所有编组/解组?

附注:我看到了以下关于XML绑定/序列化的问题,这些问题很有用,但并没有完全回答我的问题:xml-serialization-in-java和java-xml-binding

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-11-04 12:15:48

我不认为你的问题有一个明确的答案。但我可以给你一些来之不易的建议。以下是一些需要考虑的事项:

编写编组和解组代码是很耗时的,尤其是第一次。

  1. 你将不得不花相当多的时间来学习你的DOM库的细微差别(Xerces或它的Xerces是大量重复的,所以你最终会被驱使去写一些帮助器classes.
  2. You'll需要很多单元测试来确保你已经覆盖了可选元素和属性领域的所有基础。

查看这个列表,很容易就会说“这就是JAXB为我做的事情”。在这方面做了很多年之后,我想说JAXB为您节省了相当多的时间和精力,尤其是Java 5/6中JAXB的最新版本。

但是,如果您使用JAXB,我想传递一个我们在艰难中学到的教训:

*不要让JAXB生成的类泄漏到您的应用程序中。

正如您在问题中所说的,这将您的整个应用程序与JAXB的工作方式联系在一起。如果JAXB必须被替换(您将来可能会这样做的原因有很多),那么您将面临一项具有挑战性和痛苦的任务(相信我,我们已经做到了,我们再也不会处于这种境地了)。

现在,我们总是将JAXB生成的类隐藏在外观或工厂后面,从JAXB类映射到具有所需行为的我们自己的域POJO。我们认为JAXB就像JDBC一样;JAXB只是另一个数据源,另一种从域POJO获取数据的方式。域POJO是秘密武器,我们控制它们的编码方式和使用方式。JAXB只是一个编组和解组工具。

票数 14
EN

Stack Overflow用户

发布于 2008-11-04 12:38:12

我不想在这个问题上开始一场漫长而无休止的冬青之战,但根据我的经验-如果你可以使用为你生成所有代码的工具,而不需要可靠的JAR。将生成的代码将是丑陋的,但它将工作,直到您清楚地看到需要手工编写的代码。在大多数情况下,您不需要这样做。很抱歉,我不能立即给出使用什么工具的建议。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/261603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档