Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JAXB包装所有字段_Java_Marshalling_Unmarshalling_Jaxb2 - Fatal编程技术网

Java JAXB包装所有字段

Java JAXB包装所有字段,java,marshalling,unmarshalling,jaxb2,Java,Marshalling,Unmarshalling,Jaxb2,目前,我有一个简单的类设置,如下所示: @XmlRootElement (name = "MyRoot") public class MyClass { @XmlElement (name = "String1") private String string1; @XmlTransient public String getString1() { return this.string1; } public void setString1(String string1) { this

目前,我有一个简单的类设置,如下所示:

@XmlRootElement (name = "MyRoot")
public class MyClass {

  @XmlElement (name = "String1") private String string1;
  @XmlTransient public String getString1() { return this.string1; }
  public void setString1(String string1) { this.string1 = string1; }

  @XmlElement (name = "String2") private String string2;
  @XmlTransient public String getString2() { return this.string2; }
  public void setString2(String string2) { this.string2 = string2; }
}
我希望从JAXB处理时类的输出如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MyRoot>
  <MyWrapper>
    <String1>ABC</String1>
    <String2>XYZ</String2>
  </MyWrapper>
</MyRoot>

基础知识
XYZ
我的问题是:

  • 有没有办法在不创建内部类的情况下做到这一点,而内部类是使用
    @XmlRootElement(name=“MyWrapper”
    设置的?这是JAXB的一个简单限制吗
  • 这是JAXB的限制吗
  • 是否可以编写/实现某种类型的自定义封送和解封送对象来处理这种类型的场景

  • 这是一个什么样的限制,很明显String1和String2是MyClass的成员,除非你重新定义它们的父类,否则它不会像那样改变


    建议,使它们暂时化,使用方法注释,并返回它们的数组

    我喜欢这个解决方案。我希望得到类似{@XmlElementWrapper}的东西,但更像是支持为要集中在其中的元素配置分组。我想这并不是真正的限制,而是库中的设计决策。