表示xml:
<foo xmlns="http://ns.com"
xmlns:ext="http://ext.com"
attr="xxx"
ext:bar="yyy">
</foo>
如何创建Foo类?具体来说,我希望能够以某种方式分离'ext'属性,因此它不是直接在Foo中,而是在另一个类中,并且以类型安全的方式(因此不是XmlAnyAttribute)。
我最理想的是:
class Foo {
Ext ext;
}
class Ext {
String bar;
}
答案 0 :(得分:0)
如果引用的对象只有一个带有@XmlAttribute
的映射字段/属性,则可以使用@XmlValue
映射POJO字段/属性。
<强>富强>
class Foo {
@XmlAttribute(namespace="http://www.ext.com")
Ext ext
}
<强 - >外部强>
class Ext {
@XmlValue
String bar;
}
了解更多信息
<强>更新强>
注意:我是EclipseLink JAXB (MOXy)主管,是JAXB 2 (JSR-222)专家组的成员。
如果我想映射多个属性怎么办?
您可以在MOXy中使用@XmlPath
扩展名来处理此用例:
<强>富强>
使用@XmlPath(".")
表示您希望XML文档中表示为同一级别的目标对象作为源对象。
class Foo {
@XmlPath(".")
Ext ext
}
<强 - >外部强>
class Ext {
@XmlAttribute
String foo;
@XmlAttribute
String bar;
}
了解更多信息