У меня есть XML-файл с такой структурой:
(элемент в списке, но я удалил дополнения для экономии места.)
<rss xmlns:media="http://test.yadayada.com/" xmlns:atom="http://test2/yada/da" version="1.0">
<channel>
<item>
<dev:content url="http://fredflinstone.barney.net.mp4" language="en-us" fileSize="37000000" duration="120.0" medium="video" isDefault="true">
<dev:title type="plain">Flinstones</media:title>
<dev:credit role="author" scheme="urn:ebu">Amazon</media:credit>
<dev:thumbnail url="http://pichere.s3-webs.com/images.jpg"/>
</item>
</channel>
</rss>
Я пытался разобрать его с помощью SimpleXml, но у меня возникли некоторые проблемы:
@Root(strict = false)
@NamespaceList({
@Namespace(prefix = "media", reference = "http://test.yadayada.com/"),
@Namespace(reference = "http://test2/yada/da", prefix = "atom")})
public class Rss {
@Version(revision = 1.0)
private double version;
@Element
private Channel channel;
@Root(strict = false)
public static class Channel {
@ElementList
private List<Item> item;
@Root(strict = false)
public static class Item {
@Element
private String title;
@Element
@Namespace(prefix = "dev")
private content content;
@Root(strict = false)
@Namespace(prefix = "dev")
public static class content {
@Element
private String thumbnail;
@Attribute(name = "url")
private String url;
@Attribute(name = "language")
private String language;
@Attribute(name = "fileSize")
private int fileSize;
@Attribute(name = "duration")
private double duration;
@Attribute(name = "medium")
private String medium;
@Attribute(name = "isDefault")
private boolean isDefault;
Когда я пытаюсь запустить его, я получаю сообщение об ошибке:
org.simpleframework.xml.core.ValueRequiredException: Unable to satisfy @org.simpleframework.xml.Element(data=false, name=, required=true, type=void) on field 'content' private com.example.Rss$Channel$Item$content com.example.Rss$Channel$Item.content for class com.example.Rss$Channel$Item at line -1
Как правильно аннотировать это, чтобы оно работало? Кажется, я не могу получить dev: content и все его атрибуты, правильно аннотированные.