2010-03-09 7 views
1

J'écris un client de service Web RESTful. Le point final de service nécessite XML dans ce format:Comment ajouter un attribut à une HashMap en utilisant JAXB?

<top-level-element type=\"array\"> 
    <element-key> 
     <element>foo</element> 
     <other-element>bar</element> 
    </element-key> 
</top-level-element> 

J'ai le code Java comme suit:

public class Parent { 
    @XmlElement(name="top-level-element") 
    @XmlJavaTypeAdapter(TopLevelElementKeyAdapter.class) 
    private HashMap<String, Integer> topLevelElement = new HashMap<String, Integer>(); 
}  

public final class TopLevelElementKeyAdapter extends 
    XmlAdapter<MyElementMap, HashMap<String, Integer>>... 

Mon code fait tout ce que je veux, mais je ne peux pas comprendre comment obtenir le ' tapez = \ "array \" dans mon adaptateur. Pensées?

Répondre

0

Vous pouvez ajouter l'extrait suivant à MyElementMap:

@XmlAttribute(name="type") 
private final String type = "array"; 

Cela montrera par magie comme un attribut dans votre balise XML haut niveau élément!

+0

Ne semble pas magique du tout. –

Questions connexes