jaxb:内联元素

时间:2012-12-27 07:06:36

标签: java xml jaxb

假设:

@XmlRootElement(name = "foo")
class Foo {
   public Bar getBar() {...}
}

class Bar {
   @XmlElement(name = "string")
   public String getString() {return "hello";}
}

如何对XML进行注释,以便:

<foo>
   <string>hello</string>
</foo>

3 个答案:

答案 0 :(得分:4)

您可以利用@XmlValue注释执行以下操作。

<强>富

@XmlRootElement
class Foo {
    @XmlElement(name="string")
    public Bar getBar() {...}
}

<强>酒吧

class Bar {
    @XmlValue
    public String getString() {return "hello";}
}

了解更多信息

答案 1 :(得分:1)

您可能需要在班级上使用@XmlSeeAlso注释。

如果希望将另一个Entity bean包含在XML输出中,可以使用@XmlSeeAlso批注。你能在你的Foo课程中尝试这个吗?

@XmlRootElement(name = "foo")
@XmlSeeAlso(Bar.class)
class Foo {
   public Bar getBar() {...}
}

<强> UPDATE1:

如果您要使用EclipseLink JAXB (MOXy)'s删除XML中的条形码标记。 @XmlPath将解决您的问题。

@XmlRootElement(name = "foo")
@XmlSeeAlso(Bar.class)
class Foo {
   @XmlPath(".")
   public Bar getBar() {...}
}

有关详细信息,请参阅here

答案 2 :(得分:-1)