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