Come faccio a creare classi che rappresentano le strutture tag XML complessi in google-api-java-client

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

  •  29-09-2019
  •  | 
  •  

Domanda

Uso della google-api-java-client che ho raccolto che la biblioteca analizza il XML in base alle classi create e le chiavi che si fanno. Per esempio: se si ha il seguente codice XML:

<entry test="ok">
<link name="somewhere.org"/>
</entry>

Poi si potrebbe avere queste due classi:

public class Entry
{
  @Key("@test")
  public String test;

  @Key("link")
  public Link link;
}

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

E la biblioteca sarebbe analizzare il codice XML e creare le classi appropriate (se ho capito bene)

Se questo è il caso, come si fa a rappresentare un tag XML che ha entrambi gli attributi e un valore? Esempio:

<entry test="ok">
    <link name="somewhere.org">SomeValue</link>
</entry>

In particolare sto cercando di rappresentare un record come il seguente in modo da poter inserire in un foglio di calcolo di Google Documenti:

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

Inoltre, in cui è presente documentato? Non riesco a trovare la documentazione, ma forse sto solo non guardare nel posto giusto.

È stato utile?

Soluzione

La migliore documentazione per il modello di dati XML nella google-api-java biblioteca -client è il JavaDoc XML .

L'annotazione @key da utilizzare con l'attributo nome è "@name". Quindi, vi manca solo un carattere:)

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

Vedere un esempio di link classe nel calendario-v2-atomo-OAuth-campione .

Full disclosure:. Sono un titolare del progetto google-api-java-client

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top