编组时单个元素组的 JAXB 元素包装器
JAXB Element Wrapper for a Single Group of Elements When Marshalling
我希望有这样的 XML 结构:
<?xml version="1.0" encoding="UTF-8"?>
<MSG>
<CASE>
<Field1></Field1>
<Field2></Field2>
</CASE>
</MSG>
问题是,对于@XmlElementWrapper,我需要一组项目,但只有 1 个案例项目。对于单个元素集合,我如何拥有多个根元素?最好在单个 class.
我想要这样的东西,但它抛出异常。
@XmlRootElement( name="MSG")
public class XMLStructure {
@XmlElementWrapper(name="CASE")
@XmlElement(name = "Field1")
private String field1;
@XmlElementWrapper(name="CASE")
@XmlElement(name = "Field2")
private String field2;
}
在 EclipseLink MOXy implementation of JAXB (JSR-222) 中,我们有一个 @XmlPath
扩展,可让您将其映射为:
@XmlRootElement( name="MSG")
@XmlAccessorType(XmlAccessType.FIELD)
public class XMLStructure {
@XmlPath("CASE/Field1/text()")
private String field1;
@XmlPath("CASE/Field2/text()")
private String field2;
}
了解更多信息
我在我的博客上写了更多关于 @XmlPath
扩展的内容:
我希望有这样的 XML 结构:
<?xml version="1.0" encoding="UTF-8"?>
<MSG>
<CASE>
<Field1></Field1>
<Field2></Field2>
</CASE>
</MSG>
问题是,对于@XmlElementWrapper,我需要一组项目,但只有 1 个案例项目。对于单个元素集合,我如何拥有多个根元素?最好在单个 class.
我想要这样的东西,但它抛出异常。
@XmlRootElement( name="MSG")
public class XMLStructure {
@XmlElementWrapper(name="CASE")
@XmlElement(name = "Field1")
private String field1;
@XmlElementWrapper(name="CASE")
@XmlElement(name = "Field2")
private String field2;
}
在 EclipseLink MOXy implementation of JAXB (JSR-222) 中,我们有一个 @XmlPath
扩展,可让您将其映射为:
@XmlRootElement( name="MSG")
@XmlAccessorType(XmlAccessType.FIELD)
public class XMLStructure {
@XmlPath("CASE/Field1/text()")
private String field1;
@XmlPath("CASE/Field2/text()")
private String field2;
}
了解更多信息
我在我的博客上写了更多关于 @XmlPath
扩展的内容: