Как мне создать классы, представляющие сложные структуры тегов xml в Google-api-java-клиенте
-
29-09-2019 - |
Вопрос
Используя google-api-java-client, я понял, что библиотека анализирует xml на основе создаваемых вами классов и создаваемых вами ключей.Например:если у вас есть следующий XML-файл:
<entry test="ok">
<link name="somewhere.org"/>
</entry>
Тогда у вас могли бы быть эти два занятия:
public class Entry
{
@Key("@test")
public String test;
@Key("link")
public Link link;
}
public class Link
{
@Key("name")
public String name;
}
И библиотека проанализировала бы xml и создала соответствующие классы (если я правильно понимаю)
Если это так, то как можно представить xml-тег, который имеет как атрибуты, так и значение?Пример:
<entry test="ok">
<link name="somewhere.org">SomeValue</link>
</entry>
В частности, я пытаюсь представить запись, подобную следующей, чтобы я мог вставить ее в электронную таблицу Google Docs:
<entry xmlns="http://www.w3.org/2005/Atom"
xmlns:gs="http://schemas.google.com/spreadsheets/2006">
<title>Darcy</title>
<gs:field name='Birthday'>2/10/1785</gs:field>
<gs:field name='Age'>28</gs:field>
<gs:field name='Name'>Darcy</gs:field>
<gs:field name='CanVote'>No</gs:field>
</entry>
Кроме того, где это задокументировано?Я не могу найти документацию, но, возможно, я просто ищу не в том месте.
Решение
Лучшая документация для XML-модели данных в google-api-java-клиент библиотека - это XML JavaDoc.
Аннотация @Key, используемая с атрибутом name, называется "@name".Таким образом, вам не хватает только одного символа :)
public class Link
{
@Key("@name")
public String name;
}
Смотрите пример того, как Ссылка класс в календарь-v2-atom-oauth-образец.
Полное раскрытие информации:Я владелец проекта Google-api-java-client.