java - 使用同一元素的多种表示形式解码 xml

标签 java jaxb jersey

我需要从 xml(来自 Redmine Web 服务)解码一些数据。

问题在于,当嵌套在其他元素中时,数据被表示为属性:请参阅此处的“项目”...

<?xml version="1.0" encoding="UTF-8"?>
<issues type="array" count="1640">
  <issue>
    <id>4326</id>
    <project name="Redmine" id="1"/>
    <!-- ... ->
  </issue>
</issues>

但是如果我尝试获取项目列表,相同的项目数据会表示为元素:

<?xml version="1.0" encoding="UTF-8"?>
<projects type="array">
  <project>
    <id>1</id>
    <name>Redmine</name>
    <identifier>redmine</identifier>
    <created_on>Sat Sep 29 12:03:04 +0200 2007</created_on>
    <!-- ... ->
  </project>
</projects>

使用 JAXB 执行此操作的最简单方法是什么(如果可能,则为标准)?

最佳答案

问题在于存在多个略有不同的映射。

我最终使用不同的注释创建了不同的类。

编辑:另一种方式:http://blog.bdoughan.com/2011/09/mapping-objects-to-multiple-xml-schemas.html (但不是类型安全的并且在标准 jaxb 之外,我将按原样保留当前的实现)。

关于java - 使用同一元素的多种表示形式解码 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18052355/

相关文章:

Java JUNIT - 使用字符串进行多次测试

java - ElasticSearch 中的复杂 Lucene 查询

java - 时区指示符 - "T"和 "Z"在 ISO8601 格式中是否区分大小写?

java - 使用 xjc 编码创建嵌套类

java - 一次添加多个java数组

java - JAXB 不序列化完整的对象图

java - 没有 child 的根元素。日本航空航天局

java.lang.LinkageError : ClassCastException: attempting to castjar 错误

javascript - Sencha 触摸列表分页

java - 如何使 JAX-RS uri 对响应进行编码