gpt4 book ai didi

xml - 在我的应用程序中用 JAXB 替换 XStream

转载 作者:数据小太阳 更新时间:2023-10-29 02:58:39 26 4
gpt4 key购买 nike

目前在应用程序中,我们获得了一个 SOAP 响应 xml,每个元素都附加了 namespace 。我已经硬编码到我的代码中,命名空间被忽略,因为应用程序需要干净的 xml。但是经过测试,它被认为是一个薄弱的解决方案,因为 namespace 将来可能会发生变化。有人向我推荐使用 jaxb。我目前使用的是xtream,因为我们可以直接读取xml。所以我开始研究 jaxb。但是 jaxb 需要 xsd。我已经理解了这个过程,但我不确定如何在我的应用程序中实现 Jaxb,因为我收到了一个 xml 响应。所以,我的问题是在这种情况下可以用 jaxb 替换 xtream 吗?
谢谢

最佳答案

注意:我是 EclipseLink JAXB (MOXy) J AXB 2 (JSR-222) 的领导和成员专家组。

I am using xtream currently because we can directly read xml. So I have started looking into jaxb. But jaxb requires xsd.

JAXB 需要 XML 模式(它甚至在 XStream FAQ 上)是一种常见的误解。事实上,JAXB 被设计为从对象开始,并提供了一个选项来从 XML 模式生成带注释的对象模型。这在处理大型 XML 模式时非常有用:

Currently in the application we get a SOAP response xml with namespace attached to each element. I have hard coded into my code that the namespaces are ignored because the application wants clean xml. But upon testing it is being deemed a weak solution because the namespace might change in the future.

JAXB 对映射命名空间有很好的支持。这可以在包级别使用 @XmlSchema 完成,在类级别使用 @XmlType 完成,或者在字段/属性级别使用 @XmlAttribute/@XmlElement:

I have understood the process but I am not sure how to implement Jaxb in my application because I am getting an xml response

下面是一篇文章的链接,该文章使用 JAXB 和 XStream 将相同的对象模型映射到相同的 XML 文档。它会让您了解一些概念之间的关系:

另一件事是 JAXB 指的是标准 (JSR-222) 而不是特定的实现。实际上有几种实现方式,包括:

  • EclipseLink MOXy
  • Metro(引用实现)
  • Apache JaxMe

关于xml - 在我的应用程序中用 JAXB 替换 XStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8370125/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com