|
|
1
32
JAXB是将Java对象转换为XML的标准和最佳方法。有几种开放源代码实现可用:
有关JAXB的更多信息,请访问我的博客: 更新: 最好的方法是什么? 这最终取决于你想做什么,我将解释如下: 用例1-从XML模式开始 在这个用例中,你有一个XML模式,你想生成一个Java模型。这个线程中提到的工具不支持这个用例。 XStream for example recommends XMLBeans for this 。 提名人:
用例2——从Java类开始(可以编辑) 在这个用例中,您有更多的选择(只消除了xmlbeans)。编辑通常需要添加注释来控制映射。 提名人:
用例3——从Java类开始(无法编辑) 在这个用例中,您没有修改模型类的源代码。这要求元数据在外部由代码提供XML文件。 提名人:
用例4-中间相遇(现有类和模式) 在这个用例中,您有需要映射到现有XML模式的现有类。墨西哥人 XPath based mapping 是我所知道的唯一可以处理这个用例的工具 提名人:
用例5-XML信息集保留: 在这个用例中,您需要保留未映射的内容:注释、处理指令等。 提名人:
用例6-与JPA的兼容性 JPA是Java持久化的Java标准。JPA有许多概念:组合键、双向关系、延迟加载等,很难与XML绑定解决方案一起使用。例如,任何只通过字段与对象交互的XML工具通常都会遇到延迟加载属性的问题。 提名人:
用例7-与XML Web服务(JAX-WS)的兼容性 JAXB是JAX-WS的默认绑定层。 提名人:
用例8-与RESTful Web服务(JAX-RS)的兼容性 JAX-RS提供了一种基于HTTP协议的轻量级JAX-WS替代方案。查看以下内容 example . 提名人:
用例9-与弹簧的兼容性 Spring有一些与XML绑定工具集成的内置支持,有关详细信息,请查看以下链接: 提名人:
其他需要考虑的事项
我选择最好的方法?JAXB 从上面的类别来看,JAXB可能并不总是最适合某个特定用例(但它总是很适合的),但它是唯一可以用于所有用例的库。这意味着它总是可以完成这项工作。另一种选择是为不同的任务使用不同的库,从而为您提供多个库来支持。 我确实领导了一个JAXB实现eclipselink-moxy,但moxy最初是一个专有的XML绑定库toplink-oxm。Toplink一直理解标准(即EJB/JPA)的好处,我们实现了JAXB 1。然后我们(我是代表)成为了JAXB2(JSR-222)的活跃成员。 |
|
|
2
10
你总是可以自己做
这并不像听起来那么疯狂。这并不难,而且你将完全控制和了解所做的事情。 我愿意承认,很多人更喜欢自动化方法。我的提议不受欢迎。 我以前使用过XStream并喜欢它,但是使用它时,我不必担心XML名称空间。我听说Xstream处理得不好。 |
|
|
4
1
|
|
5
1
|
|
|
6
0
还有:
但是我建议如果你没有充分的理由使用JAXB。 |
|
|
7
0
|
|
|
8
0
Apache Digester 是一种选择。这里是 tutorial 如果可以接受JSON格式,则可以使用 google-gson 。 |
|
|
9
0
Casor允许直接从XSD模式生成Java类(体面实现)(以上用例用例1)。 在android 2.1中,请确保不要使用默认的android saxparser。您将得到名称空间错误。通过将解析器定义为core.properties中的Xerces(并添加所需的JAR),可以做到这一点。在Android 2.2中,这可能是正常的。请注意,如果使用Xerces为解封器创建一个XMLContext,它仍然无法工作,因为映射本身将使用Android的SAX进行解析。它必须在核心(顶级属性文件)上完成,这样Xerces甚至可以解析映射。最后-性能和您期望的一样慢…:(祝你好运 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 8 月前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 8 月前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 8 月前 |
|
|
rudraraj · java中未声明最终变量 9 月前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 9 月前 |