Java と XStream を使用して、http 経由で Google ジオコード リクエストを解析しています。私の考えは、すべてのジオコード属性 (つまり、緯度/経度、都市、州/州など) を持つ Address クラスを持つことですが、xstream で xml を解析する際に問題があります。
Google の応答は次のようになります。
<?xml version="1.0" encoding="UTF-8" ?>
<kml xmlns="http://earth.google.com/kml/2.0"><Response>
<name>98 St. Patrick St, Toronto</name>
<Status>
<code>200</code>
<request>geocode</request>
</Status>
<Placemark id="p1">
<address>98 St Patrick St, Toronto, ON, Canada</address>
<AddressDetails Accuracy="8" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"> <Country><CountryNameCode>CA</CountryNameCode><CountryName>Canada</CountryName><AdministrativeArea><AdministrativeAreaName>ON</AdministrativeAreaName><Locality><LocalityName>Toronto</LocalityName><Thoroughfare><ThoroughfareName>98 St Patrick St</ThoroughfareName></Thoroughfare><PostalCode><PostalCodeNumber>M5T</PostalCodeNumber></PostalCode></Locality></AdministrativeArea></Country></AddressDetails>
<ExtendedData>
<LatLonBox north="43.6560378" south="43.6497426" east="-79.3864912" west="-79.3927864" />
</ExtendedData>
<Point><coordinates>-79.3896388,43.6528902,0</coordinates></Point>
</Placemark>
</Response></kml>
うまく表示されませんが、コードの要は AddressDetails タグにあります。
とにかく、私は Java と XStream に慣れていないので、API の用語は少しわかりにくいです。これらすべてのタグ (つまり、CountryName) を Address オブジェクト内の属性 (つまり、address.country = blah) にマップするマッパーを作成できるようにする必要があるだけです。住所オブジェクトは非常に単純で、主に国の文字列だけです。名前などと緯度/経度の浮動小数点数。
ドキュメントと例は、各 xml タグがオブジェクトの同じ名前の属性に直接マップされるストレート マッピングを示しています。ただし、私の場合、タグはオブジェクトの属性とは異なる名前が付けられています。正しい方向への素早いポイントは、私が本当に探しているすべてです。