Как создать классы, представляющие сложные структуры тегов XML в google-api-java-client - PullRequest
2 голосов
/ 13 октября 2010

Используя 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:

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

Кроме того, где этодокументально?Я не могу найти документацию, но, возможно, я просто не смотрю в нужном месте.

1 Ответ

1 голос
/ 13 октября 2010

Лучшая документация для модели данных XML в библиотеке google-api-java-client - это XML JavaDoc .

Аннотация @Key для использования с атрибутом name - "@name". Таким образом, вам не хватает только одного символа:)

public class Link
{
  @Key("@name")
  public String name;
}

См. Пример Link класса в calendar-v2-atom-oauth-sample .

Полное раскрытие: я владелец проекта google-api-java-client.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...