java - 编码时单组元素的 JAXB 元素包装器

标签 java xml jaxb

我希望有一个像这样的 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实现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 扩展的更多内容:

关于java - 编码时单组元素的 JAXB 元素包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28485747/

相关文章:

java - 使用 for 循环的 addItemListener 不可能

java - Apache POI XWPFRun isBold 未检测到粗体

Java file.exists() 找不到 XML 文件

java - JAXB 使用新的 JAR 添加带注释的类

java - Spring Roo 不生成 CRUD

java - 使用 JAXB 生成的 XML 中的重复字段

java - 将 Java 应用程序转换为 applet 混淆

java - 在Java中测试不同的文件读取方法

php - 嵌套 simplexml

php - 如何将xml文件插入到mysql表中