Simple-Framework:重复注释(不同的命名空间)

时间:2013-05-19 23:08:33

标签: java annotations xml-namespaces simple-framework duplicates

我有一个Rss feed我想使用Simple Framework在Java中解析。 我遇到了2个具有相同名称的元素的问题,但其中一个元素已分配了命名空间。 这是一个示例xml:

<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/">
    <item>
        <title>Regular Titel</title>
        <dc:title>Dc Titel</dc:title>
    </item>
</rss>

目前我的Item.class看起来像这样:

@Root
public class Item {

    @Namespace(reference = "http://purl.org/dc/elements/1.1/", prefix = "dc")
    @Element(name="title")
    public String dcTitle;

    @Element
    public String title;
}

这显然会导致PersistenceException(字段'title'上的名称'title'的重复注释......),但我真的不知道应该怎么做。请有人帮我解决这个问题!

更新

虽然解决方案有效,但我现在在序列化对象时遇到了问题。我声明的命名空间未分配给输出xml中的元素。

2 个答案:

答案 0 :(得分:1)

尝试

@Root
public class Item {

    @Namespace(reference = "http://purl.org/dc/elements/1.1/", prefix = "dc")
    @Path("title[1]")
    @Text
    public String dcTitle;

    @Path("title[2]")
    @Text
    public String title;
}

答案 1 :(得分:0)

你试过这个吗?

@Root
@Namespace(reference = "http://purl.org/dc/elements/1.1/", prefix = "dc")
public class Item {

    @Element (name = "dc:title")
    public String dcTitle;

    @Element (name = "title")
    public String title;
}