java - Bean 到 XML 注释 : how to process nested structure

标签 java xml jaxb cxf aegis

对于 Web 服务中的 bean->xml 转换,我们使用 CXF 中的 Aegis(据我所知,它是 jaxb 兼容的)。

这是我的类型:

class C{
private int a;
private int b;
private T t;
...
}

class T{
private int t1;
private int t2;
}

我需要 t.t1 字段在 XML 中与 C 中的 ab 处于同一级别(从 xml 恢复的 bean 应该是这样的:

class C{ 
private int a; 
private int b;
private int t1 
}

(客户端代码仅对结构 T 中的字段 t1 感兴趣)。 谢谢。

最佳答案

您可以将 getT1()setT1(int) 添加到 C 并创建 getT() @XmlTransient

class C {
  // snip

  /**
   * JAXB only
   */
  @SuppressWarnings("unused")
  @XmlElement
  private void setT1(int t1) {
    if(t != null) {
      t.setT1(t1);
    } else {
      // TODO
    }
  }

  /**
   * JAXB only
   */
  @SuppressWarnings("unused")
  private int getT1() {
    if(t != null) {
      return t.getT1(t1);
    } else {
      // TODO
    }
  }
}

关于java - Bean 到 XML 注释 : how to process nested structure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2243104/

相关文章:

java - 如何使用Spring Security阻止未经授权的用户?

java - 如何逐行打印字符串对象

java - 如何编辑从 xsd 生成的 java 类

java - 如何为JAXB设置浮点格式(使用eclipse moxy的json)

java - 如何在多行上打印数组列表?

Java - 具有多个onClickListener的高效方法

java - 在另一个数据流中创建新的数据流

c# - 使用 XPath 查询从匹配的 XML 节点获取属性值

c# - 隐藏没有数据的 XElement 节点

java - 解决jaxb中的循环引用