【问题标题】:Marshal model in different ways using JAXB使用 JAXB 以不同方式执行 Marshal 模型
【发布时间】:2014-02-11 05:59:54
【问题描述】:

当然,这个问题之前在任何地方都被问过,但没有找到合适的解决方案:

是否有可能将带有 JAXB 的模型编组为不同的 XML 或以不同的方式。我仍然使用 Jackson 将此模型序列化为 JSON,我可以使用 @JsonView 或 JsonMixins 将其序列化为不同的 json 布局。

拥有这个模型:

public class Customer {
    public int getId() { return id; }
    public void setId(int id) { this.id = id; }
    private int id;

    public String getLastName() { return lastName; }
    public void setLastName(String lastName) { this.lastName = lastName; }
    private String lastName;

    public String getFirstName() { return firstName; }
    public void setFirstName(String firstName) { this.firstName = firstName; }
    private String firstName;
}

应该编组为:

<customer>
    <lastName>name</lastName>
<customer>

<customer>
    <id>name</id>
    <lastName>name</lastName>
    <firstName>firstname</firstName>
<customer>

我发现 thisthis 在 stackoverflow 上发帖,但建议是使用 EclipseLink JAXB。但不幸的是,Hibernate 作为持久性提供者仍在使用中。 EclipseLink 和 Hibernate(两者都是 O/R 映射器)不会真正一起工作 - 不是吗?

是否有可能使用 JAXB 将模型编组为不同的 xml?

【问题讨论】:

  • 您可以编组所有内容,然后使用 xslt 过滤输出。

标签: java xml hibernate jaxb


【解决方案1】:

我在 stackoverflow 上找到了这个和这个帖子,但建议是 使用 EclipseLink JAXB。但不幸的是,Hibernate 作为一种持久性 提供者仍在使用中。 EclipseLink 和 Hibernate(都是 O/R mapper) 不会真正一起工作 - 不是吗?

EclipseLink 提供 JPA (O/R) 和 MOXy (O/X (JAXB) & O/J)。您可以毫无问题地将 EclipseLink O/X 与 Hibernate O/R 一起使用。

使用EclipseLink MOXy,您可以使用对象图功能将模型的子集输出到 XML 或 JSON。

【讨论】:

  • 感谢您的链接!但是当用 maven 尝试你的例子时,我得到了一个 javax.xml.bind.PropertyException: name: eclipselink.object-graph value: contact info;我导入了 here 之类的库;另外导入了 javax.xml.bind.jaxb-api
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-15
  • 2012-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多