Rac*_*hel 27 java xml serialization
什么是转换不同的方法Java Objects
来XML
,我知道有一个选项JAXB
,但想知道是什么其他approaches/tools
可用于相同?
注意:我没有进一步的要求,因此我无法meat
在问题中添加更多内容,但是在这个时候,如果我能够了解可用于转换的不同方法,那将会非常棒Java to XML
吗?
更新:不同的建议方法是:
现在所有的建议方案中什么是最好的去转换方法Java Objects to XML
和XML to Java Objects
?
bdo*_*han 32
JAXB是将Java对象转换为XML的标准和最佳方法.有几种开源实现可用:
有关JAXB的更多信息,请查看我的博客:
更新:
什么是最好的方法?
这最终取决于你想要做什么,我将在下面解释:
用例#1 - 从XML模式开始
在此用例中,您具有XML架构,并且您希望生成Java模型.此线程中提到的工具中没有多少支持此用例. 例如,XStream为此推荐了XMLBeans.
提名人:
用例#2 - 从Java类开始(可以编辑)
在这个用例中,您有更多选择(仅消除了XMLBeans).编辑通常涉及添加注释来控制映射.
提名人:
用例#3 - 从Java类开始(无法编辑)
在此用例中,您没有修改模型类的源代码.这要求外部提供元数据,或者使用代码的XML文件.
提名人:
用例#4 - 中间相遇(现有类和模式)
在此用例中,您需要映射到现有XML架构的现有类.EclipseLink MOXy及其基于XPath的映射是我能够处理这个用例的唯一工具
提名人:
用例#5 - XML Infoset保存:
在此用例中,您需要保留未映射的内容:注释,处理指令等.
提名人:
用例#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的轻量级替代品.请查看以下示例.
提名人:
用例#9 - 与Spring的兼容性
Spring有一些内置支持与XML绑定工具集成,请查看以下链接以获取更多信息:
提名人:
其他要考虑的事情
我选择最好的方法? - JAXB
看看上面的类别,JAXB可能并不总是最适合特定用例(但它总是很合适),但它是唯一可用于所有用例的库.这意味着它总能完成这项工作.另一种方法是为不同的任务使用不同的库,为您提供多个库支持.
我确实领导了一个JAXB实现EclipseLink MOXy,但是MOXy开始作为专有的XML绑定库TopLink OXM.TopLink始终了解标准的好处(即EJB/JPA),并且我们实现了JAXB 1.然后我们(我是代表性的)成为JAXB 2(JSR-222)上的活动成员.
duf*_*ymo 10
您可以随时使用javax.xml.bind.Marshaller
和javax.xml.bind.Unmarshaller
接口来完成.
这并不像听起来那么疯狂.这并不难,你可以完全掌控并完成所做的事情.
我愿意承认很多人更喜欢自动化方法.我的产品不会受欢迎.
我过去使用过XStream并喜欢它,但是当我使用它时,我不必担心XML命名空间.我被告知XStream没有很好地处理它们.
归档时间: |
|
查看次数: |
18396 次 |
最近记录: |