Retrofit + SimpleXML ошибка при парсинге XML

Через Retrofit 2 + SimpleXMl получаю и обрабатывают ответ от сервера:

<ValCurs Date="28.03.2020" name="Foreign Currency Market">
    <Valute ID="R01010">
        <NumCode>036</NumCode>
        <CharCode>AUD</CharCode>
        <Nominal>1</Nominal>
        <Name>Австралийский доллар</Name>
        <Value>47,1448</Value>
    </Valute>
        <Valute ID="R01020A">
        <NumCode>944</NumCode>
        <CharCode>AZN</CharCode>
        <Nominal>1</Nominal>
        <Name>Азербайджанский манат</Name>
        <Value>45,9330</Value>
    </Valute>
    <Valute ID="R01035">
        <NumCode>826</NumCode>
        <CharCode>GBP</CharCode>
        <Nominal>1</Nominal>
        <Name>Фунт стерлингов Соединенного королевства</Name>
        <Value>94,5771</Value>
    </Valute>
</ValCurs>

И помещаю в такую модель:

@Root(name = "ValCurs", strict = false)
public class CurrencyList {
    @ElementList(inline = true, name = "Valute")
    private List<Item> currencies;

    public List<Item> getCurrencies() {
        return currencies;
    }

    @Root(name = "Valute", strict = false)
    public static class Item {
        private String id;
        private String numCode;
        private String charCode;
        private String nominal;
        private String name;
        private String value;

        @Attribute(name = "ID")
        public String getId() {
            return id;
        }

        @Attribute(name = "ID")
        public void setId(String id) {
            this.id = id;
        }

        @Element(name = "NumCode")
        public String getNumCode() {
            return numCode;
        }

        @Element(name = "NumCode")
        public void setNumCode(String numCode) {
            this.numCode = numCode;
        }

        @Element(name = "CharCode")
        public String getCharCode() {
            return charCode;
        }

        @Element(name = "CharCode")
        public void setCharCode(String charCode) {
            this.charCode = charCode;
        }

        @Element(name = "Nominal")
        public String getNominal() {
            return nominal;
        }

        @Element(name = "Nominal")
        public void setNominal(String nominal) {
            this.nominal = nominal;
        }

        @Element(name = "Name")
        public String getName() {
            return name;
        }

        @Element(name = "Name")
        public void setName(String name) {
            this.name = name;
        }

        @Element(name = "Value")
        public String getValue() {
            return value;
        }

        @Element(name = "Value")
        public void setValue(String value) {
            this.value = value;
        }
    }
}

Но получаю исключение:

org.simpleframework.xml.core.ValueRequiredException: Unable to satisfy @org.simpleframework.xml.ElementList(data=false, empty=true, entry=, inline=true, name=Valute, required=true, type=void) on field 'currencies' private java.util.List com.example.currencyrates.data.network.response.CurrencyList.currencies for class com.example.currencyrates.data.network.response.CurrencyList at line -1

На stackoverflow были уже подобные вопросы и проблема решалась путем добавления inline = true у анотации @ElementList, но у меня же он и так указан.

Подскажите, где я допустил ошибку?


Ответы (0 шт):