2011-04-01 2 views
2
<?xml version='1.0'?> 
<info> 
    <contract> 
     <symbol>IBM</symbol> 
     <sectype>STK</sectype> 
     <exchange>SMART</exchange> 
     <currency>USD</currency> 
    </contract> 
    <order> 
     <action>SELL</action> 
     <quantity>100</quantity> 
     <ordertype>LMT</ordertype> 
     <imtprice>imtprice</imtprice> 
     <transmit>false</transmit> 
    </order> 
</info> 

Je veux utiliser les annotations JAXB avec les classes Java existantes pour créer au-dessus de l'entrée XML, mais je ne sais pas comment créer une structure XML imbriquée basée sur les classes Javacréer une structure imbriquée en utilisant les notations JAXB

Répondre

3

Essayez ceci:

@XmlRootElement
@XmlAccessorType (XmlAccessType.FIELD)
@XmlType (propOrder = { "contrat", "ordre"})
public class info {
@XmlElement (requis = vrai)
contrat privé contrat;
@XmlElement (required = true)
private Ordre de commande; // accesseurs
}

Une autre classe:

@XmlAccessorType (XmlAccessType.FIELD)
@XmlType (propOrder = { "symbole", "sectype", « échange ", " devise "})
public class Contrat {
@XmlElement (requis = true)
private String symbol;
@XmlElement (requis = true)
private Chaîne sectype;
@XmlElement (requis = true)
private Chaîne échange;
@XmlElement (requis = true)
private Devise de la chaîne;

// Getters et setters
}

Créer une classe de commande de la même manière.

+0

Les champs non annotés seront traités comme @XmlElement, si vous n'avez pas besoin de spécifier required = true (qui correspond à minOccurs = "1" dans le schéma), vous n'avez pas besoin d'utiliser autant d'annotations @XmlElement . –

+0

Que dois-je écrire si je veux 3 instance de tag en XML au lieu d'un seul – Hunt

+0

privé Liste ordres; – mmjmanders

Questions connexes