java - 如何将集合包装在单个父标签中

标签 java xml collections jaxb

我有一个名为 XmlSource 的类,它包含 XmlSourceAudioLang 类型的对象集合,并且 XmlSourceAudioLang 类有一个名为 language 的字段,我需要将其编码为 XML,即:

@XmlAccessorType(XmlAccessType.FIELD)
public class XmlSource {

  @XmlElement(name="original_audio_language", nillable=true) 
  protected Set<XmlSourceAudioLang> originalAudio;

}

@XmlAccessorType(XmlAccessType.FIELD)
public class XmlSourceAudioLang {

  @XmlElement(nillable = true)
  private String language;

}

通过此设置,JAXB 为集合中的每个对象生成一个 original_audio_language 标签:

<original_audio_language>
  <language>Ukrainian</language>
</original_audio_language>
<original_audio_language>
  <language>Russian</language>
</original_audio_language>

有没有一种方法可以配置绑定(bind),以便只有一个父 original_audio_language 标签?

最佳答案

假设你的意思是你想要这个:

<original_audio_language>
  <language>Ukrainian</language>
  <language>Russian</language>
</original_audio_language>

然后试试这个:

@XmlAccessorType(XmlAccessType.FIELD)
public class XmlSource {
  @XmlElementWrapper(name="original_audio_language") 
  @XmlElement(name="language")
  protected Set<XmlSourceAudioLang> originalAudio;
}

@XmlAccessorType(XmlAccessType.FIELD)
public class XmlSourceAudioLang {  
  @XmlValue
  private String language;    
}

关于java - 如何将集合包装在单个父标签中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8719452/

相关文章:

swift - 从 Collection View 中查看和弹出时出错

Java:以任何枚举作为键进行映射

java - 当调用 Activity 被终止或销毁时,Android 服务将停止工作

java - 在eclipse中运行java时出现找不到主类错误

XML 瓮 :# is not a valid value for anyURI

java - TestNG XML 无效

java - 如何通过操作 ObservableList 来引发置换事件?

java - 为什么在 Java 中监听环回需要 root 权限?

python - 使用 Spark.xml 读取 XML 时,为什么我的数据框加载了空白值? (Python/数据 block )

c# - 如何在 C# 中有效地从另一个列表中减去一个巨大的列表