2

我试图找到适合我的问题的解决方案,但没有成功。这是问题所在:

我有以下部分 XML 结构(我对此没有影响)

<users>
  <array>
    <item>
      <username></username>
      <email></email>
    </item>
    ...
    <item>
      ...
    </item>
  <array>
</users>

我对 XML 的那一部分有以下类结构:

@XmlRootElement(name = "users")
public class XmlUsers extends XmlData
{
    @XmlElement
    public XmlArray array;
}

@XmlRootElement(name = "array")
public class XmlArray
{
    @XmlElementRef(name = "item")
    public List<XmlItemData> items;
}

@XmlSeeAlso({ XmlUserData.class })
public abstract class XmlItemData
{
}

@XmlRootElement
public class XmlUserData extends XmlItemData
{
...
}

我想用“项目”或“用户”标签包装 XmlUserData,所以我不想注释 XmlUserData 根元素名称。

如何在 XmlArray 级别执行此操作?如您所见,我试图命名 XmlElementRef,但这会导致项目为空...

编辑: 我猜我不小心删除了用户的评论(我不记得他/她的名字)。请原谅我。它是关于使用 XmlElement 而不是 XmlElementRef。它与在 XmlItemData 类上添加的 XmlTransient 一起提供了帮助。但是,现在我得到了空元素列表。这是我的 XmlUserData 类:

@XmlRootElement
public class XmlUserData extends XmlItemData
{
    @XmlElement(name = "username")
    public String        username;

    @XmlElement(name = "first_name")
    public String        firstName;

    @XmlElement(name = "last_name")
    public String        lastName;

    @XmlElementWrapper(name = "links", required = false)
    @XmlElements({ @XmlElement(name = "delete"), @XmlElement(name = "next"),
            @XmlElement(name = "self"), @XmlElement(name = "users"),
            @XmlElement(name = "watched") })
    public List<XmlLink> links;

    @XmlElement(name = "url")
    public String        url;

    @XmlElement(name = "id")
    public int           id;

    @XmlElement(name = "fullname")
    public String        fullname;

    @XmlElement(name = "email")
    public String        email;
}

EDIT2: 未知用户,请您再次发布您的回复,以便我可以将其标记为有用的回复吗?

而且我仍然对 XmlItemData 元素列表有问题,它应该是 XmlUserData 类型,但它们是空的......任何想法,我做错了什么......?

提前致谢!

EDIT3: 我已经用 JAXB 编组了我的类结构,如下所示:

<rsp>
  <total_results>0</total_results>
  <users>
    <array>
      <item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xmlUserData">
        <id>0</id>
      </item>
    </array>
  </users>
</rsp>

解组器是否可以预期项目标签处的这一行?它的存在是否对解组消息有任何影响......?

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xmlUserData"
4

0 回答 0