Wie erstelle ich Klassen, die komplexen XML-Tag-Strukturen in google-api-java-Client darstellen
-
29-09-2019 - |
Frage
Mit dem Google-api-java-client ich gesammelt haben, dass die Bibliothek die XML auf die Klassen basiert parst Sie erstellen und die Tasten, die Sie machen. Zum Beispiel: Wenn Sie das folgende XML haben:
<entry test="ok">
<link name="somewhere.org"/>
</entry>
Dann könnte man diese beiden Klassen hat:
public class Entry
{
@Key("@test")
public String test;
@Key("link")
public Link link;
}
public class Link
{
@Key("name")
public String name;
}
Und die Bibliothek würde die XML und erstellen die entsprechenden Klassen analysieren (wenn ich es richtig verstehe)
Wenn das der Fall ist, wie kann man einen XML-Tag dar, die beiden Attribute und einen Wert hat? Beispiel:
<entry test="ok">
<link name="somewhere.org">SomeValue</link>
</entry>
Insbesondere Ich versuche, einen Rekord, wie die folgenden zu vertreten, damit ich es in eine Google Text & Tabellen-Tabelle einfügen:
<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>
Auch wo dies dokumentiert? Ich kann nicht in die Dokumentation finden, aber vielleicht bin ich einfach nicht an der richtigen Stelle suchen.
Lösung
Die beste Dokumentation für das XML-Datenmodell in der google-api-java -client Bibliothek ist die XML JavaDoc .
Die @Key Anmerkung mit dem Namen Attribute zu verwenden ist „@name“. Sie sind also nur fehlt ein Zeichen:)
public class Link
{
@Key("@name")
public String name;
}
Sehen Sie ein Beispiel für die Link Klasse in der Kalender-v2-Atom-Probe-oauth .
Vollständige Offenlegung:. Ich bin Inhaber des google-api-java-Client-Projektes