Simple-Framework: дублирующая аннотация (другое пространство имен)

У меня есть канал Rss, который я хотел бы проанализировать в Java с помощью Simple Framework. У меня проблемы с двумя элементами с одинаковым именем, но одному из них назначено пространство имен. Вот пример 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 ответа

Пытаться

@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;
}

Ты пробовал это?

@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;
}
Другие вопросы по тегам