2012-07-12 2 views
0

J'ai déjà utilisé JAXB avec succès pour démaseler certains fichiers xml mais j'ai un autre cas qui est plus complexe. Fondamentalement, mon fichier xml ressemble ces:JAXB carte unmarshal avec l'objet qui contient encore une autre carte

<BCLCurrenciesInflation> 
<currenciesInflation> 
    <currency> 
     <curencyName>Yen</curencyName> 
     <countryName>Japan</countryName> 
     <issuingDate>1900-01-01</issuingDate> 
     <expirationDate></expirationDate> 
     <inflation> 
      <year>1900</year> 
      <percentage>16</percentage> 
     </inflation> 
     <inflation> 
      <year>1901</year> 
      <percentage>17</percentage> 
     </inflation> 
    </currency> 
    <currency> 
     <curencyName>Dolar</curencyName> 
     <countryName>USA</countryName> 
     <issuingDate>1900-01-01</issuingDate> 
     <expirationDate></expirationDate> 
     <inflation> 
      <year>1902</year> 
      <percentage>18</percentage> 
     </inflation> 
     <inflation> 
      <year>1903</year> 
      <percentage>19</percentage> 
     </inflation> 
    </currency> 
</currenciesInflation> 

est donc essentiellement un HashMap<String,BCLCurrency> et BCLCurrency ressemble à ceci:

public class BCLCurrency 
{ 
@XmlElement(name = "currencyName") 
public String name; 

@XmlElement(name = "countryName") 
public String country; 

@XmlElement(name = "issuingDate") 
public String issuingDate; 

@XmlElement(name = "expirationDate") 
public String expirationDate; 

@XmlElement(name = "inflation") 
public Map<String,float> inflationMap; 
} 

Je pensais avoir deux adaptateurs, le second sera appelé à partir du premier adaptateur, mais je ne me sens pas à l'aise avec cette solution.

Avez-vous des idées pour réussir?

PD: Drôle d'histoire Je ne peux pas dire bonjour au début de la publication, le système ne cesse de le supprimer!

+0

OK. Je pense que je l'ai fait. Je reviendrai bientôt. – Jigzat

Répondre

0

Vous pouvez créer/utiliser un adaptateur générique pour la carte < K, V> au lieu de créer deux cartes.

Questions connexes