Как мне создать классы, представляющие сложные структуры тегов xml в Google-api-java-клиенте

StackOverflow https://stackoverflow.com/questions/3919034

  •  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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top